Subversion Repositories eFlore/Projets.eflore-projets

Rev

Rev 195 | Rev 205 | Go to most recent revision | 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
 
6
	private $listeUrl = 'http://localhost/service:eflore:0.1/fournier/noms';
7
	private $nomDetailSqueletteUrl = 'http://localhost/service:eflore:0.1/fournier/noms/%s';
8
	private $nbreNom = 168;
9
 
10
	public function __construct() {
203 jpm 11
		$this->projet = 'fournier';
195 jpm 12
		$this->service = 'noms';
203 jpm 13
		$this->classeTestee = 'NomsListeFournier';
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
 
24
		$retour = $this->consulterBrut($ressources, $parametres);
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
 
58
		$retour = $this->consulterBrut($ressources, $parametres);
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
 
75
		$retour = $this->consulterBrut($ressources, $parametres);
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
 
87
		$retour = $this->consulterBrut($ressources, $parametres);
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
 
99
		$retour = $this->consulterBrut($ressources, $parametres);
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
 
113
		$retour = $this->consulterBrut($ressources, $parametres);
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
 
125
		$retour = $this->consulterBrut($ressources, $parametres);
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
 
137
		$retour = $this->consulterBrut($ressources, $parametres);
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
 
151
		$retour = $this->consulterBrut($ressources, $parametres);
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
 
165
		$retour = $this->consulterBrut($ressources, $parametres);
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
 
177
		$retour = $this->consulterBrut($ressources, $parametres);
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
 
191
		$retour = $this->consulterBrut($ressources, $parametres);
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
 
201
}
202
?>