Subversion Repositories eFlore/Projets.eflore-projets

Rev

Rev 217 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 217 Rev 221
1
<?php
1
<?php
2
require_once dirname(__FILE__).'/../ServicePhpUnit.php';
2
require_once dirname(__FILE__).'/../ServicePhpUnit.php';
3
 
3
 
4
class NomsServiceBdtfxTest extends ServicePhpUnit {
4
class NomsServiceBdtfxTest extends ServicePhpUnit {
5
 
5
 
6
	private $retour = '';
6
	private $retour = '';
7
	private $nomDetailSqueletteUrl = 'http://localhost/service:eflore:0.2/bdtfx/noms/%s';
7
	private $nomDetailSqueletteUrl = 'http://localhost/service:eflore:0.2/bdtfx/noms/%s';
8
	private $ontologieHrefTpl = 'http://localhost/service:eflore:0.2/bdnt/ontologies/rangTaxo:%s';
8
	private $ontologieHrefTpl = 'http://localhost/service:eflore:0.2/bdnt/ontologies/rangTaxo:%s';
9
	private $champsProjet = array(
9
	private $champsProjet = array(
10
		'presence_Ga' => 'presence_Ga.code',
10
		'presence_Ga' => 'presence_Ga.code',
11
		'presence_Co' => 'presence_Co.code'
11
		'presence_Co' => 'presence_Co.code'
12
		);
12
		);
13
 
13
 
14
	public function __construct() {
14
	public function __construct() {
15
		$this->projet = 'bdtfx';
15
		$this->projet = 'bdtfx';
16
		$this->service = 'noms';
16
		$this->service = 'noms';
17
	}
17
	}
18
 
18
 
19
	public function initialiserService(NomsListe $service) {
19
	public function initialiserService(NomsListe $service) {
20
		$service->setDetailsHrefTpl($this->nomDetailSqueletteUrl);
20
		$service->setDetailsHrefTpl($this->nomDetailSqueletteUrl);
21
		$service->setOntologieHrefTpl($this->ontologieHrefTpl);
21
		$service->setOntologieHrefTpl($this->ontologieHrefTpl);
22
		$service->setChampsProjet($this->champsProjet);
22
		$service->setChampsProjet($this->champsProjet);
23
	}
23
	}
24
 
24
 
25
	public function testVersionPrecise() {
25
	public function testVersionPrecise() {
26
		$ressources = array();
26
		$ressources = array();
27
		$parametres = array('version.projet' => '1.01', 'recherche' => 'etendue', 'masque' => 'acer');
27
		$parametres = array('version.projet' => '1.01', 'recherche' => 'etendue', 'masque' => 'acer');
28
 
28
 
29
		$this->retour = $this->consulter($ressources, $parametres);
29
		$this->retour = $this->consulter($ressources, $parametres);
30
 
30
 
31
		$this->verifierStructureListe();
31
		$this->verifierStructureListe();
32
		$this->verifierMasque('nom_sci=acer%');
32
		$this->verifierMasque('nom_sci=acer%');
33
		$this->verifierTotal(156);
33
		$this->verifierTotal(156);
34
		$this->verifierNbreResultats(100);
34
		$this->verifierNbreResultats(100);
35
	}
35
	}
36
 
36
 
37
	public function testNomsVersionMultiple() {
37
	public function testNomsVersionMultiple() {
38
		$ressources = array();
38
		$ressources = array();
39
		$parametres = array('version.projet' => '*', 'recherche' => 'etendue', 'masque' => 'acer');
39
		$parametres = array('version.projet' => '*', 'recherche' => 'etendue', 'masque' => 'acer');
40
 
40
 
41
		$this->retour = $this->consulterBrut($ressources, $parametres);
41
		$this->retour = $this->consulterBrut($ressources, $parametres);
42
 
42
 
43
		$this->verifierPresenceMessage("L'affichage de plusieurs versions ne fonctionne que pour les ressources de type /ressources/#id");
43
		$this->verifierPresenceMessage("L'affichage de plusieurs versions ne fonctionne que pour les ressources de type /ressources/#id");
44
	}
44
	}
45
 
45
 
46
	public function testVersionInexistante() {
46
	public function testVersionInexistante() {
47
		$ressources = array();
47
		$ressources = array();
48
		$parametres = array('version.projet' => '99.00');
48
		$parametres = array('version.projet' => '99.00');
49
 
49
 
50
		$this->retour = $this->consulterBrut($ressources, $parametres);
50
		$this->retour = $this->consulterBrut($ressources, $parametres);
51
 
51
 
52
		$this->verifierPresenceMessage("La version '99.00' n'est pas disponible pour le projet 'bdtfx' !");
52
		$this->verifierPresenceMessage("La version '99.00' n'est pas disponible pour le projet 'bdtfx' !");
53
	}
53
	}
54
 
54
 
55
	public function testAucunResultat() {
55
	public function testAucunResultat() {
56
		$ressources = array();
56
		$ressources = array();
57
		$parametres = array(
57
		$parametres = array(
58
					'version.projet' => '1.01',
58
					'version.projet' => '1.01',
59
					'recherche' => 'stricte',
59
					'recherche' => 'stricte',
60
					'masque' => 'Axer');
60
					'masque' => 'Axer');
61
 
61
 
62
		$this->retour = $this->consulterBrut($ressources, $parametres);
62
		$this->retour = $this->consulterBrut($ressources, $parametres);
63
 
63
 
64
		$this->verifierPresenceMessage("Aucun résultat ne correspond a votre requête !");
64
		$this->verifierPresenceMessage("Aucun résultat ne correspond a votre requête !");
65
	}
65
	}
66
 
66
 
67
	public function testRechercheStricte() {
67
	public function testRechercheStricte() {
68
		$ressources = array();
68
		$ressources = array();
69
		$parametres = array(
69
		$parametres = array(
70
				'version.projet' => '1.01',
70
				'version.projet' => '1.01',
71
				'recherche' => 'stricte',
71
				'recherche' => 'stricte',
72
				'masque' => 'Acer');
72
				'masque' => 'Acer');
73
 
73
 
74
		$this->retour = $this->consulter($ressources, $parametres);
74
		$this->retour = $this->consulter($ressources, $parametres);
75
 
75
 
76
		$this->verifierStructureListe();
76
		$this->verifierStructureListe();
77
		$this->verifierMasque('nom_sci=Acer');
77
		$this->verifierMasque('nom_sci=Acer');
78
		$this->verifierTotal(1);
78
		$this->verifierTotal(1);
79
		$this->verifierNbreResultats(1);
79
		$this->verifierNbreResultats(1);
80
	}
80
	}
81
 
81
 
82
	public function testResultatChamps() {
82
	public function testResultatChamps() {
83
		$ressources = array();
83
		$ressources = array();
84
		$parametres = array(
84
		$parametres = array(
85
				'version.projet' => '1.01',
85
				'version.projet' => '1.01',
86
				'recherche' => 'stricte',
86
				'recherche' => 'stricte',
87
				'masque.nn' => '182');
87
				'masque.nn' => '182');
88
 
88
 
89
		$this->retour = $this->consulter($ressources, $parametres);
89
		$this->retour = $this->consulter($ressources, $parametres);
90
 
90
 
91
		$this->verifierStructureListe();
91
		$this->verifierStructureListe();
92
		$this->verifierMasque('num_nom=182');
92
		$this->verifierMasque('num_nom=182');
93
		$this->verifierTotal(1);
93
		$this->verifierTotal(1);
94
		$this->verifierNbreResultats(1);
94
		$this->verifierNbreResultats(1);
95
		$this->verifierLigneResultatsStructure(182);
95
		$this->verifierLigneResultatsStructure(182);
96
		$this->verifierResultatsLigneAttributValeur(182, 'retenu', true);
96
		$this->verifierResultatsLigneAttributValeur(182, 'retenu', true);
97
		$this->verifierResultatsLigneAttributValeur(182, 'nom_sci', 'Acer monspessulanum');
97
		$this->verifierResultatsLigneAttributValeur(182, 'nom_sci', 'Acer monspessulanum');
98
	}
98
	}
99
 
99
 
100
	public function testMasqueSg() {
100
	public function testMasqueSg() {
101
		$ressources = array();
101
		$ressources = array();
102
		$parametres = array(
102
		$parametres = array(
103
				'version.projet' => '1.01',
103
				'version.projet' => '1.01',
104
				'recherche' => 'stricte',
104
				'recherche' => 'stricte',
105
				'masque.sg' => 'Asteraceae');
105
				'masque.sg' => 'Asteraceae');
106
 
106
 
107
		$this->retour = $this->consulter($ressources, $parametres);
107
		$this->retour = $this->consulter($ressources, $parametres);
108
 
108
 
109
		$this->verifierStructureListe();
109
		$this->verifierStructureListe();
110
		$this->verifierMasque('nom_supra_generique=Asteraceae');
110
		$this->verifierMasque('nom_supra_generique=Asteraceae');
111
		$this->verifierTotal(1);
111
		$this->verifierTotal(1);
112
		$this->verifierNbreResultats(1);
112
		$this->verifierNbreResultats(1);
113
	}
113
	}
114
 
114
 
115
	public function testMasqueGenSpSspAuAn() {
115
	public function testMasqueGenSpSspAuAn() {
116
		$ressources = array();
116
		$ressources = array();
117
		$parametres = array(
117
		$parametres = array(
118
				'version.projet' => '1.01',
118
				'version.projet' => '1.01',
119
				'recherche' => 'stricte',
119
				'recherche' => 'stricte',
120
				'masque.gen' => 'Allium',
120
				'masque.gen' => 'Allium',
121
				'masque.sp' => 'carinatum',
121
				'masque.sp' => 'carinatum',
122
				'masque.ssp' => 'consimile',
122
				'masque.ssp' => 'consimile',
123
				'masque.au' => 'Gren.',
123
				'masque.au' => 'Gren.',
124
				'masque.an' => '1855');
124
				'masque.an' => '1855');
125
 
125
 
126
		$this->retour = $this->consulter($ressources, $parametres);
126
		$this->retour = $this->consulter($ressources, $parametres);
127
 
127
 
128
		$this->verifierStructureListe();
128
		$this->verifierStructureListe();
129
		$this->verifierMasque('genre=Allium&epithete_sp=carinatum&epithete_infra_sp=consimile&auteur=Gren.&annee=1855');
129
		$this->verifierMasque('genre=Allium&epithete_sp=carinatum&epithete_infra_sp=consimile&auteur=Gren.&annee=1855');
130
		$this->verifierTotal(1);
130
		$this->verifierTotal(1);
131
		$this->verifierNbreResultats(1);
131
		$this->verifierNbreResultats(1);
132
	}
132
	}
133
 
133
 
134
	public function testMasqueNn() {
134
	public function testMasqueNn() {
135
		$ressources = array();
135
		$ressources = array();
136
		$parametres = array(
136
		$parametres = array(
137
				'version.projet' => '1.01',
137
				'version.projet' => '1.01',
138
				'recherche' => 'stricte',
138
				'recherche' => 'stricte',
139
				'masque.nn' => '182');
139
				'masque.nn' => '182');
140
 
140
 
141
		$this->retour = $this->consulter($ressources, $parametres);
141
		$this->retour = $this->consulter($ressources, $parametres);
142
 
142
 
143
		$this->verifierStructureListe();
143
		$this->verifierStructureListe();
144
		$this->verifierMasque('num_nom=182');
144
		$this->verifierMasque('num_nom=182');
145
		$this->verifierTotal(1);
145
		$this->verifierTotal(1);
146
		$this->verifierNbreResultats(1);
146
		$this->verifierNbreResultats(1);
147
		$this->verifierLigneResultatsStructure(182);
147
		$this->verifierLigneResultatsStructure(182);
148
	}
148
	}
149
 
149
 
150
	public function testMasqueRg() {
150
	public function testMasqueRg() {
151
		$ressources = array();
151
		$ressources = array();
152
		$parametres = array(
152
		$parametres = array(
153
				'version.projet' => '1.01',
153
				'version.projet' => '1.01',
154
				'recherche' => 'stricte',
154
				'recherche' => 'stricte',
155
				'masque.rg' => '180');
155
				'masque.rg' => '180');
156
 
156
 
157
		$this->retour = $this->consulter($ressources, $parametres);
157
		$this->retour = $this->consulter($ressources, $parametres);
158
 
158
 
159
		$this->verifierStructureListe();
159
		$this->verifierStructureListe();
160
		$this->verifierMasque('rang=180');
160
		$this->verifierMasque('rang=180');
161
		$this->verifierTotal(210);
161
		$this->verifierTotal(210);
162
	}
162
	}
163
 
163
 
164
	// TODO : à implémenter!
164
	// TODO : à implémenter!
165
	/*
165
	/*
166
	 public function testNomsIdVersionMultiple() {
166
	 public function testNomsIdVersionMultiple() {
167
	$ressources = array('71711');
167
	$ressources = array('71711');
168
	$parametres = array('version.projet' => '*');
168
	$parametres = array('version.projet' => '*');
169
 
169
 
170
	$retour = $this->consulter($ressources, $parametres);
170
	$retour = $this->consulter($ressources, $parametres);
171
	$this->assertArrayHasKey('bdtfx_v1_01', $retour, "Le json ne contient pas d'attribut : bdtfx_v1_01.");
171
	$this->assertArrayHasKey('bdtfx_v1_01', $retour, "Le json ne contient pas d'attribut : bdtfx_v1_01.");
172
	$this->assertArrayHasKey('bdtfx_v1_02', $retour, "Le json ne contient pas d'attribut : bdtfx_v1_02.");
172
	$this->assertArrayHasKey('bdtfx_v1_02', $retour, "Le json ne contient pas d'attribut : bdtfx_v1_02.");
173
	$this->assertEquals('71711', $retour['bdtfx_v1_01']['id'], "'bdtfx_v1_01' doit contenir un attribut 'id' avec la valeur '71711'");
173
	$this->assertEquals('71711', $retour['bdtfx_v1_01']['id'], "'bdtfx_v1_01' doit contenir un attribut 'id' avec la valeur '71711'");
174
	$this->assertEquals('71711', $retour['bdtfx_v1_02']['id'], "'bdtfx_v1_02' doit contenir un attribut 'id' avec la valeur '71711'");
174
	$this->assertEquals('71711', $retour['bdtfx_v1_02']['id'], "'bdtfx_v1_02' doit contenir un attribut 'id' avec la valeur '71711'");
175
	}*/
175
	}*/
176
 
176
 
177
	// TODO : à implémenter
177
	// TODO : à implémenter
178
	/*
178
	/*
179
	public function testNsStructureTxt() {
179
	public function testNsStructureTxt() {
180
		$ressources = array();
180
		$ressources = array();
181
		$parametres = array(
181
		$parametres = array(
182
				'version.projet' => '1.01',
182
				'version.projet' => '1.01',
183
				'recherche' => 'stricte',
183
				'recherche' => 'stricte',
184
				'masque.nn' => '182',
184
				'masque.nn' => '182',
185
				'ns.format' => 'txt',
185
				'ns.format' => 'txt',
186
				'ns.structure' => 'au,an,bib,ad');
186
				'ns.structure' => 'au,an,bib,ad');
187
 
187
 
188
		$this->retour = $this->consulter($ressources, $parametres);
188
		$this->retour = $this->consulter($ressources, $parametres);
189
 
189
 
190
		$this->verifierStructureListe();
190
		$this->verifierStructureListe();
191
		$this->verifierMasque('num_nom=182');
191
		$this->verifierMasque('num_nom=182');
192
		$this->verifierTotal(1);
192
		$this->verifierTotal(1);
193
		$this->verifierNbreResultats(1);
193
		$this->verifierNbreResultats(1);
194
		$this->verifierResultatsLigneAttributValeur(182, 'nom_sci', 'Acer monspessulanum L. [1753, Sp. Pl., éd. 1 : 1056]');
194
		$this->verifierResultatsLigneAttributValeur(182, 'nom_sci', 'Acer monspessulanum L. [1753, Sp. Pl., éd. 1 : 1056]');
195
	}*/
195
	}*/
196
 
196
 
197
	// TODO : à implémenter
197
	// TODO : à implémenter
198
	/*
198
	/*
199
	public function testNsStructureHtml() {
199
	public function testNsStructureHtml() {
200
		$ressources = array();
200
		$ressources = array();
201
		$parametres = array(
201
		$parametres = array(
202
				'version.projet' => '1.01',
202
				'version.projet' => '1.01',
203
				'recherche' => 'stricte',
203
				'recherche' => 'stricte',
204
				'masque.nn' => '182',
204
				'masque.nn' => '182',
205
				'ns.format' => 'htm',
205
				'ns.format' => 'htm',
206
				'ns.structure' => 'au,an,bib,ad');
206
				'ns.structure' => 'au,an,bib,ad');
207
 
207
 
208
		$this->retour = $this->consulter($ressources, $parametres);
208
		$this->retour = $this->consulter($ressources, $parametres);
209
 
209
 
210
		$this->verifierStructureListe();
210
		$this->verifierStructureListe();
211
		$this->verifierMasque('num_nom=182');
211
		$this->verifierMasque('num_nom=182');
212
		$this->verifierTotal(1);
212
		$this->verifierTotal(1);
213
		$this->verifierNbreResultats(1);
213
		$this->verifierNbreResultats(1);
214
		$nomSciAttendu = '<span class="sci"><span class="gen">Acer</span> <span class="sp">monspessulanum</span></span> <span class="auteur">L.</span> [<span class="annee">1753</span>, <span class="biblio">Sp. Pl., éd. 1 : 1056</span>]';
214
		$nomSciAttendu = '<span class="sci"><span class="gen">Acer</span> <span class="sp">monspessulanum</span></span> <span class="auteur">L.</span> [<span class="annee">1753</span>, <span class="biblio">Sp. Pl., éd. 1 : 1056</span>]';
215
		$this->verifierResultatsLigneAttributValeur(182, 'nom_sci', $nomSciAttendu);
215
		$this->verifierResultatsLigneAttributValeur(182, 'nom_sci', $nomSciAttendu);
216
	}*/
216
	}*/
217
 
217
 
218
	// TODO : à implémenter
218
	// TODO : à implémenter
219
	/*
219
	/*
220
	public function testListeNomsAvecParametreRetourChamps() {
220
	public function testListeNomsAvecParametreRetourChamps() {
221
		$ressources = array();
221
		$ressources = array();
222
		$parametres = array('version.projet' => '1.01',
222
		$parametres = array('version.projet' => '1.01',
223
				'masque' => 'acer',
223
				'masque' => 'acer',
224
				'retour.champs' => 'auteur,nom_retenu.*');
224
				'retour.champs' => 'auteur,nom_retenu.*');
225
 
225
 
226
		$this->retour = $this->consulter($ressources, $parametres);
226
		$this->retour = $this->consulter($ressources, $parametres);
227
 
227
 
228
		$this->verifierStructureListe();
228
		$this->verifierStructureListe();
229
		$this->presenceAttributDansResultat(83587, 'auteur');
229
		$this->presenceAttributDansResultat(83587, 'auteur');
230
		$this->presenceAttributDansResultat(83587, 'nom_retenu.id');
230
		$this->presenceAttributDansResultat(83587, 'nom_retenu.id');
231
		$this->presenceAttributDansResultat(83587, 'nom_retenu.href');
231
		$this->presenceAttributDansResultat(83587, 'nom_retenu.href');
232
		$this->abscenceAttributDansResultat(83587, 'nom_retenu');
232
		$this->abscenceAttributDansResultat(83587, 'nom_retenu');
233
	}*/
233
	}*/
-
 
234
 
-
 
235
	// TODO : à implémenter
-
 
236
	/*
-
 
237
	public function testNomsIdAvecParametreRetourChamps() {
-
 
238
		$ressources = array('1');
-
 
239
		$parametres = array('version.projet' => '1.01',
-
 
240
			'retour.champs' => 'nom_retenu.*');
-
 
241
 
-
 
242
		$this->retour = $this->consulter($ressources, $parametres);
-
 
243
 
-
 
244
		$this->presenceAttribut('nom_retenu.id');
-
 
245
		$this->presenceAttribut('nom_retenu.href');
-
 
246
		$this->abscenceAttribut('nom_retenu');
-
 
247
		$this->abscenceAttribut('auteur');
-
 
248
	}*/
-
 
249
 
-
 
250
	// TODO : à implémenter
-
 
251
	/*
-
 
252
	public function testListeNomAvecParametreNsStructureAuAnBibAd() {
-
 
253
		$ressources = array();
-
 
254
		$parametres = array('version.projet' => '1.01',
-
 
255
			'masque.nn' => '39607',
-
 
256
			'ns.structure' => 'au,an,bib,ad');
-
 
257
 
-
 
258
		$this->retour = $this->consulter($ressources, $parametres);
-
 
259
 
-
 
260
		$this->verifierStructureListe();
-
 
261
		$this->presenceAttributDansResultat(39607, 'nom_sci');
-
 
262
 
-
 
263
		$nomSciTxt = 'Lolium annuum Gilib. [1792, Exercit. Phytol., 2 : 520] [nom. invalid.]';
-
 
264
		$this->verifierResultatsLigneAttributValeur(39607, 'nom_sci', $nomSciTxt);
-
 
265
	}*/
-
 
266
 
-
 
267
	// TODO : à implémenter
-
 
268
	/*
-
 
269
	public function testListeNomAvecParametreNsStructureAuAnBibAdEtNsFormatHtm() {
-
 
270
		$ressources = array();
-
 
271
		$parametres = array('version.projet' => '1.01',
-
 
272
			'masque.nn' => '39607',
-
 
273
			'ns.structure' => 'au,an,bib,ad',
-
 
274
			'ns.format' => 'htm');
-
 
275
 
-
 
276
		$this->retour = $this->consulter($ressources, $parametres);
-
 
277
 
-
 
278
		$this->verifierStructureListe();
-
 
279
		$this->verifierMasque('num_nom=39607');
-
 
280
 
-
 
281
		$this->presenceAttributDansResultat(39607, 'nom_sci');
-
 
282
 
-
 
283
		$nomSciHtml = "<span class=\"sci\"><span class=\"gen\">Lolium</span> <span class=\"sp\">annuum</span></span> <span class=\"auteur\">Gilib.</span> [<span class=\"annee\">1792</span>, <span class=\"biblio\">Exercit. Phytol., 2 : 520</span>] [<span class=\"adendum\">nom. invalid.</span>]";
-
 
284
		$this->verifierResultatsLigneAttributValeur(39607, 'nom_sci', $nomSciHtml);
-
 
285
	}*/
234
 
286
 
235
	public function testSansParametres() {
287
	public function testSansParametres() {
236
		$ressources = array('85');
288
		$ressources = array('85');
237
		$parametres = array();
289
		$parametres = array();
238
 
290
 
239
		$retour = $this->consulter($ressources, $parametres);
291
		$retour = $this->consulter($ressources, $parametres);
240
 
292
 
241
		$this->assertTrue(is_array($retour), 'Retour est un tableau');
293
		$this->assertTrue(is_array($retour), 'Retour est un tableau');
242
		$this->assertArrayHasKey('id', $retour, 'Présence champ id');
294
		$this->assertArrayHasKey('id', $retour, 'Présence champ id');
243
		$this->assertSame(85, $retour['id'], 'Valeur champ id = 85');
295
		$this->assertSame(85, $retour['id'], 'Valeur champ id = 85');
244
		$this->assertArrayHasKey('nom_sci', $retour, 'Présence champ nom_sci');
296
		$this->assertArrayHasKey('nom_sci', $retour, 'Présence champ nom_sci');
245
 
297
 
246
		$this->assertSame('Abutilon theophrasti', $retour['nom_sci'], 'Valeur champ nom_sci = Abutilon theophrasti');
298
		$this->assertSame('Abutilon theophrasti', $retour['nom_sci'], 'Valeur champ nom_sci = Abutilon theophrasti');
247
		$this->assertArrayHasKey('nom_retenu.id', $retour, 'Présence champ nom_retenu.id');
299
		$this->assertArrayHasKey('nom_retenu.id', $retour, 'Présence champ nom_retenu.id');
248
		$this->assertSame(85, $retour['nom_retenu.id'], 'Valeur champ nom_sci = 85');
300
		$this->assertSame(85, $retour['nom_retenu.id'], 'Valeur champ nom_sci = 85');
249
		$this->assertArrayHasKey('nom_retenu', $retour, 'Présence champ nom_retenu');
301
		$this->assertArrayHasKey('nom_retenu', $retour, 'Présence champ nom_retenu');
250
		$this->assertSame('Abutilon theophrasti', $retour['nom_retenu'], 'Valeur champ nom_retenu = Abutilon theophrasti');
302
		$this->assertSame('Abutilon theophrasti', $retour['nom_retenu'], 'Valeur champ nom_retenu = Abutilon theophrasti');
251
		$this->assertArrayHasKey('nom_retenu.href', $retour, 'Présence champ nom_retenu.href');
303
		$this->assertArrayHasKey('nom_retenu.href', $retour, 'Présence champ nom_retenu.href');
252
		$urlNomRetenuHrefAttendue = sprintf($this->nomDetailSqueletteUrl, 85);
304
		$urlNomRetenuHrefAttendue = sprintf($this->nomDetailSqueletteUrl, 85);
253
		$this->assertSame($urlNomRetenuHrefAttendue, $retour['nom_retenu.href'], "Valeur champ nom_retenu.href = $urlNomRetenuHrefAttendue");
305
		$this->assertSame($urlNomRetenuHrefAttendue, $retour['nom_retenu.href'], "Valeur champ nom_retenu.href = $urlNomRetenuHrefAttendue");
254
 
306
 
255
		$this->assertArrayHasKey('rang.code', $retour, 'Présence champ rang.code');
307
		$this->assertArrayHasKey('rang.code', $retour, 'Présence champ rang.code');
256
		$this->assertSame('bdnt.rangTaxo:290', $retour['rang.code'], 'Valeur champ rang.code = bdnt.rangTaxo:290');
308
		$this->assertSame('bdnt.rangTaxo:290', $retour['rang.code'], 'Valeur champ rang.code = bdnt.rangTaxo:290');
257
		$this->assertArrayHasKey('rang', $retour, 'Présence champ rang');
309
		$this->assertArrayHasKey('rang', $retour, 'Présence champ rang');
258
		$this->assertSame('Espèce', $retour['rang'], 'Valeur champ rang = Espèce');
310
		$this->assertSame('Espèce', $retour['rang'], 'Valeur champ rang = Espèce');
259
 
311
 
260
		$this->assertArrayHasKey('rang.href', $retour, 'Présence champ rang.href');
312
		$this->assertArrayHasKey('rang.href', $retour, 'Présence champ rang.href');
261
		$hrefAttendue =sprintf($this->ontologieHrefTpl, 290);
313
		$hrefAttendue =sprintf($this->ontologieHrefTpl, 290);
262
		$this->assertSame($hrefAttendue, $retour['rang.href'], "Valeur champ rang.href = $hrefAttendue");
314
		$this->assertSame($hrefAttendue, $retour['rang.href'], "Valeur champ rang.href = $hrefAttendue");
263
 
315
 
264
		$this->assertArrayHasKey('nom_sci.genre', $retour, 'Présence champ nom_sci.genre');
316
		$this->assertArrayHasKey('nom_sci.genre', $retour, 'Présence champ nom_sci.genre');
265
		$this->assertSame('Abutilon', $retour['nom_sci.genre'], "Valeur champ nom_sci.genre = 'Abutilon'");
317
		$this->assertSame('Abutilon', $retour['nom_sci.genre'], "Valeur champ nom_sci.genre = 'Abutilon'");
266
		$this->assertArrayHasKey('nom_sci.sp', $retour, 'Présence champ nom_sci.sp');
318
		$this->assertArrayHasKey('nom_sci.sp', $retour, 'Présence champ nom_sci.sp');
267
		$this->assertSame('theophrasti', $retour['nom_sci.sp'], "Valeur champ nom_sci.sp = theophrasti");
319
		$this->assertSame('theophrasti', $retour['nom_sci.sp'], "Valeur champ nom_sci.sp = theophrasti");
268
 
320
 
269
		$this->assertArrayHasKey('auteur', $retour, 'Présence champ auteur');
321
		$this->assertArrayHasKey('auteur', $retour, 'Présence champ auteur');
270
		$this->assertSame('Medik.', $retour['auteur'], "Valeur champ auteur = 'Medik.'");
322
		$this->assertSame('Medik.', $retour['auteur'], "Valeur champ auteur = 'Medik.'");
271
 
323
 
272
		$this->assertArrayHasKey('presence_Ga.code', $retour, 'Présence champ presence_Ga.code'.print_r($retour,true));
324
		$this->assertArrayHasKey('presence_Ga.code', $retour, 'Présence champ presence_Ga.code'.print_r($retour,true));
273
		$this->assertSame('P', $retour['presence_Ga.code'], "Valeur champ presence_Ga.code = 'P'");
325
		$this->assertSame('P', $retour['presence_Ga.code'], "Valeur champ presence_Ga.code = 'P'");
274
		$this->assertArrayHasKey('presence_Co.code', $retour, 'Présence champ "presence_Co.code');
326
		$this->assertArrayHasKey('presence_Co.code', $retour, 'Présence champ "presence_Co.code');
275
		$this->assertSame('P', $retour['presence_Co.code'], "Valeur champ page = P");
327
		$this->assertSame('P', $retour['presence_Co.code'], "Valeur champ page = P");
276
	}
328
	}
277
 
329
 
278
	public function testNomSansCorrespondance() {
330
	public function testNomSansCorrespondance() {
279
		$ressources = array('98940');
331
		$ressources = array('98940');
280
		$parametres = array();
332
		$parametres = array();
281
 
333
 
282
		$retour = $this->consulter($ressources, $parametres);
334
		$this->retour = $this->consulter($ressources, $parametres);
283
 
335
 
284
		$this->assertArrayNotHasKey('nom_retenu.id', $retour, 'Abscence champ nom_retenu.id');
336
		$this->abscenceAttribut('nom_retenu.id');
285
		$this->assertArrayHasKey('nom_retenu', $retour, 'Présence champ nom_retenu');
-
 
286
		$this->assertSame(null, $retour['nom_retenu'], 'Valeur champ nom_retenu = null');
337
		$this->abscenceAttribut('nom_retenu.href');
287
		$this->assertArrayNotHasKey('nom_retenu.href', $retour, 'Abscence champ nom_retenu.href');
338
		$this->verifierAttributValeur('nom_retenu', null);
288
	}
339
	}
289
 
340
 
290
	private function verifierPresenceMessage($messageAttendu) {
341
	private function verifierPresenceMessage($messageAttendu) {
291
		$this->assertEquals($messageAttendu, $this->retour);
342
		$this->assertEquals($messageAttendu, $this->retour);
292
	}
343
	}
293
 
344
 
294
	private function verifierStructureListe() {
345
	private function verifierStructureListe() {
295
		$this->assertArrayHasKey('entete', $this->retour, "Présence attribut : entete");
346
		$this->assertArrayHasKey('entete', $this->retour, "Présence attribut : entete");
296
		$this->assertArrayHasKey('masque', $this->retour['entete'], "Présence attribut : entete>masque");
347
		$this->assertArrayHasKey('masque', $this->retour['entete'], "Présence attribut : entete>masque");
297
		$this->assertArrayHasKey('depart', $this->retour['entete'], "Présence attribut : entete>depart");
348
		$this->assertArrayHasKey('depart', $this->retour['entete'], "Présence attribut : entete>depart");
298
		$this->assertArrayHasKey('limite', $this->retour['entete'], "Présence attribut : entete>limite");
349
		$this->assertArrayHasKey('limite', $this->retour['entete'], "Présence attribut : entete>limite");
299
		$this->assertArrayHasKey('total', $this->retour['entete'], "Présence attribut : entete>total");
350
		$this->assertArrayHasKey('total', $this->retour['entete'], "Présence attribut : entete>total");
300
		$this->assertArrayHasKey('resultats', $this->retour, "Présence attribut : resultats");
351
		$this->assertArrayHasKey('resultats', $this->retour, "Présence attribut : resultats");
301
	}
352
	}
302
 
353
 
303
	private function verifierMasque($masque) {
354
	private function verifierMasque($masque) {
304
		$this->assertEquals($masque, $this->retour['entete']['masque'], "Attribut 'entete>masque' = '$masque'");
355
		$this->assertEquals($masque, $this->retour['entete']['masque'], "Attribut 'entete>masque' = '$masque'");
305
	}
356
	}
306
 
357
 
307
	private function verifierTotal($total) {
358
	private function verifierTotal($total) {
308
		$this->assertSame($total, $this->retour['entete']['total'], "Attribut 'entete>total' = $total");
359
		$this->assertSame($total, $this->retour['entete']['total'], "Attribut 'entete>total' = $total");
309
	}
360
	}
310
 
361
 
311
	private function verifierNbreResultats($nbre) {
362
	private function verifierNbreResultats($nbre) {
312
		$this->assertSame($nbre, count($this->retour['resultats']), "Nbre 'resultats' = 1");
363
		$this->assertSame($nbre, count($this->retour['resultats']), "Nbre 'resultats' = 1");
313
	}
364
	}
314
 
365
 
315
	private function verifierLigneResultatsStructure($ligne) {
366
	private function verifierLigneResultatsStructure($ligne) {
316
		$this->assertArrayHasKey($ligne, $this->retour['resultats'], "Presence attribut : resultats>$ligne".print_r($this->retour, true));
367
		$this->assertArrayHasKey($ligne, $this->retour['resultats'], "Presence attribut : resultats>$ligne".print_r($this->retour, true));
317
		$this->assertArrayHasKey('nom_sci', $this->retour['resultats'][$ligne], "Presence attribut : resultats>$ligne>nom_sci".print_r($this->retour, true));
368
		$this->assertArrayHasKey('nom_sci', $this->retour['resultats'][$ligne], "Presence attribut : resultats>$ligne>nom_sci".print_r($this->retour, true));
318
		$this->assertArrayHasKey('retenu', $this->retour['resultats'][$ligne], "Presence attribut : resultats>$ligne>retenu".print_r($this->retour, true));
369
		$this->assertArrayHasKey('retenu', $this->retour['resultats'][$ligne], "Presence attribut : resultats>$ligne>retenu".print_r($this->retour, true));
319
		$this->assertArrayHasKey('href', $this->retour['resultats'][$ligne], "Presence attribut : resultats>$ligne>href".print_r($this->retour, true));
370
		$this->assertArrayHasKey('href', $this->retour['resultats'][$ligne], "Presence attribut : resultats>$ligne>href".print_r($this->retour, true));
320
	}
371
	}
321
 
372
 
322
	private function presenceAttributDansResultat($ligne, $attribut) {
373
	private function presenceAttributDansResultat($ligne, $attribut) {
-
 
374
		$this->assertArrayHasKey($ligne, $this->retour['resultats'], "Présence ligne : resultats>$ligne");
323
		$this->assertArrayHasKey($attribut, $this->retour['resultats'][$ligne], "Présence attribut : resultats>$ligne>$attribut");
375
		$this->assertArrayHasKey($attribut, $this->retour['resultats'][$ligne], "Présence attribut : resultats>$ligne>$attribut");
324
	}
376
	}
325
 
377
 
326
	private function abscenceAttributDansResultat($ligne, $attribut) {
378
	private function abscenceAttributDansResultat($ligne, $attribut) {
327
		$this->assertArrayNotHasKey($attribut, $this->retour['resultats'][$ligne], "Présence attribut : resultats>$ligne>$attribut");
379
		$this->assertArrayNotHasKey($attribut, $this->retour['resultats'][$ligne], "Présence attribut : resultats>$ligne>$attribut");
328
	}
380
	}
329
 
381
 
330
	private function verifierResultatsLigneAttributValeur($ligne, $attribut, $valeur) {
382
	private function verifierResultatsLigneAttributValeur($ligne, $attribut, $valeur) {
331
		$this->assertSame($valeur, $this->retour['resultats'][$ligne][$attribut], "Attribut 'resultats>$ligne>$attribut' = $valeur");
383
		$this->assertSame($valeur, $this->retour['resultats'][$ligne][$attribut], "Attribut 'resultats>$ligne>$attribut' = $valeur");
332
	}
384
	}
-
 
385
 
-
 
386
	private function presenceAttribut($attribut) {
-
 
387
		$this->assertArrayHasKey($attribut, $this->retour);
-
 
388
	}
-
 
389
 
-
 
390
	private function abscenceAttribut($attribut) {
-
 
391
		$this->assertArrayNotHasKey($attribut, $this->retour);
-
 
392
	}
-
 
393
 
-
 
394
	private function verifierAttributValeur($attribut, $valeur) {
-
 
395
		$this->presenceAttribut($attribut);
-
 
396
		$this->assertSame($valeur, $this->retour[$attribut]);
-
 
397
	}
333
}
398
}
334
?>
399
?>