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