Subversion Repositories eFlore/Projets.eflore-projets

Rev

Rev 900 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 900 Rev 946
1
<?php
1
<?php
2
require_once dirname(__FILE__).'/../ServiceEflorePhpUnit.php';
2
require_once dirname(__FILE__).'/../ServiceEflorePhpUnit.php';
3
 
3
 
4
class BdtfxNomsTest extends ServiceEflorePhpUnit {
4
class BdtfxNomsTest extends ServiceEflorePhpUnit {
5
 
5
 
6
	public function __construct() {
6
	public function __construct() {
7
		$this->projet = 'bdtfx';
7
		$this->projet = 'bdtfx';
8
		$this->service = 'noms';
8
		$this->service = 'noms';
9
	}
9
	}
10
 
10
 
11
	public function testVersionPrecise() {
11
	public function testVersionPrecise() {
12
		$ressources = array();
12
		$ressources = array();
13
		$parametres = array('version.projet' => '1.01');
13
		$parametres = array('version.projet' => '1.01');
14
		$url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
14
		$url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
15
		$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
15
		$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
16
 
16
 
17
		$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");
18
		$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");
19
	}
19
	}
20
 
20
 
21
	public function testNomsIdVersionMultiple() {
21
	public function testNomsIdVersionMultiple() {
22
		$ressources = array('71711');
22
		$ressources = array('71711');
23
		$parametres = array('version.projet' => '*');
23
		$parametres = array('version.projet' => '*');
24
		$url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
24
		$url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
25
 
25
 
26
		$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
26
		$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
27
		$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");
28
		// $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");
29
		$this->assertArrayHasKey('bdtfx_v2_00', $retour, "Le json ne contient pas d'attribut : bdtfx_v2_00.\nVoir : $url");
29
		$this->assertArrayHasKey('bdtfx_v2_00', $retour, "Le json ne contient pas d'attribut : bdtfx_v2_00.\nVoir : $url");
30
 
30
 
31
		$this->assertEquals('71711', $retour['bdtfx_v1_01']['id'], "'bdtfx_v1_01' doit contenir un attribut 'id' avec la valeur '71711'");
31
		$this->assertEquals('71711', $retour['bdtfx_v1_01']['id'], "'bdtfx_v1_01' doit contenir un attribut 'id' avec la valeur '71711'");
32
		// $this->assertEquals('71711', $retour['bdtfx_v1_02']['id'], "'bdtfx_v1_02' doit contenir un attribut 'id' avec la valeur '71711'");
32
		// $this->assertEquals('71711', $retour['bdtfx_v1_02']['id'], "'bdtfx_v1_02' doit contenir un attribut 'id' avec la valeur '71711'");
33
		$this->assertEquals('71711', $retour['bdtfx_v2_00']['id'], "'bdtfx_v2_00' doit contenir un attribut 'id' avec la valeur '71711'");
33
		$this->assertEquals('71711', $retour['bdtfx_v2_00']['id'], "'bdtfx_v2_00' doit contenir un attribut 'id' avec la valeur '71711'");
34
	}
34
	}
35
 
35
 
36
	public function testNomsVersionMultiple() {
36
	public function testNomsVersionMultiple() {
37
		$ressources = array();
37
		$ressources = array();
38
		$parametres = array('version.projet' => '*');
38
		$parametres = array('version.projet' => '*');
39
		$url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
39
		$url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
40
 
40
 
41
		$retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres);
41
		$retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres);
42
 
42
 
43
		$attendu = "L'affichage de plusieurs versions ne fonctionne que pour les ressources de type /ressources/#id";
43
		$attendu = "L'affichage de plusieurs versions ne fonctionne que pour les ressources de type /ressources/#id";
44
		$message = "L'url :\n'$url'\n doit retourner un résultat de la forme :\n $attendu";
44
		$message = "L'url :\n'$url'\n doit retourner un résultat de la forme :\n $attendu";
45
		$this->assertEquals($attendu, $retour, $message);
45
		$this->assertEquals($attendu, $retour, $message);
46
	}
46
	}
47
 
47
 
48
	public function testVersionInexistante() {
48
	public function testVersionInexistante() {
49
		$ressources = array();
49
		$ressources = array();
50
		$parametres = array('version.projet' => '99.00');
50
		$parametres = array('version.projet' => '99.00');
51
		$url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
51
		$url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
52
 
52
 
53
		$retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres);
53
		$retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres);
54
 
54
 
55
		$attendu = 'La requête SQL formée comporte une erreur!';
55
		$attendu = "La table recherchée n'existe pas";
56
		$message = "L'url :\n'$url'\n doit retourner un résultat de la forme :\n $attendu";
56
		$message = "L'url :\n'$url'\n doit retourner un résultat de la forme :\n $attendu";
57
		$this->assertEquals($attendu, $retour, $message);
57
		$this->assertEquals($attendu, $retour, $message);
58
	}
58
	}
59
 
59
 
60
	public function testRechercheStricte() {
60
	public function testRechercheStricte() {
61
		$ressources = array();
61
		$ressources = array();
62
		$parametres = array(
62
		$parametres = array(
63
			'version.projet' => '1.01',
63
			'version.projet' => '1.01',
64
			'recherche' => 'stricte',
64
			'recherche' => 'stricte',
65
			'masque' => 'Acer');
65
			'masque' => 'Acer');
66
		$url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
66
		$url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
67
 
67
 
68
		$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
68
		$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
69
		$this->assertArrayHasKey('entete', $retour, "Le json ne contient pas d'attribut : entete. Voir : $url");
69
		$this->assertArrayHasKey('entete', $retour, "Le json ne contient pas d'attribut : entete. Voir : $url");
70
		$this->assertArrayHasKey('resultat', $retour, "Le json ne contient pas d'attribut : resultat. Voir : $url");
70
		$this->assertArrayHasKey('resultat', $retour, "Le json ne contient pas d'attribut : resultat. Voir : $url");
71
		$this->assertEquals('1', $retour['entete']['total'], "L'attribut 'total' de l'entête devrait valoir 1. Voir : $url");
71
		$this->assertEquals('1', $retour['entete']['total'], "L'attribut 'total' de l'entête devrait valoir 1. Voir : $url");
72
		$this->assertCount(1, $retour['resultat'], "Le résultat devrait contenir une seule donnée. Voir : $url");
72
		$this->assertCount(1, $retour['resultat'], "Le résultat devrait contenir une seule donnée. Voir : $url");
73
	}
73
	}
74
 
74
 
75
	public function testResultatChamps() {
75
	public function testResultatChamps() {
76
		$ressources = array();
76
		$ressources = array();
77
		$parametres = array(
77
		$parametres = array(
78
			'version.projet' => '1.01',
78
			'version.projet' => '1.01',
79
			'recherche' => 'stricte',
79
			'recherche' => 'stricte',
80
			'masque.nn' => '182');
80
			'masque.nn' => '182');
81
		$url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
81
		$url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
82
 
82
 
83
		$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
83
		$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
84
 
84
 
85
		$this->assertArrayHasKey('resultat', $retour, "Le json ne contient pas d'attribut : resultat. Voir : $url");
85
		$this->assertArrayHasKey('resultat', $retour, "Le json ne contient pas d'attribut : resultat. Voir : $url");
86
		$this->assertCount(1, $retour['resultat'], "Le résultat devrait contenir une seule donnée. Voir : $url");
86
		$this->assertCount(1, $retour['resultat'], "Le résultat devrait contenir une seule donnée. Voir : $url");
87
		$this->assertArrayNotHasKey('id', $retour['resultat']['182'], "Le tableau du résultat 182 ne doit pas contenir un champ 'id'. Voir : $url");
87
		$this->assertArrayNotHasKey('id', $retour['resultat']['182'], "Le tableau du résultat 182 ne doit pas contenir un champ 'id'. Voir : $url");
88
		$this->assertArrayHasKey('retenu', $retour['resultat']['182'], "Le tableau du résultat 182 doit contenir un champ 'id'. Voir : $url");
88
		$this->assertArrayHasKey('retenu', $retour['resultat']['182'], "Le tableau du résultat 182 doit contenir un champ 'id'. Voir : $url");
89
		$this->assertEquals('true', $retour['resultat']['182']['retenu'], "Le tableau du résultat 182 doit contenir un champ 'retenu' avec pour valeur 'true'. Voir : $url");
89
		$this->assertEquals('true', $retour['resultat']['182']['retenu'], "Le tableau du résultat 182 doit contenir un champ 'retenu' avec pour valeur 'true'. Voir : $url");
90
		$this->assertArrayHasKey('nom_sci', $retour['resultat']['182'], "Le tableau du résultat 182 doit contenir un champ 'nom_sci'. Voir : $url");
90
		$this->assertArrayHasKey('nom_sci', $retour['resultat']['182'], "Le tableau du résultat 182 doit contenir un champ 'nom_sci'. Voir : $url");
91
		$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");
91
		$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");
92
	}
92
	}
93
 
93
 
94
	public function testMasqueSg() {
94
	public function testMasqueSg() {
95
		$ressources = array();
95
		$ressources = array();
96
		$parametres = array(
96
		$parametres = array(
97
			'version.projet' => '1.01',
97
			'version.projet' => '1.01',
98
			'recherche' => 'stricte',
98
			'recherche' => 'stricte',
99
			'masque.sg' => 'Asteraceae');
99
			'masque.sg' => 'Asteraceae');
100
		$url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
100
		$url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
101
 
101
 
102
		$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
102
		$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
103
		$this->assertArrayHasKey('entete', $retour, "Le json ne contient pas d'attribut : entete. Voir : $url");
103
		$this->assertArrayHasKey('entete', $retour, "Le json ne contient pas d'attribut : entete. Voir : $url");
104
		$this->assertEquals('nom_supra_generique=Asteraceae', $retour['entete']['masque'], "L'attribut 'masque' de l'entête devrait valoir 'nom_supra_generique=Asteraceae'. Voir : $url");
104
		$this->assertEquals('nom_supra_generique=Asteraceae', $retour['entete']['masque'], "L'attribut 'masque' de l'entête devrait valoir 'nom_supra_generique=Asteraceae'. Voir : $url");
105
		$this->assertArrayHasKey('resultat', $retour, "Le json ne contient pas d'attribut : resultat. Voir : $url");
105
		$this->assertArrayHasKey('resultat', $retour, "Le json ne contient pas d'attribut : resultat. Voir : $url");
106
		$this->assertEquals('1', $retour['entete']['total'], "L'attribut 'total' de l'entête devrait valoir 1. Voir : $url");
106
		$this->assertEquals('1', $retour['entete']['total'], "L'attribut 'total' de l'entête devrait valoir 1. Voir : $url");
107
		$this->assertCount(1, $retour['resultat'], "Le résultat devrait contenir une seule donnée. Voir : $url");
107
		$this->assertCount(1, $retour['resultat'], "Le résultat devrait contenir une seule donnée. Voir : $url");
108
	}
108
	}
109
 
109
 
110
	public function testMasqueGenSpSspAuAn() {
110
	public function testMasqueGenSpSspAuAn() {
111
		$ressources = array();
111
		$ressources = array();
112
		$parametres = array(
112
		$parametres = array(
113
			'version.projet' => '1.01',
113
			'version.projet' => '1.01',
114
			'recherche' => 'stricte',
114
			'recherche' => 'stricte',
115
			'masque.gen' => 'Allium',
115
			'masque.gen' => 'Allium',
116
			'masque.sp' => 'carinatum',
116
			'masque.sp' => 'carinatum',
117
			'masque.ssp' => 'consimile',
117
			'masque.ssp' => 'consimile',
118
			'masque.au' => 'Gren.',
118
			'masque.au' => 'Gren.',
119
			'masque.an' => '1855');
119
			'masque.an' => '1855');
120
		$url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
120
		$url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
121
 
121
 
122
		$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
122
		$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
123
 
123
 
124
		$this->assertArrayHasKey('entete', $retour, "Le json ne contient pas d'attribut : entete. Voir : $url");
124
		$this->assertArrayHasKey('entete', $retour, "Le json ne contient pas d'attribut : entete. Voir : $url");
125
 
125
 
126
		$masque = 'genre=Allium&epithete_sp=carinatum&epithete_infra_sp=consimile&auteur=Gren.&annee=1855';
126
		$masque = 'genre=Allium&epithete_sp=carinatum&epithete_infra_sp=consimile&auteur=Gren.&annee=1855';
127
		$message = "L'attribut 'masque' de l'entête devrait valoir '$masque'. Voir : $url";
127
		$message = "L'attribut 'masque' de l'entête devrait valoir '$masque'. Voir : $url";
128
		$this->assertEquals($masque, $retour['entete']['masque'], $message);
128
		$this->assertEquals($masque, $retour['entete']['masque'], $message);
129
 
129
 
130
		$this->assertArrayHasKey('resultat', $retour, "Le json ne contient pas d'attribut : resultat. Voir : $url");
130
		$this->assertArrayHasKey('resultat', $retour, "Le json ne contient pas d'attribut : resultat. Voir : $url");
131
		$this->assertEquals('1', $retour['entete']['total'], "L'attribut 'total' de l'entête devrait valoir 1. Voir : $url");
131
		$this->assertEquals('1', $retour['entete']['total'], "L'attribut 'total' de l'entête devrait valoir 1. Voir : $url");
132
		$this->assertCount(1, $retour['resultat'], "Le résultat devrait contenir une seule donnée. Voir : $url");
132
		$this->assertCount(1, $retour['resultat'], "Le résultat devrait contenir une seule donnée. Voir : $url");
133
	}
133
	}
134
 
134
 
135
	public function testMasqueNn() {
135
	public function testMasqueNn() {
136
		$ressources = array();
136
		$ressources = array();
137
		$parametres = array(
137
		$parametres = array(
138
			'version.projet' => '1.01',
138
			'version.projet' => '1.01',
139
			'recherche' => 'stricte',
139
			'recherche' => 'stricte',
140
			'masque.nn' => '182');
140
			'masque.nn' => '182');
141
		$url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
141
		$url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
142
 
142
 
143
		$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
143
		$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
144
		$this->assertArrayHasKey('entete', $retour, "Le json ne contient pas d'attribut : entete. Voir : $url");
144
		$this->assertArrayHasKey('entete', $retour, "Le json ne contient pas d'attribut : entete. Voir : $url");
145
		$masque = 'num_nom=182';
145
		$masque = 'num_nom=182';
146
		$message = "L'attribut 'masque' de l'entête devrait valoir '$masque'. Voir : $url";
146
		$message = "L'attribut 'masque' de l'entête devrait valoir '$masque'. Voir : $url";
147
		$this->assertEquals($masque, $retour['entete']['masque'], $message);
147
		$this->assertEquals($masque, $retour['entete']['masque'], $message);
148
		$this->assertEquals('1', $retour['entete']['total'], "L'attribut 'total' de l'entête devrait valoir 1. Voir : $url");
148
		$this->assertEquals('1', $retour['entete']['total'], "L'attribut 'total' de l'entête devrait valoir 1. Voir : $url");
149
 
149
 
150
		$this->assertArrayHasKey('resultat', $retour, "Le json ne contient pas d'attribut : resultat. Voir : $url");
150
		$this->assertArrayHasKey('resultat', $retour, "Le json ne contient pas d'attribut : resultat. Voir : $url");
151
		$this->assertCount(1, $retour['resultat'], "Le résultat devrait contenir une seule donnée. Voir : $url");
151
		$this->assertCount(1, $retour['resultat'], "Le résultat devrait contenir une seule donnée. Voir : $url");
152
		$this->assertArrayNotHasKey('id', $retour['resultat']['182'], "Le tableau du résultat 182 doit contenir un champ 'id'. Voir : $url");
152
		$this->assertArrayNotHasKey('id', $retour['resultat']['182'], "Le tableau du résultat 182 doit contenir un champ 'id'. Voir : $url");
153
	}
153
	}
154
 
154
 
155
	public function testMasqueRg() {
155
	public function testMasqueRg() {
156
		$ressources = array();
156
		$ressources = array();
157
		$parametres = array(
157
		$parametres = array(
158
			'version.projet' => '1.01',
158
			'version.projet' => '1.01',
159
			'recherche' => 'stricte',
159
			'recherche' => 'stricte',
160
			'masque.rg' => '180');
160
			'masque.rg' => '180');
161
		$url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
161
		$url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
162
 
162
 
163
		$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
163
		$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
164
		$this->assertArrayHasKey('entete', $retour, "Le json ne contient pas d'attribut : entete. Voir : $url");
164
		$this->assertArrayHasKey('entete', $retour, "Le json ne contient pas d'attribut : entete. Voir : $url");
165
		$masque = 'rang=180';
165
		$masque = 'rang=180';
166
		$message = "L'attribut 'masque' de l'entête devrait valoir '$masque'. Voir : $url";
166
		$message = "L'attribut 'masque' de l'entête devrait valoir '$masque'. Voir : $url";
167
		$this->assertEquals($masque, $retour['entete']['masque'], $message);
167
		$this->assertEquals($masque, $retour['entete']['masque'], $message);
168
		$this->assertEquals('210', $retour['entete']['total'], "L'attribut 'total' de l'entête devrait valoir 210. Voir : $url");
168
		$this->assertEquals('210', $retour['entete']['total'], "L'attribut 'total' de l'entête devrait valoir 210. Voir : $url");
169
	}
169
	}
170
 
170
 
171
	public function testNsStructureTxt() {
171
	public function testNsStructureTxt() {
172
		$ressources = array();
172
		$ressources = array();
173
		$parametres = array(
173
		$parametres = array(
174
			'version.projet' => '1.01',
174
			'version.projet' => '1.01',
175
			'recherche' => 'stricte',
175
			'recherche' => 'stricte',
176
			'masque.nn' => '182',
176
			'masque.nn' => '182',
177
			'ns.format' => 'txt',
177
			'ns.format' => 'txt',
178
			'ns.structure' => 'au,an,bib,ad');
178
			'ns.structure' => 'au,an,bib,ad');
179
		$url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
179
		$url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
180
 
180
 
181
		$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
181
		$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
182
		$this->assertArrayHasKey('entete', $retour, "Le json ne contient pas d'attribut : entete. Voir : $url");
182
		$this->assertArrayHasKey('entete', $retour, "Le json ne contient pas d'attribut : entete. Voir : $url");
183
		$masque = 'num_nom=182';
183
		$masque = 'num_nom=182';
184
		$message = "L'attribut 'masque' de l'entête devrait valoir '$masque'. Voir : $url";
184
		$message = "L'attribut 'masque' de l'entête devrait valoir '$masque'. Voir : $url";
185
		$this->assertEquals($masque, $retour['entete']['masque'], $message);
185
		$this->assertEquals($masque, $retour['entete']['masque'], $message);
186
		$this->assertEquals('1', $retour['entete']['total'], "L'attribut 'total' de l'entête devrait valoir 1. Voir : $url");
186
		$this->assertEquals('1', $retour['entete']['total'], "L'attribut 'total' de l'entête devrait valoir 1. Voir : $url");
187
 
187
 
188
		$this->assertArrayHasKey('resultat', $retour, "Le json ne contient pas d'attribut : resultat. Voir : $url");
188
		$this->assertArrayHasKey('resultat', $retour, "Le json ne contient pas d'attribut : resultat. Voir : $url");
189
		$this->assertEquals('Acer monspessulanum L. [1753, Sp. Pl., éd. 1 : 1056]', $retour['resultat']['182']['nom_sci_complet'], "Le tableau du résultat 182 doit contenir un champ 'nom_sci' avec pour valeur 'Acer monspessulanum'. Voir : $url");
189
		$this->assertEquals('Acer monspessulanum L. [1753, Sp. Pl., éd. 1 : 1056]', $retour['resultat']['182']['nom_sci_complet'], "Le tableau du résultat 182 doit contenir un champ 'nom_sci' avec pour valeur 'Acer monspessulanum'. Voir : $url");
190
	}
190
	}
191
 
191
 
192
	public function testNsStructureHtml() {
192
	public function testNsStructureHtml() {
193
		$ressources = array();
193
		$ressources = array();
194
		$parametres = array(
194
		$parametres = array(
195
			'version.projet' => '1.01',
195
			'version.projet' => '1.01',
196
			'recherche' => 'stricte',
196
			'recherche' => 'stricte',
197
			'masque.nn' => '182',
197
			'masque.nn' => '182',
198
			'ns.format' => 'htm',
198
			'ns.format' => 'htm',
199
			'ns.structure' => 'au,an,bib,ad');
199
			'ns.structure' => 'au,an,bib,ad');
200
		$url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
200
		$url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
201
 
201
 
202
		$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
202
		$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
203
		$this->assertArrayHasKey('entete', $retour, "Le json ne contient pas d'attribut : entete. Voir : $url");
203
		$this->assertArrayHasKey('entete', $retour, "Le json ne contient pas d'attribut : entete. Voir : $url");
204
		$masque = 'num_nom=182';
204
		$masque = 'num_nom=182';
205
		$message = "L'attribut 'masque' de l'entête devrait valoir '$masque'. Voir : $url";
205
		$message = "L'attribut 'masque' de l'entête devrait valoir '$masque'. Voir : $url";
206
		$this->assertEquals($masque, $retour['entete']['masque'], $message);
206
		$this->assertEquals($masque, $retour['entete']['masque'], $message);
207
		$this->assertEquals('1', $retour['entete']['total'], "L'attribut 'total' de l'entête devrait valoir 1. Voir : $url");
207
		$this->assertEquals('1', $retour['entete']['total'], "L'attribut 'total' de l'entête devrait valoir 1. Voir : $url");
208
 
208
 
209
		$this->assertArrayHasKey('resultat', $retour, "Le json ne contient pas d'attribut : resultat.\nVoir : $url");
209
		$this->assertArrayHasKey('resultat', $retour, "Le json ne contient pas d'attribut : resultat.\nVoir : $url");
210
		$attendu = '<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>]';
210
		$attendu = '<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>]';
211
		$message = "Le tableau du résultat 182 doit contenir un champ 'nom_sci' avec pour valeur '$attendu'. Voir : $url";
211
		$message = "Le tableau du résultat 182 doit contenir un champ 'nom_sci' avec pour valeur '$attendu'. Voir : $url";
212
		$this->assertEquals($attendu, $retour['resultat']['182']['nom_sci_complet'], $message);
212
		$this->assertEquals($attendu, $retour['resultat']['182']['nom_sci_complet'], $message);
213
	}
213
	}
214
 
214
 
215
	public function testListeNomsAvecParametreRetourChamps() {
215
	public function testListeNomsAvecParametreRetourChamps() {
216
		$ressources = array();
216
		$ressources = array();
217
		$parametres = array('version.projet' => '1.01',
217
		$parametres = array('version.projet' => '1.01',
218
			'masque' => 'acer',
218
			'masque' => 'acer',
219
			'retour.champs' => 'auteur,nom_retenu.*');
219
			'retour.champs' => 'auteur,nom_retenu.*');
220
 
220
 
221
		$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
221
		$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
222
		$this->assertArrayHasKey('auteur', $retour['resultat']['83587']);
222
		$this->assertArrayHasKey('auteur', $retour['resultat']['83587']);
223
		$this->assertArrayHasKey('nom_retenu.id', $retour['resultat']['83587']);
223
		$this->assertArrayHasKey('nom_retenu.id', $retour['resultat']['83587']);
224
		$this->assertArrayHasKey('nom_retenu.href', $retour['resultat']['83587']);
224
		$this->assertArrayHasKey('nom_retenu.href', $retour['resultat']['83587']);
225
		$this->assertArrayNotHasKey('nom_retenu', $retour['resultat']['83587']);
225
		$this->assertArrayNotHasKey('nom_retenu', $retour['resultat']['83587']);
226
	}
226
	}
227
 
227
 
228
	public function testNomsIdAvecParametreRetourChamps() {
228
	public function testNomsIdAvecParametreRetourChamps() {
229
		$ressources = array(1);
229
		$ressources = array(1);
230
		$parametres = array('version.projet' => '1.01',
230
		$parametres = array('version.projet' => '1.01',
231
				'retour.champs' => 'nom_retenu.*');
231
				'retour.champs' => 'nom_retenu.*');
232
 
232
 
233
		$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
233
		$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
234
		$this->assertArrayHasKey('nom_retenu.id', $retour);
234
		$this->assertArrayHasKey('nom_retenu.id', $retour);
235
		$this->assertArrayHasKey('nom_retenu.href', $retour);
235
		$this->assertArrayHasKey('nom_retenu.href', $retour);
236
		$this->assertArrayNotHasKey('nom_retenu', $retour);
236
		$this->assertArrayNotHasKey('nom_retenu', $retour);
237
		$this->assertArrayNotHasKey('auteur', $retour);
237
		$this->assertArrayNotHasKey('auteur', $retour);
238
	}
238
	}
239
 
239
 
240
	public function testListeNomAvecParametreNsStructureAuAnBibAd() {
240
	public function testListeNomAvecParametreNsStructureAuAnBibAd() {
241
		$ressources = array();
241
		$ressources = array();
242
		$parametres = array('version.projet' => '1.01',
242
		$parametres = array('version.projet' => '1.01',
243
			'masque.nn' => '39607',
243
			'masque.nn' => '39607',
244
			'ns.structure' => 'au,an,bib,ad');
244
			'ns.structure' => 'au,an,bib,ad');
245
 
245
 
246
		$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
246
		$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
247
		$this->assertArrayHasKey('resultat', $retour);
247
		$this->assertArrayHasKey('resultat', $retour);
248
		$this->assertArrayHasKey('39607', $retour['resultat']);
248
		$this->assertArrayHasKey('39607', $retour['resultat']);
249
		$this->assertArrayHasKey('nom_sci', $retour['resultat']['39607']);
249
		$this->assertArrayHasKey('nom_sci', $retour['resultat']['39607']);
250
		$nomSciTxt = 'Lolium annuum Gilib. [1792, Exercit. Phytol., 2 : 520] [nom. invalid.]';
250
		$nomSciTxt = 'Lolium annuum Gilib. [1792, Exercit. Phytol., 2 : 520] [nom. invalid.]';
251
		$this->assertEquals($nomSciTxt, $retour['resultat']['39607']['nom_sci_complet']);
251
		$this->assertEquals($nomSciTxt, $retour['resultat']['39607']['nom_sci_complet']);
252
	}
252
	}
253
 
253
 
254
	public function testListeNomAvecParametreNsStructureAuAnBibAdEtNsFormatHtm() {
254
	public function testListeNomAvecParametreNsStructureAuAnBibAdEtNsFormatHtm() {
255
		$ressources = array();
255
		$ressources = array();
256
		$parametres = array('version.projet' => '1.01',
256
		$parametres = array('version.projet' => '1.01',
257
			'masque.nn' => '39607',
257
			'masque.nn' => '39607',
258
			'ns.structure' => 'au,an,bib,ad',
258
			'ns.structure' => 'au,an,bib,ad',
259
			'ns.format' => 'htm');
259
			'ns.format' => 'htm');
260
 
260
 
261
		$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
261
		$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
262
		$this->assertArrayHasKey('entete', $retour);
262
		$this->assertArrayHasKey('entete', $retour);
263
		$this->assertArrayHasKey('masque', $retour['entete']);
263
		$this->assertArrayHasKey('masque', $retour['entete']);
264
		$this->assertEquals('num_nom=39607', $retour['entete']['masque']);
264
		$this->assertEquals('num_nom=39607', $retour['entete']['masque']);
265
 
265
 
266
		$this->assertArrayHasKey('resultat', $retour);
266
		$this->assertArrayHasKey('resultat', $retour);
267
		$this->assertArrayHasKey('39607', $retour['resultat']);
267
		$this->assertArrayHasKey('39607', $retour['resultat']);
268
		$this->assertArrayHasKey('nom_sci', $retour['resultat']['39607']);
268
		$this->assertArrayHasKey('nom_sci', $retour['resultat']['39607']);
269
		$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>]";
269
		$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>]";
270
		$this->assertEquals($nomSciHtml, $retour['resultat']['39607']['nom_sci_complet']);
270
		$this->assertEquals($nomSciHtml, $retour['resultat']['39607']['nom_sci_complet']);
271
	}
271
	}
272
	
272
	
273
	public function testListeNomAvecParametreRetourChamps() {
273
	public function testListeNomAvecParametreRetourChamps() {
274
		$ressources = array();
274
		$ressources = array();
275
		$parametres = array('version.projet' => '1.01',
275
		$parametres = array('version.projet' => '1.01',
276
				'masque.nn' => '39607',
276
				'masque.nn' => '39607',
277
				'retour.champs' => 'rang,auteur');
277
				'retour.champs' => 'rang,auteur');
278
 
278
 
279
		$url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);	
279
		$url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);	
280
		$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
280
		$retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
281
		$this->assertArrayHasKey('entete', $retour);
281
		$this->assertArrayHasKey('entete', $retour);
282
		$this->assertArrayHasKey('masque', $retour['entete']);
282
		$this->assertArrayHasKey('masque', $retour['entete']);
283
		$this->assertEquals('num_nom=39607', $retour['entete']['masque']);
283
		$this->assertEquals('num_nom=39607', $retour['entete']['masque']);
284
	
284
	
285
		$this->assertArrayHasKey('resultat', $retour);
285
		$this->assertArrayHasKey('resultat', $retour);
286
		$this->assertArrayHasKey('39607', $retour['resultat']);
286
		$this->assertArrayHasKey('39607', $retour['resultat']);
287
		$this->assertArrayHasKey('rang.libelle', $retour['resultat']['39607']);
287
		$this->assertArrayHasKey('rang.libelle', $retour['resultat']['39607']);
288
		// peut advenir en cas d'échec de la requête (HTTP ou SQL) sur les ontologies
288
		// peut advenir en cas d'échec de la requête (HTTP ou SQL) sur les ontologies
289
		// vérifier la présence de la table ainsi que la valeur "bdd_table_ontologies" dans "config_bdtfx.ini"
289
		// vérifier la présence de la table ainsi que la valeur "bdd_table_ontologies" dans "config_bdtfx.ini"
290
		$this->assertEquals('Espèce', $retour['resultat']['39607']['rang.libelle'], "Erreur champ 'Espèce': Voir $url");
290
		$this->assertEquals('Espèce', $retour['resultat']['39607']['rang.libelle'], "Erreur champ 'Espèce': Voir $url");
291
		$this->assertArrayHasKey('auteur', $retour['resultat']['39607']);
291
		$this->assertArrayHasKey('auteur', $retour['resultat']['39607']);
292
		$this->assertEquals('Gilib.', $retour['resultat']['39607']['auteur']);
292
		$this->assertEquals('Gilib.', $retour['resultat']['39607']['auteur']);
293
	}
293
	}
294
}
294
}
295
?>
295
?>