195 |
jpm |
1 |
<?php
|
|
|
2 |
require_once dirname(__FILE__).'/../ServicePhpUnit.php';
|
|
|
3 |
|
|
|
4 |
class NomsListeFournierTest extends ServicePhpUnit {
|
|
|
5 |
|
206 |
jpm |
6 |
private $listeUrl = 'http://localhost/service:eflore:0.2/fournier/noms';
|
|
|
7 |
private $nomDetailSqueletteUrl = 'http://localhost/service:eflore:0.2/fournier/noms/%s';
|
195 |
jpm |
8 |
private $nbreNom = 168;
|
|
|
9 |
|
|
|
10 |
public function __construct() {
|
203 |
jpm |
11 |
$this->projet = 'fournier';
|
195 |
jpm |
12 |
$this->service = 'noms';
|
|
|
13 |
}
|
|
|
14 |
|
|
|
15 |
public function testSansParametres() {
|
|
|
16 |
$ressources = array();
|
|
|
17 |
$parametres = array();
|
|
|
18 |
|
206 |
jpm |
19 |
$retour = $this->consulter($ressources, $parametres);
|
195 |
jpm |
20 |
$this->assertArrayHasKey('entete', $retour, 'Présence champ entete');
|
|
|
21 |
$this->assertArrayHasKey('masque', $retour['entete'], 'Présence champ entete>masque');
|
|
|
22 |
$this->assertEmpty($retour['entete']['masque'], 'Valeur champ entete>masque = vide');
|
|
|
23 |
$this->assertArrayHasKey('depart', $retour['entete'], 'Présence champ entete>depart');
|
|
|
24 |
$this->assertSame(0, $retour['entete']['depart'], 'Valeur champ entete>depart = 0');
|
|
|
25 |
$this->assertArrayHasKey('limite', $retour['entete'], 'Présence champ entete>limite');
|
|
|
26 |
$this->assertSame(100, $retour['entete']['limite'], 'Valeur champ entete>limite = 100');
|
|
|
27 |
$this->assertArrayHasKey('total', $retour['entete'], 'Présence champ entete>total');
|
|
|
28 |
$this->assertNotEquals(0, $retour['entete']['total'], 'Valeur champ entete>total != 0');
|
|
|
29 |
$this->assertSame($this->nbreNom, $retour['entete']['total'], 'Valeur champ entete>total = 168');
|
|
|
30 |
$this->assertArrayNotHasKey('href.precedent', $retour['entete'], "Abscence champ entete>href.precedent");
|
|
|
31 |
$this->assertArrayHasKey('href.suivant', $retour['entete'], "Présence champ entete>href.suivant");
|
|
|
32 |
$url = $this->listeUrl.'?navigation.depart=100&navigation.limite=100';
|
|
|
33 |
$this->assertEquals($url, $retour['entete']['href.suivant'], "Valeur champ entete>href.suivant = $url");
|
|
|
34 |
|
|
|
35 |
$this->assertArrayHasKey('resultats', $retour, 'Valeur champ resultats');
|
|
|
36 |
$this->assertCount(100, $retour['resultats'], 'Nombre de valeurs dans resultats = 100');
|
|
|
37 |
$this->assertArrayNotHasKey('1', $retour['resultats'], 'Abscence champ resultats>1 car trie sur nom_sci ASC');
|
|
|
38 |
$this->assertArrayHasKey('2', $retour['resultats'], 'Présence champ resultats>2');
|
|
|
39 |
$this->assertArrayHasKey('nom_sci', $retour['resultats']['2'], 'Présence champ resultats>2>nom_sci');
|
|
|
40 |
$this->assertCount(3, $retour['resultats']['2'], 'Nombre de valeurs dans resultats>2 = 3');
|
|
|
41 |
$this->assertEquals('Cryptogames', $retour['resultats']['2']['nom_sci'], 'Test valeur champ resultats>2>nom_sci = Plantae');
|
|
|
42 |
$this->assertArrayHasKey('retenu', $retour['resultats']['2'], 'Présence champ resultats>2>retenu');
|
|
|
43 |
$this->assertTrue($retour['resultats']['2']['retenu'], 'Valeur champ resultats>2>retenu = true');
|
|
|
44 |
$this->assertArrayHasKey('href', $retour['resultats']['2'], 'Présence champ resultats>2>href');
|
|
|
45 |
$url = sprintf($this->nomDetailSqueletteUrl, '2');
|
|
|
46 |
$this->assertEquals($url, $retour['resultats']['2']['href'], "Valeur champ resultats>2>nom_sci = $url");
|
|
|
47 |
}
|
|
|
48 |
|
|
|
49 |
public function testParametreNavigationDepart100() {
|
|
|
50 |
$ressources = array();
|
|
|
51 |
$parametres = array('navigation.depart' => 100);
|
|
|
52 |
|
206 |
jpm |
53 |
$retour = $this->consulter($ressources, $parametres);
|
195 |
jpm |
54 |
|
|
|
55 |
$this->assertArrayHasKey('depart', $retour['entete'], 'Présence champ entete>depart');
|
|
|
56 |
$this->assertSame(100, $retour['entete']['depart'], 'Valeur champ entete>depart = 100');
|
|
|
57 |
$this->assertArrayHasKey('limite', $retour['entete'], 'Présence champ entete>limite');
|
|
|
58 |
$this->assertSame(100, $retour['entete']['limite'], 'Valeur champ entete>limite = 100');
|
|
|
59 |
$this->assertSame($this->nbreNom, $retour['entete']['total'], 'Valeur champ entete>total = 168');
|
|
|
60 |
$this->assertArrayNotHasKey('href.suivant', $retour['entete'], "Abscence champ entete>href.suivant");
|
|
|
61 |
$this->assertArrayHasKey('href.precedent', $retour['entete'], "Présence champ entete>href.precedent");
|
|
|
62 |
$url = $this->listeUrl.'?navigation.depart=0&navigation.limite=100';
|
|
|
63 |
$this->assertEquals($url, $retour['entete']['href.precedent'], "Valeur champ entete>href.precedent = $url");
|
|
|
64 |
}
|
|
|
65 |
|
|
|
66 |
public function testRechercheDefautMasque() {
|
|
|
67 |
$ressources = array();
|
|
|
68 |
$parametres = array('masque' => 'Lycopodium');
|
|
|
69 |
|
206 |
jpm |
70 |
$retour = $this->consulter($ressources, $parametres);
|
195 |
jpm |
71 |
|
|
|
72 |
$this->assertArrayHasKey('masque', $retour['entete'], 'Présence champ entete>masque');
|
|
|
73 |
$this->assertEquals('nom_sci=Lycopodium', $retour['entete']['masque'], 'Valeur champ entete>masque = "nom_sci=Lycopodium"');
|
|
|
74 |
$this->assertCount(1, $retour['resultats'], 'Nombre de valeurs dans resultats = 1');
|
|
|
75 |
$this->assertEquals('Lycopodium', $retour['resultats']['5']['nom_sci'], 'Test valeur champ resultats>5>nom_sci = Lycopodium');
|
|
|
76 |
}
|
|
|
77 |
|
|
|
78 |
public function testRechercheStricteMasque() {
|
|
|
79 |
$ressources = array();
|
|
|
80 |
$parametres = array('masque' => 'Lycopodium', 'recherche' => 'stricte');
|
|
|
81 |
|
206 |
jpm |
82 |
$retour = $this->consulter($ressources, $parametres);
|
195 |
jpm |
83 |
|
|
|
84 |
$this->assertArrayHasKey('masque', $retour['entete'], 'Présence champ entete>masque');
|
|
|
85 |
$this->assertEquals('nom_sci=Lycopodium', $retour['entete']['masque'], 'Valeur champ entete>masque = "nom_sci=Lycopodium"');
|
|
|
86 |
$this->assertCount(1, $retour['resultats'], 'Nombre de valeurs dans resultats = 1');
|
|
|
87 |
$this->assertEquals('Lycopodium', $retour['resultats']['5']['nom_sci'], 'Test valeur champ resultats>5>nom_sci = Lycopodium');
|
|
|
88 |
}
|
|
|
89 |
|
|
|
90 |
public function testerRechercheEtendueMasque() {
|
|
|
91 |
$ressources = array();
|
|
|
92 |
$parametres = array('masque' => 'Lycopodium', 'recherche' => 'etendue');
|
|
|
93 |
|
206 |
jpm |
94 |
$retour = $this->consulter($ressources, $parametres);
|
195 |
jpm |
95 |
|
|
|
96 |
$this->assertArrayHasKey('masque', $retour['entete'], 'Présence champ entete>masque');
|
|
|
97 |
$this->assertEquals('nom_sci=Lycopodium%', $retour['entete']['masque'], 'Valeur champ entete>masque = "nom_sci=Lycopodium%"');
|
|
|
98 |
$this->assertCount(11, $retour['resultats'], 'Nombre de valeurs dans resultats = 10');
|
|
|
99 |
foreach ($retour['resultats'] as $nom) {
|
|
|
100 |
$this->assertContains('Lycopodium', $nom['nom_sci'], 'Test valeur champ resultats>...>nom_sci contient Lycopodium');
|
|
|
101 |
}
|
|
|
102 |
}
|
|
|
103 |
|
|
|
104 |
public function testerRechercheFloueMasque() {
|
|
|
105 |
$ressources = array();
|
|
|
106 |
$parametres = array('masque' => 'Licopodium', 'recherche' => 'floue');
|
|
|
107 |
|
206 |
jpm |
108 |
$retour = $this->consulter($ressources, $parametres);
|
195 |
jpm |
109 |
|
|
|
110 |
$this->assertArrayHasKey('masque', $retour['entete'], 'Présence champ entete>masque');
|
|
|
111 |
$this->assertEquals('nom_sci=Licopodium', $retour['entete']['masque'], 'Valeur champ entete>masque = "nom_sci=Licopodium"');
|
|
|
112 |
$this->assertCount(1, $retour['resultats'], 'Nombre de valeurs dans resultats = 1');
|
|
|
113 |
$this->assertContains('Lycopodium', $retour['resultats'][5]['nom_sci'], 'Test valeur champ resultats>5>nom_sci contient Lycopodium');
|
|
|
114 |
}
|
|
|
115 |
|
|
|
116 |
public function testRechercheDefautMasqueSg() {
|
|
|
117 |
$ressources = array();
|
|
|
118 |
$parametres = array('masque.sg' => 'Lycopodiaceae');
|
|
|
119 |
|
206 |
jpm |
120 |
$retour = $this->consulter($ressources, $parametres);
|
195 |
jpm |
121 |
|
|
|
122 |
$this->assertArrayHasKey('masque', $retour['entete'], 'Présence champ entete>masque');
|
|
|
123 |
$this->assertEquals('nom_supra_generique=Lycopodiaceae', $retour['entete']['masque'], 'Valeur champ entete>masque = "nom_sci=Lycopodiaceae"');
|
|
|
124 |
$this->assertCount(1, $retour['resultats'], 'Nombre de valeurs dans resultats = 1');
|
|
|
125 |
$this->assertEquals('Lycopodiaceae', $retour['resultats']['4']['nom_sci'], 'Test valeur champ resultats>4>nom_sci = Lycopodiaceae');
|
|
|
126 |
}
|
|
|
127 |
|
|
|
128 |
public function testRechercheDefautMasqueGen() {
|
|
|
129 |
$ressources = array();
|
|
|
130 |
$parametres = array('masque.gen' => 'Lycopodium');
|
|
|
131 |
|
206 |
jpm |
132 |
$retour = $this->consulter($ressources, $parametres);
|
195 |
jpm |
133 |
|
|
|
134 |
$this->assertArrayHasKey('masque', $retour['entete'], 'Présence champ entete>masque');
|
|
|
135 |
$this->assertEquals('genre=Lycopodium', $retour['entete']['masque'], 'Valeur champ entete>masque = "genre=Lycopodium"');
|
|
|
136 |
$this->assertCount(11, $retour['resultats'], 'Nombre de valeurs dans resultats = 11');
|
|
|
137 |
foreach ($retour['resultats'] as $id => $info) {
|
|
|
138 |
$this->assertContains('Lycopodium', $info['nom_sci'], "Test valeur champ resultats>$id>nom_sci contient Lycopodium");
|
|
|
139 |
}
|
|
|
140 |
}
|
|
|
141 |
|
|
|
142 |
public function testRechercheDefautMasqueSp() {
|
|
|
143 |
$ressources = array();
|
|
|
144 |
$parametres = array('masque.sp' => 'alpinum');
|
|
|
145 |
|
206 |
jpm |
146 |
$retour = $this->consulter($ressources, $parametres);
|
195 |
jpm |
147 |
|
|
|
148 |
$this->assertArrayHasKey('masque', $retour['entete'], 'Présence champ entete>masque');
|
|
|
149 |
$this->assertEquals('epithete_sp=alpinum', $retour['entete']['masque'], 'Valeur champ entete>masque = "epithete_sp=alpinum"');
|
|
|
150 |
$this->assertCount(2, $retour['resultats'], 'Nombre de valeurs dans resultats = 2');
|
|
|
151 |
foreach ($retour['resultats'] as $id => $info) {
|
|
|
152 |
$this->assertContains('alpinum', $info['nom_sci'], "Test valeur champ resultats>$id>nom_sci contient alpinum");
|
|
|
153 |
}
|
|
|
154 |
}
|
|
|
155 |
|
|
|
156 |
public function testRechercheEtendueMasqueSg() {
|
|
|
157 |
$ressources = array();
|
|
|
158 |
$parametres = array('masque.sg' => 'Lycopodiaceae', 'recherche' => 'etendue');
|
|
|
159 |
|
206 |
jpm |
160 |
$retour = $this->consulter($ressources, $parametres);
|
195 |
jpm |
161 |
|
|
|
162 |
$this->assertArrayHasKey('masque', $retour['entete'], 'Présence champ entete>masque');
|
|
|
163 |
$this->assertEquals('nom_supra_generique=Lycopodiaceae%', $retour['entete']['masque'], 'Valeur champ entete>masque = "nom_sci=Lycopodiaceae"');
|
|
|
164 |
$this->assertCount(1, $retour['resultats'], 'Nombre de valeurs dans resultats = 1');
|
|
|
165 |
$this->assertEquals('Lycopodiaceae', $retour['resultats']['4']['nom_sci'], 'Test valeur champ resultats>4>nom_sci = Lycopodiaceae');
|
|
|
166 |
}
|
|
|
167 |
|
|
|
168 |
public function testRechercheEtendueMasqueGen() {
|
|
|
169 |
$ressources = array();
|
|
|
170 |
$parametres = array('masque.gen' => 'Lycopodium', 'recherche' => 'etendue');
|
|
|
171 |
|
206 |
jpm |
172 |
$retour = $this->consulter($ressources, $parametres);
|
195 |
jpm |
173 |
|
|
|
174 |
$this->assertArrayHasKey('masque', $retour['entete'], 'Présence champ entete>masque');
|
|
|
175 |
$this->assertEquals('genre=Lycopodium%', $retour['entete']['masque'], 'Valeur champ entete>masque = "genre=Lycopodium"');
|
|
|
176 |
$this->assertCount(11, $retour['resultats'], 'Nombre de valeurs dans resultats = 11');
|
|
|
177 |
foreach ($retour['resultats'] as $id => $info) {
|
|
|
178 |
$this->assertContains('Lycopodium', $info['nom_sci'], "Test valeur champ resultats>$id>nom_sci contient Lycopodium");
|
|
|
179 |
}
|
|
|
180 |
}
|
|
|
181 |
|
|
|
182 |
public function testRechercheEtendueMasqueSp() {
|
|
|
183 |
$ressources = array();
|
|
|
184 |
$parametres = array('masque.sp' => 'alpinum', 'recherche' => 'etendue');
|
|
|
185 |
|
206 |
jpm |
186 |
$retour = $this->consulter($ressources, $parametres);
|
195 |
jpm |
187 |
|
|
|
188 |
$this->assertArrayHasKey('masque', $retour['entete'], 'Présence champ entete>masque');
|
|
|
189 |
$this->assertEquals('epithete_sp=alpinum%', $retour['entete']['masque'], 'Valeur champ entete>masque = "epithete_sp=alpinum"');
|
|
|
190 |
$this->assertCount(2, $retour['resultats'], 'Nombre de valeurs dans resultats = 2');
|
|
|
191 |
foreach ($retour['resultats'] as $id => $info) {
|
|
|
192 |
$this->assertContains('alpinum', $info['nom_sci'], "Test valeur champ resultats>$id>nom_sci contient alpinum");
|
|
|
193 |
}
|
|
|
194 |
}
|
|
|
195 |
|
205 |
jpm |
196 |
public function testRetourChamps() {
|
|
|
197 |
$ressources = array();
|
|
|
198 |
$parametres = array('retour.champs' => 'nom_retenu');
|
|
|
199 |
|
206 |
jpm |
200 |
$retour = $this->consulter($ressources, $parametres);
|
205 |
jpm |
201 |
|
|
|
202 |
$this->assertArrayHasKey('href.suivant', $retour['entete'], "Présence champ entete>href.suivant");
|
|
|
203 |
$url = $this->listeUrl.'?retour.champs=nom_retenu&navigation.depart=100&navigation.limite=100';
|
|
|
204 |
$this->assertEquals($url, $retour['entete']['href.suivant'], "Valeur champ entete>href.suivant = $url");
|
|
|
205 |
foreach ($retour['resultats'] as $id => $info) {
|
|
|
206 |
$this->assertArrayHasKey('nom_retenu', $info, "Présence champ resultats>$id>nom_retenu ");
|
|
|
207 |
}
|
|
|
208 |
}
|
|
|
209 |
|
195 |
jpm |
210 |
}
|
|
|
211 |
?>
|