Subversion Repositories eFlore/Projets.eflore-projets

Rev

Rev 844 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
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
?>