Rev 897 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?phprequire_once dirname(__FILE__).'/../ServiceEflorePhpUnit.php';class CommunOntologiesTest extends ServiceEflorePhpUnit {public function __construct() {$this->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éspublic 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:YTpublic 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");}}