Subversion Repositories eFlore/Projets.eflore-projets

Rev

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

Rev 128 Rev 138
Line 21... Line 21...
21
	public function testParametreMasqueNnMultiple() {
21
	public function testParametreMasqueNnMultiple() {
22
		$ressources = array();
22
		$ressources = array();
23
		$parametres = array('masque.nn' => 'bdftf:6218,182','retour'=>'image/jpeg');
23
		$parametres = array('masque.nn' => 'bdftf:6218,182','retour'=>'image/jpeg');
Line 24... Line 24...
24
 
24
 
25
		$retour = $this->consulterBrut($ressources, $parametres);
25
		$retour = $this->consulterBrut($ressources, $parametres);
26
		$messageAttendu = "Le paramètre masque.nn peut contenir une seule valeur numérique pour l'instant.";
26
		$messageAttendu = "Le paramètre masque.nn peut contenir une seule valeur numérique pour l'instant pour le format de retour image/jpeg.";
27
		$this->assertEquals($messageAttendu, $retour,
27
		$this->assertEquals($messageAttendu, $retour,
28
			"Le service doit renvoyer un message car le paramètre masque.nn n'est pas complétement implémenté.");
28
			"Le service doit renvoyer un message car le paramètre masque.nn n'est pas complétement implémenté.");
Line 29... Line 29...
29
	}
29
	}
Line 36... Line 36...
36
		$image = imagecreatefromstring($retour);
36
		$image = imagecreatefromstring($retour);
37
		$largeur = imagesx($image);
37
		$largeur = imagesx($image);
38
		$hauteur = imagesy($image);
38
		$hauteur = imagesy($image);
39
		$this->assertLessThanOrEqual(450, $largeur,
39
		$this->assertLessThanOrEqual(450, $largeur,
40
			"Le service doit renvoyer une image de taille M (largeur < 450px) par défaut (h:$hauteur x l:$largeur)");
40
			"Le service doit renvoyer une image de taille M (largeur < 450px) par défaut (h:$hauteur x l:$largeur)");
41
		$this->assertLessThanOrEqual(600, $hauteur,
41
		$this->assertLessThanOrEqual(450, $hauteur,
42
			"Le service doit renvoyer une image de taille M (hauteur < 600px) par défaut (h:$hauteur x  l:$largeur)");
42
			"Le service doit renvoyer une image de taille M (hauteur < 600px) par défaut (h:$hauteur x  l:$largeur)");
43
		if ($hauteur != 600) {
43
		if ($hauteur != 450) {
44
			$this->assertSame(450, $largeur,
44
			$this->assertSame(450, $largeur,
45
				"Le service doit renvoyer une image de taille M : largeur == 450px pour une hauteur infèrieure à 600px (h:$hauteur x l:$largeur)");
45
				"Le service doit renvoyer une image de taille M : largeur == 450px pour une hauteur infèrieure à 600px (h:$hauteur x l:$largeur)");
46
		}
46
		}
47
		if ($largeur != 450) {
47
		if ($largeur != 450) {
48
			$this->assertSame(600, $hauteur,
48
			$this->assertSame(450, $hauteur,
49
				"Le service doit renvoyer une image de taille M : hauteur == 600px pour une largeur infèrieure à 450px (h:$hauteur x l:$largeur)");
49
				"Le service doit renvoyer une image de taille M : hauteur == 600px pour une largeur infèrieure à 450px (h:$hauteur x l:$largeur)");
50
		}
50
		}
51
	}
51
	}
Line 52... Line 52...
52
 
52
 
Line 68... Line 68...
68
		$messageAttendu = "Le type de retour 'image/jpog' n'est pas supporté";
68
		$messageAttendu = "Le type de retour 'image/jpog' n'est pas supporté";
69
		$this->assertEquals($messageAttendu, $retour,
69
		$this->assertEquals($messageAttendu, $retour,
70
			"Le service doit renvoyer un message d'erreur 400 sur une type de retour incorrect");
70
			"Le service doit renvoyer un message d'erreur 400 sur une type de retour incorrect");
71
	}
71
	}
Line 72... Line -...
72
 
-
 
73
 
-
 
74
 
72
 
75
	public function testTaxonSansImage() {
73
	public function testTaxonSansImage() {
76
		$ressources = array();
74
		$ressources = array();
Line 77... Line 75...
77
		$parametres = array('masque.nn' => '6218','retour'=>'image/jpeg');
75
		$parametres = array('masque.nn' => '6218','retour' => 'image/jpeg');
78
 
76
 
79
		$retour = $this->consulterBrut($ressources, $parametres);
77
		$retour = $this->consulterBrut($ressources, $parametres);
80
		$messageAttendu = "Aucune image ne correspond au numéro numenclatural :'6218'";
78
		$messageAttendu = "Aucune image ne correspond au numéro numenclatural bdtfx:'6218'";
81
		$this->assertEquals($messageAttendu, $retour,
79
		$this->assertEquals($messageAttendu, $retour,
-
 
80
			"Le service doit renvoyer un message pour un taxon ne possédant pas d'images");
-
 
81
	}
-
 
82
 
-
 
83
	public function testListeImagesJson() {
-
 
84
		$ressources = array();
-
 
85
		$parametres = array('masque.nn' => '62018,182','retour' => 'application/json');
-
 
86
 
-
 
87
		$retour = $this->consulterJson($ressources, $parametres);
-
 
88
 
-
 
89
		$this->verifierEnteteChampsObligatoires($retour);
-
 
90
		$this->assertEquals('nn=62018,182', $retour['entete']['masque'], 'Valeur entete > masque = "nn=62018,182"');
-
 
91
		$this->assertSame(0, $retour['entete']['depart'], 'Valeur entete > depart = 0');
-
 
92
		$this->assertSame(100, $retour['entete']['limite'], 'Valeur entete > limite = 0');
-
 
93
		$this->assertSame(112, $retour['entete']['total'], 'Valeur entete > total = 112');
-
 
94
		$this->assertArrayHasKey('href.suivant', $retour['entete'], "Présence champ : entete > href.suivant");
-
 
95
		$urlHrefSuivantAttendue = 'http://localhost/service:eflore:0.1/cel/images?navigation.depart=100&navigation.limite=100&masque.nn=62018,182';
-
 
96
		$this->assertEquals($urlHrefSuivantAttendue, $retour['entete']['href.suivant'], "Valeur entete > href.suivant = '$urlHrefSuivantAttendue'");
-
 
97
		$this->assertArrayNotHasKey('href.precedent', $retour['entete'], "Abscence champ : entete > href.precedent");
-
 
98
 
-
 
99
		$this->verifierResultatsChampsObligatoires($retour);
-
 
100
		$this->assertCount(100, $retour['resultats'], 'Nbre resultats = 100');
-
 
101
		$this->assertArrayHasKey('6114', $retour['resultats'], "Présence champ : resultats > 6114");
-
 
102
	}
-
 
103
 
-
 
104
	public function testListeImagesJsonNavigation() {
-
 
105
		$ressources = array();
-
 
106
		$parametres = array('masque.nn' => '62018,182', 'retour' => 'application/json',
-
 
107
			'navigation.depart' => 100, 'navigation.limite' => 100);
-
 
108
 
-
 
109
		$retour = $this->consulterJson($ressources, $parametres);
-
 
110
 
-
 
111
		$this->verifierEnteteChampsObligatoires($retour);
-
 
112
		$this->assertEquals('nn=62018,182', $retour['entete']['masque'], 'Valeur entete > masque = "nn=62018,182"');
-
 
113
		$this->assertSame((int)$parametres['navigation.depart'], $retour['entete']['depart'], "Valeur entete > depart = {$parametres['navigation.depart']}");
-
 
114
		$this->assertSame((int)$parametres['navigation.limite'], $retour['entete']['limite'], "Valeur entete > limite = {$parametres['navigation.limite']}");
-
 
115
		$this->assertSame(112, $retour['entete']['total'], 'Valeur entete > total = 112');
-
 
116
 
-
 
117
		$this->assertArrayHasKey('href.precedent', $retour['entete'], "Présence champ : entete > href.precedent");
-
 
118
		$urlHrefPrecedentAttendue = 'http://localhost/service:eflore:0.1/cel/images?navigation.depart=0&navigation.limite=100&masque.nn=62018,182';
-
 
119
		$this->assertEquals($urlHrefPrecedentAttendue, $retour['entete']['href.precedent'], "Valeur entete > href.precedent = '$urlHrefPrecedentAttendue'");
-
 
120
		$this->assertArrayNotHasKey('href.suivant', $retour['entete'], "Abscence champ : entete > href.suivant");
-
 
121
 
-
 
122
		$this->verifierResultatsChampsObligatoires($retour);
-
 
123
	}
-
 
124
 
-
 
125
	private function verifierEnteteChampsObligatoires($retour) {
-
 
126
		$this->assertArrayHasKey('entete', $retour, "Présence champ : entete");
-
 
127
		$this->assertArrayHasKey('masque', $retour['entete'], "Présence champ : entete > masque");
-
 
128
		$this->assertArrayHasKey('depart', $retour['entete'], "Présence champ : entete > depart");
-
 
129
		$this->assertArrayHasKey('limite', $retour['entete'], "Présence champ : entete > limite");
-
 
130
		$this->assertArrayHasKey('total', $retour['entete'], "Présence champ : entete > total");
-
 
131
	}
-
 
132
 
-
 
133
	private function verifierResultatsChampsObligatoires($retour) {
-
 
134
		$this->assertArrayHasKey('resultats', $retour, "Présence champ : resultats");
-
 
135
		foreach ($retour['resultats'] as $id => $resultat) {
-
 
136
			$this->assertTrue(is_int($id), "id = nbre entier : $id");
-
 
137
			$this->assertArrayHasKey('date', $resultat, "Présence champ : resultats > $id > date");
-
 
138
			$this->assertArrayHasKey('mime', $resultat, "Présence champ : resultats > $id > mime");
-
 
139
			$this->assertArrayHasKey('binaire.href', $resultat, "Présence champ : resultats > $id > binaire.href");
-
 
140
			$this->assertArrayHasKey('determination', $resultat, "Présence champ : resultats > $id > determination");
-
 
141
			$this->assertArrayHasKey('determination.nom_sci', $resultat, "Présence champ : resultats > $id > determination.nom_sci");
-
 
142
			$this->assertArrayHasKey('determination.nom_sci.code', $resultat, "Présence champ : resultats > $id > determination.nom_sci.code");
-
 
143
			$this->assertArrayHasKey('station', $resultat, "Présence champ : resultats > $id > station");
-
 
144
			$this->assertArrayHasKey('auteur', $resultat, "Présence champ : resultats > $id > auteur");
82
			"Le service doit renvoyer un message pour un taxon ne possédant pas d'images");
145
		}
83
	}
146
	}
84
}
147
}