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 |
}
|