Rev 880 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?phprequire_once dirname(__FILE__).'/../ServicePhpUnit.php';class NomsListeFournierTest extends ServicePhpUnit {private $listeUrl = 'http://localhost/service:eflore:0.2/fournier/noms';private $nomDetailSqueletteUrl = 'http://localhost/service:eflore:0.2/fournier/noms/%s';private $nbreNom = 168;public function __construct() {$this->projet = 'fournier';$this->service = 'noms';}public function testSansParametres() {$ressources = array();$parametres = array();$retour = $this->consulter($ressources, $parametres);$this->assertArrayHasKey('entete', $retour, 'Présence champ entete');$this->assertArrayHasKey('masque', $retour['entete'], 'Présence champ entete>masque');$this->assertEmpty($retour['entete']['masque'], 'Valeur champ entete>masque = vide');$this->assertArrayHasKey('depart', $retour['entete'], 'Présence champ entete>depart');$this->assertSame(0, $retour['entete']['depart'], 'Valeur champ entete>depart = 0');$this->assertArrayHasKey('limite', $retour['entete'], 'Présence champ entete>limite');$this->assertSame(100, $retour['entete']['limite'], 'Valeur champ entete>limite = 100');$this->assertArrayHasKey('total', $retour['entete'], 'Présence champ entete>total');$this->assertNotEquals(0, $retour['entete']['total'], 'Valeur champ entete>total != 0');$this->assertSame($this->nbreNom, $retour['entete']['total'], 'Valeur champ entete>total = 168');$this->assertArrayNotHasKey('href.precedent', $retour['entete'], "Abscence champ entete>href.precedent");$this->assertArrayHasKey('href.suivant', $retour['entete'], "Présence champ entete>href.suivant");$url = $this->listeUrl.'?navigation.depart=100&navigation.limite=100';$this->assertEquals($url, $retour['entete']['href.suivant'], "Valeur champ entete>href.suivant = $url");$this->assertArrayHasKey('resultats', $retour, 'Valeur champ resultats');$this->assertCount(100, $retour['resultats'], 'Nombre de valeurs dans resultats = 100');$this->assertArrayNotHasKey('1', $retour['resultats'], 'Abscence champ resultats>1 car trie sur nom_sci ASC');$this->assertArrayHasKey('2', $retour['resultats'], 'Présence champ resultats>2');$this->assertArrayHasKey('nom_sci', $retour['resultats']['2'], 'Présence champ resultats>2>nom_sci');$this->assertCount(3, $retour['resultats']['2'], 'Nombre de valeurs dans resultats>2 = 3');$this->assertEquals('Cryptogames', $retour['resultats']['2']['nom_sci'], 'Test valeur champ resultats>2>nom_sci = Plantae');$this->assertArrayHasKey('retenu', $retour['resultats']['2'], 'Présence champ resultats>2>retenu');$this->assertTrue($retour['resultats']['2']['retenu'], 'Valeur champ resultats>2>retenu = true');$this->assertArrayHasKey('href', $retour['resultats']['2'], 'Présence champ resultats>2>href');$url = sprintf($this->nomDetailSqueletteUrl, '2');$this->assertEquals($url, $retour['resultats']['2']['href'], "Valeur champ resultats>2>nom_sci = $url");}public function testParametreNavigationDepart100() {$ressources = array();$parametres = array('navigation.depart' => 100);$retour = $this->consulter($ressources, $parametres);$this->assertArrayHasKey('depart', $retour['entete'], 'Présence champ entete>depart');$this->assertSame(100, $retour['entete']['depart'], 'Valeur champ entete>depart = 100');$this->assertArrayHasKey('limite', $retour['entete'], 'Présence champ entete>limite');$this->assertSame(100, $retour['entete']['limite'], 'Valeur champ entete>limite = 100');$this->assertSame($this->nbreNom, $retour['entete']['total'], 'Valeur champ entete>total = 168');$this->assertArrayNotHasKey('href.suivant', $retour['entete'], "Abscence champ entete>href.suivant");$this->assertArrayHasKey('href.precedent', $retour['entete'], "Présence champ entete>href.precedent");$url = $this->listeUrl.'?navigation.depart=0&navigation.limite=100';$this->assertEquals($url, $retour['entete']['href.precedent'], "Valeur champ entete>href.precedent = $url");}public function testRechercheDefautMasque() {$ressources = array();$parametres = array('masque' => 'Lycopodium');$retour = $this->consulter($ressources, $parametres);$this->assertArrayHasKey('masque', $retour['entete'], 'Présence champ entete>masque');$this->assertEquals('nom_sci=Lycopodium', $retour['entete']['masque'], 'Valeur champ entete>masque = "nom_sci=Lycopodium"');$this->assertCount(1, $retour['resultats'], 'Nombre de valeurs dans resultats = 1');$this->assertEquals('Lycopodium', $retour['resultats']['5']['nom_sci'], 'Test valeur champ resultats>5>nom_sci = Lycopodium');}public function testRechercheStricteMasque() {$ressources = array();$parametres = array('masque' => 'Lycopodium', 'recherche' => 'stricte');$retour = $this->consulter($ressources, $parametres);$this->assertArrayHasKey('masque', $retour['entete'], 'Présence champ entete>masque');$this->assertEquals('nom_sci=Lycopodium', $retour['entete']['masque'], 'Valeur champ entete>masque = "nom_sci=Lycopodium"');$this->assertCount(1, $retour['resultats'], 'Nombre de valeurs dans resultats = 1');$this->assertEquals('Lycopodium', $retour['resultats']['5']['nom_sci'], 'Test valeur champ resultats>5>nom_sci = Lycopodium');}public function testerRechercheEtendueMasque() {$ressources = array();$parametres = array('masque' => 'Lycopodium', 'recherche' => 'etendue');$retour = $this->consulter($ressources, $parametres);$this->assertArrayHasKey('masque', $retour['entete'], 'Présence champ entete>masque');$this->assertEquals('nom_sci=Lycopodium%', $retour['entete']['masque'], 'Valeur champ entete>masque = "nom_sci=Lycopodium%"');$this->assertCount(11, $retour['resultats'], 'Nombre de valeurs dans resultats = 10');foreach ($retour['resultats'] as $nom) {$this->assertContains('Lycopodium', $nom['nom_sci'], 'Test valeur champ resultats>...>nom_sci contient Lycopodium');}}public function testerRechercheFloueMasque() {$ressources = array();$parametres = array('masque' => 'Licopodium', 'recherche' => 'floue');$retour = $this->consulter($ressources, $parametres);$this->assertArrayHasKey('masque', $retour['entete'], 'Présence champ entete>masque');$this->assertEquals('nom_sci=Licopodium', $retour['entete']['masque'], 'Valeur champ entete>masque = "nom_sci=Licopodium"');$this->assertCount(1, $retour['resultats'], 'Nombre de valeurs dans resultats = 1');$this->assertContains('Lycopodium', $retour['resultats'][5]['nom_sci'], 'Test valeur champ resultats>5>nom_sci contient Lycopodium');}public function testRechercheDefautMasqueSg() {$ressources = array();$parametres = array('masque.sg' => 'Lycopodiaceae');$retour = $this->consulter($ressources, $parametres);$this->assertArrayHasKey('masque', $retour['entete'], 'Présence champ entete>masque');$this->assertEquals('nom_supra_generique=Lycopodiaceae', $retour['entete']['masque'], 'Valeur champ entete>masque = "nom_sci=Lycopodiaceae"');$this->assertCount(1, $retour['resultats'], 'Nombre de valeurs dans resultats = 1');$this->assertEquals('Lycopodiaceae', $retour['resultats']['4']['nom_sci'], 'Test valeur champ resultats>4>nom_sci = Lycopodiaceae');}public function testRechercheDefautMasqueGen() {$ressources = array();$parametres = array('masque.gen' => 'Lycopodium');$retour = $this->consulter($ressources, $parametres);$this->assertArrayHasKey('masque', $retour['entete'], 'Présence champ entete>masque');$this->assertEquals('genre=Lycopodium', $retour['entete']['masque'], 'Valeur champ entete>masque = "genre=Lycopodium"');$this->assertCount(11, $retour['resultats'], 'Nombre de valeurs dans resultats = 11');foreach ($retour['resultats'] as $id => $info) {$this->assertContains('Lycopodium', $info['nom_sci'], "Test valeur champ resultats>$id>nom_sci contient Lycopodium");}}public function testRechercheDefautMasqueSp() {$ressources = array();$parametres = array('masque.sp' => 'alpinum');$retour = $this->consulter($ressources, $parametres);$this->assertArrayHasKey('masque', $retour['entete'], 'Présence champ entete>masque');$this->assertEquals('epithete_sp=alpinum', $retour['entete']['masque'], 'Valeur champ entete>masque = "epithete_sp=alpinum"');$this->assertCount(2, $retour['resultats'], 'Nombre de valeurs dans resultats = 2');foreach ($retour['resultats'] as $id => $info) {$this->assertContains('alpinum', $info['nom_sci'], "Test valeur champ resultats>$id>nom_sci contient alpinum");}}public function testRechercheEtendueMasqueSg() {$ressources = array();$parametres = array('masque.sg' => 'Lycopodiaceae', 'recherche' => 'etendue');$retour = $this->consulter($ressources, $parametres);$this->assertArrayHasKey('masque', $retour['entete'], 'Présence champ entete>masque');$this->assertEquals('nom_supra_generique=Lycopodiaceae%', $retour['entete']['masque'], 'Valeur champ entete>masque = "nom_sci=Lycopodiaceae"');$this->assertCount(1, $retour['resultats'], 'Nombre de valeurs dans resultats = 1');$this->assertEquals('Lycopodiaceae', $retour['resultats']['4']['nom_sci'], 'Test valeur champ resultats>4>nom_sci = Lycopodiaceae');}public function testRechercheEtendueMasqueGen() {$ressources = array();$parametres = array('masque.gen' => 'Lycopodium', 'recherche' => 'etendue');$retour = $this->consulter($ressources, $parametres);$this->assertArrayHasKey('masque', $retour['entete'], 'Présence champ entete>masque');$this->assertEquals('genre=Lycopodium%', $retour['entete']['masque'], 'Valeur champ entete>masque = "genre=Lycopodium"');$this->assertCount(11, $retour['resultats'], 'Nombre de valeurs dans resultats = 11');foreach ($retour['resultats'] as $id => $info) {$this->assertContains('Lycopodium', $info['nom_sci'], "Test valeur champ resultats>$id>nom_sci contient Lycopodium");}}public function testRechercheEtendueMasqueSp() {$ressources = array();$parametres = array('masque.sp' => 'alpinum', 'recherche' => 'etendue');$retour = $this->consulter($ressources, $parametres);$this->assertArrayHasKey('masque', $retour['entete'], 'Présence champ entete>masque');$this->assertEquals('epithete_sp=alpinum%', $retour['entete']['masque'], 'Valeur champ entete>masque = "epithete_sp=alpinum"');$this->assertCount(2, $retour['resultats'], 'Nombre de valeurs dans resultats = 2');foreach ($retour['resultats'] as $id => $info) {$this->assertContains('alpinum', $info['nom_sci'], "Test valeur champ resultats>$id>nom_sci contient alpinum");}}public function testRetourChamps() {$ressources = array();$parametres = array('retour.champs' => 'nom_retenu');$retour = $this->consulter($ressources, $parametres);$this->assertArrayHasKey('href.suivant', $retour['entete'], "Présence champ entete>href.suivant");$url = $this->listeUrl.'?retour.champs=nom_retenu&navigation.depart=100&navigation.limite=100';$this->assertEquals($url, $retour['entete']['href.suivant'], "Valeur champ entete>href.suivant = $url");foreach ($retour['resultats'] as $id => $info) {$this->assertArrayHasKey('nom_retenu', $info, "Présence champ resultats>$id>nom_retenu ");}}}?>