Subversion Repositories eFlore/Projets.eflore-projets

Rev

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

Rev 17 Rev 96
Line 1... Line 1...
1
<?php
1
<?php
-
 
2
require_once dirname(__FILE__).'/../ServiceEflorePhpUnit.php';
-
 
3
 
2
class BdtfxNomsTest extends ServicesTestsOutils {
4
class BdtfxNomsTest extends ServiceEflorePhpUnit {
Line 3... Line 5...
3
 
5
 
4
	public function __construct() {
6
	public function __construct() {
5
		$this->projet = 'bdtfx';
7
		$this->projet = 'bdtfx';
6
		$this->service = 'noms';
8
		$this->service = 'noms';
Line 7... Line 9...
7
	}
9
	}
8
 
10
 
9
	public function testVersionPrecise() {
11
	public function testVersionPrecise() {
10
		$ressources = array('v1.01');
12
		$ressources = array();
11
		$parametres = array();
13
		$parametres = array('version.projet' => '1.01');
Line 12... Line 14...
12
		$url = $this->creerUrl($ressources, $parametres);
14
		$url = $this->creerUrl($ressources, $parametres);
13
		$retour = $this->consulterJson($ressources, $parametres);
15
		$retour = $this->consulterJson($ressources, $parametres);
14
 
16
 
Line 15... Line 17...
15
		$this->assertArrayHasKey('entete', $retour, "Le json ne contient pas d'attribut : entete. Voir : $url");
17
		$this->assertArrayHasKey('entete', $retour, "Le json ne contient pas d'attribut : entete. Voir : $url");
16
		$this->assertArrayHasKey('resultat', $retour, "Le json ne contient pas d'attribut : resultat. Voir : $url");
18
		$this->assertArrayHasKey('resultat', $retour, "Le json ne contient pas d'attribut : resultat. Voir : $url");
17
	}
19
	}
18
 
20
 
Line 19... Line 21...
19
	public function testNomsIdVersionMultiple() {
21
	public function testNomsIdVersionMultiple() {
20
		$ressources = array('*', '182');
22
		$ressources = array('71711');
21
		$parametres = array();
23
		$parametres = array('version.projet' => '*');
22
		$url = $this->creerUrl($ressources, $parametres);
24
		$url = $this->creerUrl($ressources, $parametres);
23
 
25
 
24
		$retour = $this->consulterJson($ressources, $parametres);
26
		$retour = $this->consulterJson($ressources, $parametres);
Line 25... Line 27...
25
		$this->assertArrayHasKey('bdtfx_v1_01', $retour, "Le json ne contient pas d'attribut : bdtfx_v1_01.\nVoir : $url");
27
		$this->assertArrayHasKey('bdtfx_v1_01', $retour, "Le json ne contient pas d'attribut : bdtfx_v1_01.\nVoir : $url");
26
		$this->assertArrayHasKey('bdtfx_v1_02', $retour, "Le json ne contient pas d'attribut : bdtfx_v1_02.\nVoir : $url");
28
		$this->assertArrayHasKey('bdtfx_v1_02', $retour, "Le json ne contient pas d'attribut : bdtfx_v1_02.\nVoir : $url");
27
		$this->assertEquals('182', $retour['bdtfx_v1_01']['id'], "'bdtfx_v1_01' doit contenir un attribut 'id' avec la valeur '182'");
29
		$this->assertEquals('71711', $retour['bdtfx_v1_01']['id'], "'bdtfx_v1_01' doit contenir un attribut 'id' avec la valeur '71711'");
28
		$this->assertEquals('182', $retour['bdtfx_v1_02']['id'], "'bdtfx_v1_02' doit contenir un attribut 'id' avec la valeur '182'");
30
		$this->assertEquals('71711', $retour['bdtfx_v1_02']['id'], "'bdtfx_v1_02' doit contenir un attribut 'id' avec la valeur '71711'");
Line 29... Line 31...
29
	}
31
	}
Line 30... Line 32...
30
 
32
 
31
	public function testNomsVersionMultiple() {
33
	public function testNomsVersionMultiple() {
32
		$ressources = array('*');
34
		$ressources = array();
33
		$parametres = array();
35
		$parametres = array('version.projet' => '*');
Line 34... Line 36...
34
		$url = $this->creerUrl($ressources, $parametres);
36
		$url = $this->creerUrl($ressources, $parametres);
35
 
37
 
36
		$retour = $this->consulterBrut($ressources, $parametres);
38
		$retour = $this->consulterBrut($ressources, $parametres);
37
 
39
 
Line 38... Line 40...
38
		$attendu = "L'affichage de plusieurs versions ne fonctionne que pour les ressources de type /ressources/#id";
40
		$attendu = "L'affichage de plusieurs versions ne fonctionne que pour les ressources de type /ressources/#id";
Line 39... Line 41...
39
		$message = "L'url :\n'$url'\n doit retourner un résultat de la forme :\n $attendu";
41
		$message = "L'url :\n'$url'\n doit retourner un résultat de la forme :\n $attendu";
40
		$this->assertEquals($attendu, $retour, $message);
42
		$this->assertEquals($attendu, $retour, $message);
41
	}
43
	}
42
 
44
 
Line 43... Line 45...
43
	public function testVersionInexistante() {
45
	public function testVersionInexistante() {
44
		$ressources = array('v99.00');
46
		$ressources = array();
45
		$parametres = array();
47
		$parametres = array('version.projet' => '99.00');
-
 
48
		$url = $this->creerUrl($ressources, $parametres);
46
		$url = $this->creerUrl($ressources, $parametres);
49
 
47
 
50
		$retour = $this->consulterBrut($ressources, $parametres);
48
		$retour = $this->consulterBrut($ressources, $parametres);
51
 
Line 49... Line 52...
49
 
52
		$attendu = 'La requête SQL formée comporte une erreur!';
50
		$attendu = 'La requête SQL formée comporte une erreur!';
53
		$message = "L'url :\n'$url'\n doit retourner un résultat de la forme :\n $attendu";
51
		$message = "L'url :\n'$url'\n doit retourner un résultat de la forme :\n $attendu";
54
		$this->assertEquals($attendu, $retour, $message);
52
		$this->assertEquals($attendu, $retour, $message);
55
	}
53
	}
56
 
54
 
57
	public function testRechercheStricte() {
Line 55... Line 58...
55
	public function testRechercheStricte() {
58
		$ressources = array();
56
		$ressources = array('v1.01');
59
		$parametres = array(
57
		$parametres = array(
60
			'version.projet' => '1.01',
-
 
61
			'recherche' => 'stricte',
58
				'recherche' => 'stricte',
62
			'masque' => 'Acer');
59
				'masque' => 'Acer');
63
		$url = $this->creerUrl($ressources, $parametres);
60
		$url = $this->creerUrl($ressources, $parametres);
64
 
Line 61... Line 65...
61
 
65
		$retour = $this->consulterJson($ressources, $parametres);
Line 62... Line 66...
62
		$retour = $this->consulterJson($ressources, $parametres);
66
		$this->assertArrayHasKey('entete', $retour, "Le json ne contient pas d'attribut : entete. Voir : $url");
Line 84... Line 88...
84
		$this->assertArrayHasKey('nom_sci', $retour['resultat']['182'], "Le tableau du résultat 182 doit contenir un champ 'nom_sci'. Voir : $url");
88
		$this->assertArrayHasKey('nom_sci', $retour['resultat']['182'], "Le tableau du résultat 182 doit contenir un champ 'nom_sci'. Voir : $url");
85
		$this->assertEquals('Acer monspessulanum', $retour['resultat']['182']['nom_sci'], "Le tableau du résultat 182 doit contenir un champ 'nom_sci' avec pour valeur 'Acer monspessulanum'. Voir : $url");
89
		$this->assertEquals('Acer monspessulanum', $retour['resultat']['182']['nom_sci'], "Le tableau du résultat 182 doit contenir un champ 'nom_sci' avec pour valeur 'Acer monspessulanum'. Voir : $url");
86
	}
90
	}
Line 87... Line 91...
87
 
91
 
88
	public function testMasqueSg() {
92
	public function testMasqueSg() {
89
		$ressources = array('v1.01');
93
		$ressources = array();
-
 
94
		$parametres = array(
90
		$parametres = array(
95
			'version.projet' => '1.01',
91
					'recherche' => 'stricte',
96
			'recherche' => 'stricte',
92
					'masque.sg' => 'Asteraceae');
97
			'masque.sg' => 'Asteraceae');
Line 93... Line 98...
93
		$url = $this->creerUrl($ressources, $parametres);
98
		$url = $this->creerUrl($ressources, $parametres);
94
 
99
 
95
		$retour = $this->consulterJson($ressources, $parametres);
100
		$retour = $this->consulterJson($ressources, $parametres);
Line 99... Line 104...
99
		$this->assertEquals('1', $retour['entete']['total'], "L'attribut 'total' de l'entête devrait valoir 1. Voir : $url");
104
		$this->assertEquals('1', $retour['entete']['total'], "L'attribut 'total' de l'entête devrait valoir 1. Voir : $url");
100
		$this->assertEquals(1, count($retour['resultat']), "Le résultat devrait contenir une seule donnée. Voir : $url");
105
		$this->assertEquals(1, count($retour['resultat']), "Le résultat devrait contenir une seule donnée. Voir : $url");
101
	}
106
	}
Line 102... Line 107...
102
 
107
 
103
	public function testMasqueGenSpSspAuAn() {
108
	public function testMasqueGenSpSspAuAn() {
104
		$ressources = array('v1.01');
109
		$ressources = array();
-
 
110
		$parametres = array(
105
		$parametres = array(
111
			'version.projet' => '1.01',
106
				'recherche' => 'stricte',
112
			'recherche' => 'stricte',
107
				'masque.gen' => 'Allium',
113
			'masque.gen' => 'Allium',
108
				'masque.sp' => 'carinatum',
114
			'masque.sp' => 'carinatum',
109
				'masque.ssp' => 'consimile',
115
			'masque.ssp' => 'consimile',
110
				'masque.au' => 'Gren.',
116
			'masque.au' => 'Gren.',
111
				'masque.an' => '1855');
117
			'masque.an' => '1855');
Line 112... Line 118...
112
		$url = $this->creerUrl($ressources, $parametres);
118
		$url = $this->creerUrl($ressources, $parametres);
Line 113... Line 119...
113
 
119
 
Line 123... Line 129...
123
		$this->assertEquals('1', $retour['entete']['total'], "L'attribut 'total' de l'entête devrait valoir 1. Voir : $url");
129
		$this->assertEquals('1', $retour['entete']['total'], "L'attribut 'total' de l'entête devrait valoir 1. Voir : $url");
124
		$this->assertEquals(1, count($retour['resultat']), "Le résultat devrait contenir une seule donnée. Voir : $url");
130
		$this->assertEquals(1, count($retour['resultat']), "Le résultat devrait contenir une seule donnée. Voir : $url");
125
	}
131
	}
Line 126... Line 132...
126
 
132
 
127
	public function testMasqueNn() {
133
	public function testMasqueNn() {
128
		$ressources = array('v1.01');
134
		$ressources = array();
-
 
135
		$parametres = array(
129
		$parametres = array(
136
			'version.projet' => '1.01',
130
					'recherche' => 'stricte',
137
			'recherche' => 'stricte',
131
					'masque.nn' => '182');
138
			'masque.nn' => '182');
Line 132... Line 139...
132
		$url = $this->creerUrl($ressources, $parametres);
139
		$url = $this->creerUrl($ressources, $parametres);
133
 
140
 
134
		$retour = $this->consulterJson($ressources, $parametres);
141
		$retour = $this->consulterJson($ressources, $parametres);
Line 143... Line 150...
143
		$this->assertArrayHasKey('id', $retour['resultat']['182'], "Le tableau du résultat 182 doit contenir un champ 'id'. Voir : $url");
150
		$this->assertArrayHasKey('id', $retour['resultat']['182'], "Le tableau du résultat 182 doit contenir un champ 'id'. Voir : $url");
144
		$this->assertEquals('182', $retour['resultat']['182']['id'], "Le tableau du résultat 182 doit contenir un champ 'id' avec pour valeur '182'. Voir : $url");
151
		$this->assertEquals('182', $retour['resultat']['182']['id'], "Le tableau du résultat 182 doit contenir un champ 'id' avec pour valeur '182'. Voir : $url");
145
	}
152
	}
Line 146... Line 153...
146
 
153
 
147
	public function testMasqueRg() {
154
	public function testMasqueRg() {
148
		$ressources = array('v1.01');
155
		$ressources = array();
-
 
156
		$parametres = array(
149
		$parametres = array(
157
			'version.projet' => '1.01',
150
					'recherche' => 'stricte',
158
			'recherche' => 'stricte',
151
					'masque.rg' => '180');
159
			'masque.rg' => '180');
Line 152... Line 160...
152
		$url = $this->creerUrl($ressources, $parametres);
160
		$url = $this->creerUrl($ressources, $parametres);
153
 
161
 
154
		$retour = $this->consulterJson($ressources, $parametres);
162
		$retour = $this->consulterJson($ressources, $parametres);
Line 158... Line 166...
158
		$this->assertEquals($masque, $retour['entete']['masque'], $message);
166
		$this->assertEquals($masque, $retour['entete']['masque'], $message);
159
		$this->assertEquals('210', $retour['entete']['total'], "L'attribut 'total' de l'entête devrait valoir 210. Voir : $url");
167
		$this->assertEquals('210', $retour['entete']['total'], "L'attribut 'total' de l'entête devrait valoir 210. Voir : $url");
160
	}
168
	}
Line 161... Line 169...
161
 
169
 
162
	public function testNsStructureTxt() {
170
	public function testNsStructureTxt() {
163
		$ressources = array('v1.01');
171
		$ressources = array();
-
 
172
		$parametres = array(
164
		$parametres = array(
173
			'version.projet' => '1.01',
165
			'recherche' => 'stricte',
174
			'recherche' => 'stricte',
166
			'masque.nn' => '182',
175
			'masque.nn' => '182',
167
			'ns.format' => 'txt',
176
			'ns.format' => 'txt',
168
			'ns.structure' => 'au,an,bib,ad');
177
			'ns.structure' => 'au,an,bib,ad');
Line 178... Line 187...
178
		$this->assertArrayHasKey('resultat', $retour, "Le json ne contient pas d'attribut : resultat. Voir : $url");
187
		$this->assertArrayHasKey('resultat', $retour, "Le json ne contient pas d'attribut : resultat. Voir : $url");
179
		$this->assertEquals('Acer monspessulanum L. [1753, Sp. Pl., éd. 1 : 1056]', $retour['resultat']['182']['nom_sci'], "Le tableau du résultat 182 doit contenir un champ 'nom_sci' avec pour valeur 'Acer monspessulanum'. Voir : $url");
188
		$this->assertEquals('Acer monspessulanum L. [1753, Sp. Pl., éd. 1 : 1056]', $retour['resultat']['182']['nom_sci'], "Le tableau du résultat 182 doit contenir un champ 'nom_sci' avec pour valeur 'Acer monspessulanum'. Voir : $url");
180
	}
189
	}
Line 181... Line 190...
181
 
190
 
182
	public function testNsStructureHtml() {
191
	public function testNsStructureHtml() {
183
		$ressources = array('v1.01');
192
		$ressources = array();
-
 
193
		$parametres = array(
184
		$parametres = array(
194
			'version.projet' => '1.01',
185
				'recherche' => 'stricte',
195
			'recherche' => 'stricte',
186
				'masque.nn' => '182',
196
			'masque.nn' => '182',
187
				'ns.format' => 'htm',
197
			'ns.format' => 'htm',
188
				'ns.structure' => 'au,an,bib,ad');
198
			'ns.structure' => 'au,an,bib,ad');
Line 189... Line 199...
189
		$url = $this->creerUrl($ressources, $parametres);
199
		$url = $this->creerUrl($ressources, $parametres);
190
 
200
 
191
		$retour = $this->consulterJson($ressources, $parametres);
201
		$retour = $this->consulterJson($ressources, $parametres);