Subversion Repositories eFlore/Projets.eflore-projets

Rev

Rev 17 | Rev 195 | 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 BdtfxTaxonsTest extends ServicesTestsOutils {
4
class BdtfxTaxonsTest 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 = 'taxons';
8
		$this->service = 'taxons';
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('182');
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('182', $retour['bdtfx_v1_01']['id'], "'bdtfx_v1_01' doit contenir un attribut 'id' avec la valeur '182'");
28
		$this->assertEquals('182', $retour['bdtfx_v1_02']['id'], "'bdtfx_v1_02' doit contenir un attribut 'id' avec la valeur '182'");
30
		$this->assertEquals('182', $retour['bdtfx_v1_02']['id'], "'bdtfx_v1_02' doit contenir un attribut 'id' avec la valeur '182'");
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');
-
 
57
		$parametres = array(
-
 
58
					'recherche' => 'stricte',
59
		$parametres = array(
59
					'masque' => 'Acer');
60
			'version.projet' => '1.01',
-
 
61
			'recherche' => 'stricte',
60
		$url = $this->creerUrl($ressources, $parametres);
62
			'masque' => 'Acer');
61
 
63
		$url = $this->creerUrl($ressources, $parametres);
-
 
64
 
Line 62... Line 65...
62
		$retour = $this->consulterJson($ressources, $parametres);
65
		$retour = $this->consulterJson($ressources, $parametres);
63
		$this->assertArrayHasKey('entete', $retour, "Le json ne contient pas d'attribut : entete. Voir : $url");
66
		$this->assertArrayHasKey('entete', $retour, "Le json ne contient pas d'attribut : entete. Voir : $url");
64
		$this->assertArrayHasKey('resultat', $retour, "Le json ne contient pas d'attribut : resultat. Voir : $url");
67
		$this->assertArrayHasKey('resultat', $retour, "Le json ne contient pas d'attribut : resultat. Voir : $url");
65
		$this->assertEquals('1', $retour['entete']['total'], "L'attribut 'total' de l'entête devrait valoir 1. Voir : $url");
68
		$this->assertEquals('1', $retour['entete']['total'], "L'attribut 'total' de l'entête devrait valoir 1. Voir : $url");
66
		$this->assertEquals(1, count($retour['resultat']), "Le résultat devrait contenir une seule donnée. Voir : $url");
69
		$this->assertEquals(1, count($retour['resultat']), "Le résultat devrait contenir une seule donnée. Voir : $url");
67
	}
70
	}
Line 68... Line 71...
68
 
71
 
69
	public function testRechercheEtendue() {
-
 
70
		$url = Config::get('url_service').'/v1.01/taxons?recherche=etendue&masque=Acer';
-
 
71
 
72
	public function testRechercheEtendue() {
72
		$ressources = array('v1.01');
73
		$ressources = array();
-
 
74
		$parametres = array(
73
		$parametres = array(
75
			'version.projet' => '1.01',
74
				'recherche' => 'etendue',
76
			'recherche' => 'etendue',
-
 
77
			'masque' => 'Acer');
Line 75... Line 78...
75
				'masque' => 'Acer');
78
		$url = $this->creerUrl($ressources, $parametres);
76
 
79
 
77
		$retour = $this->consulterJson($ressources, $parametres);
80
		$retour = $this->consulterJson($ressources, $parametres);
78
		$this->assertArrayHasKey('entete', $retour, "Le json ne contient pas d'attribut : entete. Voir : $url");
81
		$this->assertArrayHasKey('entete', $retour, "Le json ne contient pas d'attribut : entete. Voir : $url");