Subversion Repositories eFlore/Projets.eflore-projets

Rev

Rev 788 | Rev 825 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 788 Rev 790
Line 15... Line 15...
15
	//++ ------------------------------------Test des ressources -----------------------------++
15
	//++ ------------------------------------Test des ressources -----------------------------++
Line 16... Line 16...
16
	
16
	
17
	public function testRessourceReferentielInconnu() {
17
	public function testRessourceReferentielInconnu() {
18
		$ressources = array('dgoju.nn:73256');
18
		$ressources = array('dgoju.nn:73256');
19
		$parametres = array();
19
		$parametres = array();
20
		$retour = $this->consulterBrut($ressources, $parametres);
20
		$retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres);
21
		$messageAttendu =
21
		$messageAttendu =
22
			  "Erreur dans l'url de votre requête :".
22
			  "Erreur dans l'url de votre requête :".
23
				" </br> Le référentiel \" dgoju \" n'existe pas.";
23
				" </br> Le référentiel \" dgoju \" n'existe pas.";
24
		$this->assertEquals($messageAttendu, $retour,
24
		$this->assertEquals($messageAttendu, $retour,
25
						"Il faut indiquer un référentiel inconnu.");
25
						"Il faut indiquer un référentiel inconnu.");
Line 26... Line 26...
26
	}
26
	}
27
	
27
	
28
	public function testRessourceInconnue() {
28
	public function testRessourceInconnue() {
29
		$ressources = array('inconnue');
29
		$ressources = array('inconnue');
30
		$parametres = array();
30
		$parametres = array();
31
		$retour = $this->consulterBrut($ressources, $parametres);
31
		$retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres);
32
		$messageAttendu =
32
		$messageAttendu =
33
				  "Erreur dans l'url de votre requête : </br> La ressource demandée n'existe pas.";
33
				  "Erreur dans l'url de votre requête : </br> La ressource demandée n'existe pas.";
34
		$this->assertEquals($messageAttendu, $retour,
34
		$this->assertEquals($messageAttendu, $retour,
Line 35... Line 35...
35
							"Il faut indiquer si une ressource est eronnée.");
35
							"Il faut indiquer si une ressource est eronnée.");
36
	}
36
	}
37
	
37
	
38
	public function testRessourceNNInconnu() {
38
	public function testRessourceNNInconnu() {
39
		$ressources = array('bdtfx.nn:3');
39
		$ressources = array('bdtfx.nn:3');
40
		$parametres = array();
40
		$parametres = array();
41
		$retour = $this->consulterBrut($ressources, $parametres);
41
		$retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres);
42
		$messageAttendu = "Les données recherchées sont introuvables.";
42
		$messageAttendu = "Les données recherchées sont introuvables.";
Line 50... Line 50...
50
		$ressourcesList = array(
50
		$ressourcesList = array(
51
			array('bdtfx.nn:73256'),
51
			array('bdtfx.nn:73256'),
52
			array('bdtfx.nn:101128'));
52
			array('bdtfx.nn:101128'));
53
		$parametres = array('paramatre' => 'image/jpeg');
53
		$parametres = array('paramatre' => 'image/jpeg');
54
		foreach ($ressourcesList as $ressources) {
54
		foreach ($ressourcesList as $ressources) {
55
			$retour = $this->consulterBrut($ressources, $parametres);
55
			$retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres);
56
			$messageAttendu = "Erreur dans les parametres de votre requête :".
56
			$messageAttendu = "Erreur dans les parametres de votre requête :".
57
										" </br> Le paramètre \" paramatre \" n'existe pas.";
57
										" </br> Le paramètre \" paramatre \" n'existe pas.";
58
			$this->assertEquals($messageAttendu, $retour,
58
			$this->assertEquals($messageAttendu, $retour,
59
				"Il faut indiquer si un paramètre est inconnu.");
59
				"Il faut indiquer si un paramètre est inconnu.");
60
		}
60
		}
Line 65... Line 65...
65
		$ressourcesList = array(
65
		$ressourcesList = array(
66
			array('bdtfx.nn:73256'),
66
			array('bdtfx.nn:73256'),
67
			array('bdtfx.nn:101128'));
67
			array('bdtfx.nn:101128'));
68
		$parametres = array('categorie' => 'inventé');
68
		$parametres = array('categorie' => 'inventé');
69
		foreach ($ressourcesList as $ressources) {
69
		foreach ($ressourcesList as $ressources) {
70
			$retour = $this->consulterBrut($ressources, $parametres);
70
			$retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres);
71
			$messageAttendu = "Valeur de paramètre inconnue pour 'categorie'. Ce paramètre n'est pas autorisé";
71
			$messageAttendu = "Valeur de paramètre inconnue pour 'categorie'. Ce paramètre n'est pas autorisé";
72
			$this->assertContains($messageAttendu, $retour,
72
			$this->assertContains($messageAttendu, $retour,
73
								"Il faut indiquer si la valeur du paramètre categorie est inconnue pour (" . implode(',', $ressources) . ").");
73
								"Il faut indiquer si la valeur du paramètre categorie est inconnue pour (" . implode(',', $ressources) . ").");
74
		}
74
		}
75
	}
75
	}
Line 76... Line 76...
76
	
76
	
77
	public function testParametreNavigationDepartSansLimite() {
77
	public function testParametreNavigationDepartSansLimite() {
78
		$ressources = array();
78
		$ressources = array();
79
		$parametres = array('navigation.depart' => 10);
79
		$parametres = array('navigation.depart' => 10);
80
		$retour = $this->consulterBrut($ressources, $parametres);
80
		$retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres);
81
		$messageAttendu = "indiquez également la valeur pour le paramètre navigation.limite.";
81
		$messageAttendu = "indiquez également la valeur pour le paramètre navigation.limite.";
82
		$this->assertEquals($messageAttendu, $retour,
82
		$this->assertEquals($messageAttendu, $retour,
Line 83... Line 83...
83
					"Navigation.depart doit être accompagné de navigation.limite ensemble.");
83
					"Navigation.depart doit être accompagné de navigation.limite ensemble.");
Line 84... Line 84...
84
 
84
 
85
	}
85
	}
86
	
86
	
87
	public function testParametreDepartSuperieurTotalResultats() {
87
	public function testParametreDepartSuperieurTotalResultats() {
88
		$ressources = array();
88
		$ressources = array();
89
		$parametres = array('navigation.depart' => 20000, 'navigation.limite' => 10 );
89
		$parametres = array('navigation.depart' => 20000, 'navigation.limite' => 10 );
90
			$retour = $this->consulterBrut($ressources, $parametres);
90
			$retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres);
91
			$messageAttendu = 
91
			$messageAttendu = 
92
				"Erreur : la valeur pour le paramètre navigation.départ est supérieure".
92
				"Erreur : la valeur pour le paramètre navigation.départ est supérieure".
Line 102... Line 102...
102
			array('navigation.depart' => -5, 'navigation.limite' => 10 ),
102
			array('navigation.depart' => -5, 'navigation.limite' => 10 ),
103
			array('navigation.depart' => 0, 'navigation.limite' => abc ));
103
			array('navigation.depart' => 0, 'navigation.limite' => abc ));
104
		$cles = array('navigation.depart','navigation.limite');
104
		$cles = array('navigation.depart','navigation.limite');
105
		$i = 0 ;
105
		$i = 0 ;
106
		foreach ($parametresList as $parametres) {
106
		foreach ($parametresList as $parametres) {
107
			$retour = $this->consulterBrut($ressources, $parametres);
107
			$retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres);
108
			$messageAttendu = "Erreur : valeur erronnée pour le paramètre {$cles[$i]}.";
108
			$messageAttendu = "Erreur : valeur erronnée pour le paramètre {$cles[$i]}.";
109
			$this->assertEquals($messageAttendu, $retour,
109
			$this->assertEquals($messageAttendu, $retour,
110
						"il faut indiquer lorsque qu'un des paramètres de navigation a une valeur impossible.");
110
						"il faut indiquer lorsque qu'un des paramètres de navigation a une valeur impossible.");
111
			$i++;
111
			$i++;
112
		}
112
		}
Line 116... Line 116...
116
		$ressourcesList = array(
116
		$ressourcesList = array(
117
			array('bdtfx.nn:73256'),
117
			array('bdtfx.nn:73256'),
118
			array('bdtfx.nn:101128'));
118
			array('bdtfx.nn:101128'));
119
		$parametres = array('retour.format' => 'pdf');
119
		$parametres = array('retour.format' => 'pdf');
120
		foreach ($ressourcesList as $ressources) {
120
		foreach ($ressourcesList as $ressources) {
121
			$retour = $this->consulterBrut($ressources, $parametres);
121
			$retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres);
122
			$messageAttendu = "Valeur de paramètre inconnue pour 'retour.format'. Ce paramètre n'est pas autorisé";
122
			$messageAttendu = "Valeur de paramètre inconnue pour 'retour.format'. Ce paramètre n'est pas autorisé";
123
			$this->assertContains($messageAttendu, $retour,
123
			$this->assertContains($messageAttendu, $retour,
124
							"il faut indiquer lorsque que le paramètre retour.format a une valeur impossible.");
124
							"il faut indiquer lorsque que le paramètre retour.format a une valeur impossible.");
125
		}
125
		}
126
	}
126
	}
Line 129... Line 129...
129
		$ressourcesList = array(
129
		$ressourcesList = array(
130
			array('bdtfx.nn:73256'),
130
			array('bdtfx.nn:73256'),
131
			array('bdtfx.nn:101128'));
131
			array('bdtfx.nn:101128'));
132
		$parametres = array('version.projet' => 'dhgkg22');
132
		$parametres = array('version.projet' => 'dhgkg22');
133
		foreach ($ressourcesList as $ressources){
133
		foreach ($ressourcesList as $ressources){
134
			$retour = $this->consulterBrut($ressources, $parametres);
134
			$retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres);
135
			$messageAttendu = "Erreur : La version est inconnue.";
135
			$messageAttendu = "Erreur : La version est inconnue.";
136
			$this->assertEquals($messageAttendu, $retour,
136
			$this->assertEquals($messageAttendu, $retour,
137
									"Il faut indiquer si la valeur du  paramètre version.projet est inconnue.");
137
									"Il faut indiquer si la valeur du  paramètre version.projet est inconnue.");
138
		}
138
		}
139
	}
139
	}
Line 143... Line 143...
143
	//++ ---Informations ----++
143
	//++ ---Informations ----++
Line 144... Line 144...
144
	
144
	
145
	public function testJsonBienFormeInformations() {
145
	public function testJsonBienFormeInformations() {
146
		$ressources = array();
146
		$ressources = array();
147
		$parametres = array('navigation.depart' => 10, 'navigation.limite' => 15);
147
		$parametres = array('navigation.depart' => 10, 'navigation.limite' => 15);
148
			$url = $this->creerUrl($ressources, $parametres);
148
			$url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
149
			$retour = $this->consulterJson($ressources, $parametres);
149
			$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
150
			$this->assertArrayHasKey('entete', $retour, "Le json ne contient pas d'attribut : entete. Voir : $url");
150
			$this->assertArrayHasKey('entete', $retour, "Le json ne contient pas d'attribut : entete. Voir : $url");
151
			$this->assertArrayHasKey('resultats', $retour, "Le json ne contient pas d'attribut : resultat. Voir : $url");
151
			$this->assertArrayHasKey('resultats', $retour, "Le json ne contient pas d'attribut : resultat. Voir : $url");
152
			$this->verifierJsonEnteteBienFormeInformations($retour, $parametres);
152
			$this->verifierJsonEnteteBienFormeInformations($retour, $parametres);
Line 174... Line 174...
174
		$this->assertArrayHasKey('href.precedent', $retour['entete'],
174
		$this->assertArrayHasKey('href.precedent', $retour['entete'],
175
							"L'en-tête ne contient pas d'attribut : href.precedent ");
175
							"L'en-tête ne contient pas d'attribut : href.precedent ");
176
		$parametres_url =
176
		$parametres_url =
177
		array('navigation.depart' => ($retour['entete']['limite']+$retour['entete']['depart']),
177
		array('navigation.depart' => ($retour['entete']['limite']+$retour['entete']['depart']),
178
						 'navigation.limite' => $retour['entete']['limite'] );
178
						 'navigation.limite' => $retour['entete']['limite'] );
179
		$urlsuivant = $this->creerUrl($ressources, $parametres_url);
179
		$urlsuivant = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres_url);
180
		$this->assertEquals($urlsuivant, $retour['entete']['href.suivant'],
180
		$this->assertEquals($urlsuivant, $retour['entete']['href.suivant'],
181
												"L' url $urlsuivant de l'entete est incorrecte.");
181
												"L' url $urlsuivant de l'entete est incorrecte.");
182
	}
182
	}
Line 183... Line 183...
183
	
183
	
184
	public function testJsonResultatsHrefInformations() {
184
	public function testJsonResultatsHrefInformations() {
185
		$ressources = array();
185
		$ressources = array();
186
		$parametres = array('navigation.depart' => 370, 'navigation.limite' => 5);
186
		$parametres = array('navigation.depart' => 370, 'navigation.limite' => 5);
187
		$url = $this->creerUrl($ressources, $parametres);
187
		$url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
188
		$retour = $this->consulterJson($ressources, $parametres);
188
		$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
189
		foreach ($retour['resultats'] as $id => $valeurs) {
189
		foreach ($retour['resultats'] as $id => $valeurs) {
190
			if (!$valeurs['num_nomen']) {
190
			if (!$valeurs['num_nomen']) {
191
				$this->assertArrayNotHasKey('href', $valeurs,
191
				$this->assertArrayNotHasKey('href', $valeurs,
192
							"Il ne doit pas avoir de lien s'il n'y a pas de numéro nomenclatural (=0). Voir $url ");
192
							"Il ne doit pas avoir de lien s'il n'y a pas de numéro nomenclatural (=0). Voir $url ");
Line 195... Line 195...
195
	}
195
	}
Line 196... Line 196...
196
	
196
	
197
	public function testJsonNombreLimiteDemande() {
197
	public function testJsonNombreLimiteDemande() {
198
		$ressources = array();
198
		$ressources = array();
199
		$parametresList = array('navigation.depart' => 10, 'navigation.limite' => 15 );
199
		$parametresList = array('navigation.depart' => 10, 'navigation.limite' => 15 );
200
			$url = $this->creerUrl($ressources, $parametres);
200
			$url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
201
			$retour = $this->consulterJson($ressources, $parametres);
201
			$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
202
			$this->assertLessThanOrEqual(15, count($retour), 
202
			$this->assertLessThanOrEqual(15, count($retour), 
203
				"Le json renvoie un nombre de résultats trop important : entete. Voir : $url");
203
				"Le json renvoie un nombre de résultats trop important : entete. Voir : $url");
Line 204... Line 204...
204
	}
204
	}
Line 209... Line 209...
209
		$ressourcesList = array(
209
		$ressourcesList = array(
210
			array('bdtfx.nn:73256'),
210
			array('bdtfx.nn:73256'),
211
			array('bdtfx.nn:101128'));
211
			array('bdtfx.nn:101128'));
212
		$parametres = array('retour.format' => 'min' );
212
		$parametres = array('retour.format' => 'min' );
213
		foreach ($ressourcesList as $ressources) {
213
		foreach ($ressourcesList as $ressources) {
214
			$retour = $this->consulterJson($ressources, $parametres);
214
			$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
215
			$this->assertArrayNotHasKey('type_bio.code',$retour,
215
			$this->assertArrayNotHasKey('type_bio.code',$retour,
216
				"Le champs 'type_bio.code' ne doit pas être présent si retour.format=min. ");
216
				"Le champs 'type_bio.code' ne doit pas être présent si retour.format=min. ");
217
			$this->assertArrayNotHasKey('type_bio.libelle',$retour,
217
			$this->assertArrayNotHasKey('type_bio.libelle',$retour,
218
				"Le champs 'type_bio.libelle' ne doit pas être présent si retour.format=min.");
218
				"Le champs 'type_bio.libelle' ne doit pas être présent si retour.format=min.");
219
			$this->assertArrayNotHasKey('type_bio.detail',$retour,
219
			$this->assertArrayNotHasKey('type_bio.detail',$retour,
Line 250... Line 250...
250
		$ressources = array('bdtfx.nn:73256');
250
		$ressources = array('bdtfx.nn:73256');
251
		$parametresList = array(
251
		$parametresList = array(
252
			array('retour.format' => 'max', 'categorie' => 'description'),
252
			array('retour.format' => 'max', 'categorie' => 'description'),
253
			array('retour.format' => 'max' , 'categorie' => 'ecologie'));
253
			array('retour.format' => 'max' , 'categorie' => 'ecologie'));
254
			foreach ($parametresList  as $parametres) {
254
			foreach ($parametresList  as $parametres) {
255
				$retour = $this->consulterJson($ressources, $parametres);
255
				$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
256
				if ($parametres['categorie'] == 'description') {
256
				if ($parametres['categorie'] == 'description') {
257
					$this->verifierParametresDescription_max($retour);
257
					$this->verifierParametresDescription_max($retour);
258
				} else {
258
				} else {
259
					$this->verifierParametresEcologie_max($retour, 'baseflor');
259
					$this->verifierParametresEcologie_max($retour, 'baseflor');
260
				}
260
				}
Line 262... Line 262...
262
	}
262
	}
Line 263... Line 263...
263
	
263
	
264
	public function testJsonInformationsNNRangSup_max() {
264
	public function testJsonInformationsNNRangSup_max() {
265
		$ressources = array('bdtfx.nn:101128');
265
		$ressources = array('bdtfx.nn:101128');
266
		$parametres = array('retour.format' => 'max' , 'categorie' => 'ecologie');
266
		$parametres = array('retour.format' => 'max' , 'categorie' => 'ecologie');
267
			$retour = $this->consulterJson($ressources, $parametres);
267
			$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
268
			if ($parametres['categorie'] == 'description') {
268
			if ($parametres['categorie'] == 'description') {
269
				$this->verifierParametresDescription_max();
269
				$this->verifierParametresDescription_max();
270
			} else {
270
			} else {
271
				$this->verifierParametresEcologie_max($retour, 'rangSup');
271
				$this->verifierParametresEcologie_max($retour, 'rangSup');
Line 326... Line 326...
326
				'Cfru(b-cad)' => 'Chaméphytes (>= 1m) frutescents , Nanophanérophytes (2 à 4m) (caducifoliées) ',
326
				'Cfru(b-cad)' => 'Chaméphytes (>= 1m) frutescents , Nanophanérophytes (2 à 4m) (caducifoliées) ',
327
				'test-aqua(heri)' => 'Thérophytes (< 1m) estivaux  (plantes aquatiques) , Hémicryptophytes (< 1m) érigé ',
327
				'test-aqua(heri)' => 'Thérophytes (< 1m) estivaux  (plantes aquatiques) , Hémicryptophytes (< 1m) érigé ',
328
				'hbis(hsto,test)-suc' => 'Hémicryptophytes (< 1m) bisannuels  (succulentes) , Hémicryptophytes (< 1m) stolonifères, Thérophytes (< 1m) estivaux ',
328
				'hbis(hsto,test)-suc' => 'Hémicryptophytes (< 1m) bisannuels  (succulentes) , Hémicryptophytes (< 1m) stolonifères, Thérophytes (< 1m) estivaux ',
329
				'hbis(hsto)-suc' => 'Hémicryptophytes (< 1m) bisannuels  (succulentes) , Hémicryptophytes (< 1m) stolonifères ');
329
				'hbis(hsto)-suc' => 'Hémicryptophytes (< 1m) bisannuels  (succulentes) , Hémicryptophytes (< 1m) stolonifères ');
330
		foreach ($ressourcesList as $ressources) {
330
		foreach ($ressourcesList as $ressources) {
331
			$retour = $this->consulterJson($ressources, $parametres);
331
			$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
332
			$code = $retour['type_bio.code'];
332
			$code = $retour['type_bio.code'];
333
			$this->assertEquals($resultats_attendus[$code], $retour['type_bio.libelle'],
333
			$this->assertEquals($resultats_attendus[$code], $retour['type_bio.libelle'],
334
										"le traitement de l'ontologie pour les types biologiques est erroné pour $ressources[0] . ");
334
										"le traitement de l'ontologie pour les types biologiques est erroné pour $ressources[0] . ");
335
		}
335
		}
336
	}
336
	}