projet = 'eflore'; $this->service = 'ontologies'; } public function testRecherche() { $ressources = array(); $parametres = array(); $url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres); $retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres); $this->assertNotEmpty($retour, 'données absentes'); $this->assertArrayHasKey('total', $retour['entete'], "Le json ne contient pas d'attribut : total. Voir : $url"); // au 20/08/2013, n°23 = Baznat $this->assertEquals('23', $retour['entete']['total'], "L'attribut 'total' devrait avoir la valeur '23'. Voir : $url"); $this->assertArrayHasKey('nom', $retour['resultat'][1], "Le json ne contient pas d'attribut : nom. Voir : $url"); $this->assertEquals('contactType', $retour['resultat'][1]['nom'], "L'attribut 'nom' devrait avoir la valeur 'contactType'. Voir : $url"); } public function testMasqueCode() { $ressources = array(); $parametres = array('masque.code' => 'o'); $url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres); $retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres); $this->assertNotEmpty($retour, 'données absentes'); $this->assertArrayHasKey('total', $retour['entete'], "Le json ne contient pas d'attribut : total. Voir : $url"); $this->assertEquals('1', $retour['entete']['total'], "L'attribut 'total' devrait avoir la valeur '1'. Voir : $url"); $this->assertArrayHasKey('nom', $retour['resultat'][4], "Le json ne contient pas d'attribut : nom. Voir : $url"); $this->assertEquals('organisations', $retour['resultat'][4]['nom'], "L'attribut 'nom' devrait avoir la valeur 'organisations'. Voir : $url"); } public function testMasqueDescription() { $ressources = array(); $parametres = array('masque.description' => '%contact'); $url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres); $retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres); $this->assertNotEmpty($retour, 'données absentes'); $this->assertArrayHasKey('total', $retour['entete'], "Le json ne contient pas d'attribut : total. Voir : $url"); $this->assertEquals('1', $retour['entete']['total'], "L'attribut 'total' devrait avoir la valeur '1'. Voir : $url"); $this->assertArrayHasKey('nom', $retour['resultat'][1], "Le json ne contient pas d'attribut : nom. Voir : $url"); $this->assertEquals('contactType', $retour['resultat'][1]['nom'], "L'attribut 'nom' devrait avoir la valeur 'contactType'. Voir : $url"); } // simple test ontologies bdnt // ce qui signifie les ontologies communes aux référentiels (bdtfx, bdtxa, isfan) public function testBdntSimpleNonExistante() { $url = '/bdnt' . ServiceEflorePhpUnit::creerUrl('ontologies', [ 'rangTaxo:-1' ] ); $retour = $this->consulterBrut('ontologies', 'bdnt', [ 'rangTaxo:-1' ] ); $this->assertContains($retour, 'Les données recherchées sont introuvables.'); } public function testBdntSimpleExistante() { $url = '/bdnt' . ServiceEflorePhpUnit::creerUrl('ontologies', [ 'rangTaxo:70' ] ); $retour = $this->consulterJson('ontologies', 'bdnt', [ 'rangTaxo:70' ] ); $this->assertNotEmpty($retour, 'données absentes'); foreach(['id', 'nom', 'code', 'complements', 'classe.id', 'classe', 'classe.href'] as $v) { $this->assertArrayHasKey($v, $retour, "Le json ne contient pas l'attribut \"$v\". Voir : $url"); } $this->assertEquals('15', $retour['id'], "L'attribut 'id' devrait avoir la valeur '15'. Voir : $url"); $this->assertEquals('Cladus', $retour['nom'], "L'attribut 'nom' devrait avoir la valeur 'Cladus'. Voir : $url"); } // Les ontologies supportent les requêtes multiples, eg: /bdnt/ontologies/rangTaxo:70,rangTaxo:-1 // Les ontologies sont alors indexées par élément de requête (pour faciliter le travail du client) // Les résultats inexistants ne sont pas retournés public function testBdntMultiplesNonExistante() { $ressource = [ implode(',', [ 'rangTaxo:70', 'rangTaxo:-1' ]) ]; $url = '/bdnt' . ServiceEflorePhpUnit::creerUrl('ontologies', $ressource ); $retour = $this->consulterJson('ontologies', 'bdnt', $ressource ); $this->assertNotEmpty($retour, 'données absentes'); $this->assertCount(1, $retour, "Le retour ne devrait contenir que le seul élément valide. Voir : $url"); $this->assertArrayHasKey('rangTaxo:70', $retour, "Le json ne contient pas d'élément rangTaxo:70. Voir : $url"); foreach(['id', 'nom', 'code', 'complements', 'classe.id', 'classe', 'classe.href'] as $v) { $this->assertArrayHasKey($v, $retour['rangTaxo:70'], "Le json ne contient pas l'attribut \"$v\". Voir : $url"); } $this->assertEquals('15', $retour['rangTaxo:70']['id'], "L'attribut 'id' devrait avoir la valeur '15'. Voir : $url"); $this->assertEquals('Cladus', $retour['rangTaxo:70']['nom'], "L'attribut 'nom' devrait avoir la valeur 'Cladus'. Voir : $url"); } // Les ontologies supportent les requêtes multiples sur des code différents // eg: /bdnt/ontologies/rangTaxo:70,zoneGeo:YT public function testBdntMultiplesExistantes() { $ressource = [ implode(',', [ 'rangTaxo:70', 'zoneGeo:YT' ]) ]; $url = '/bdnt' . ServiceEflorePhpUnit::creerUrl('ontologies', $ressource ); $retour = $this->consulterJson('ontologies', 'bdnt', $ressource ); $this->assertNotEmpty($retour, 'données absentes'); $this->assertCount(2, $retour, "Le retour devrait contenir 2 éléments valides. Voir : $url"); $this->assertArrayHasKey('rangTaxo:70', $retour, "Le json ne contient pas d'élément 'rangTaxo:70'. Voir : $url"); $this->assertArrayHasKey('zoneGeo:YT', $retour, "Le json ne contient pas d'élément 'zoneGeo:YT'. Voir : $url"); foreach($retour as $k => $e) { foreach(['id', 'nom', 'code', 'classe.id', 'classe', 'classe.href'] as $v) { $this->assertArrayHasKey($v, $e, "Le json ne contient pas l'attribut \"$v\" pour l'élément \"$k\". Voir : $url"); } } // n'existe pas pour "zoneGeo", pourquoi ? $this->assertArrayHasKey('complements', $retour['rangTaxo:70'], "Le json ne contient pas l'attribut \"$v\". Voir : $url"); $this->assertEquals('15', $retour['rangTaxo:70']['id'], "L'attribut 'id' devrait avoir la valeur '15'. Voir : $url"); $this->assertEquals('Cladus', $retour['rangTaxo:70']['nom'], "L'attribut 'nom' devrait avoir la valeur 'Cladus'. Voir : $url"); $this->assertEquals('180', $retour['zoneGeo:YT']['id'], "L'attribut 'id' devrait avoir la valeur '180'. Voir : $url"); $this->assertEquals('Mayotte', $retour['zoneGeo:YT']['nom'], "L'attribut 'nom' devrait avoir la valeur 'Mayotte'. Voir : $url"); } }