Subversion Repositories eFlore/Projets.eflore-projets

Rev

Rev 7 | Rev 96 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
3 jpm 1
<?php
17 jpm 2
class BdtfxTaxonsTest extends ServicesTestsOutils {
3 jpm 3
 
17 jpm 4
	public function __construct() {
5
		$this->projet = 'bdtfx';
6
		$this->service = 'taxons';
7
	}
8
 
3 jpm 9
	public function testVersionPrecise() {
10
		$ressources = array('v1.01');
11
		$parametres = array();
12
		$url = $this->creerUrl($ressources, $parametres);
13
		$retour = $this->consulterJson($ressources, $parametres);
14
 
15
		$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");
17
	}
18
 
19
	public function testNomsIdVersionMultiple() {
20
		$ressources = array('*', '182');
21
		$parametres = array();
22
		$url = $this->creerUrl($ressources, $parametres);
23
 
24
		$retour = $this->consulterJson($ressources, $parametres);
25
		$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");
27
		$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'");
29
	}
30
 
31
	public function testNomsVersionMultiple() {
32
		$ressources = array('*');
33
		$parametres = array();
34
		$url = $this->creerUrl($ressources, $parametres);
35
 
36
		$retour = $this->consulterBrut($ressources, $parametres);
37
 
38
		$attendu = "L'affichage de plusieurs versions ne fonctionne que pour les ressources de type /ressources/#id";
39
		$message = "L'url :\n'$url'\n doit retourner un résultat de la forme :\n $attendu";
40
		$this->assertEquals($attendu, $retour, $message);
41
	}
42
 
43
	public function testVersionInexistante() {
44
		$ressources = array('v99.00');
45
		$parametres = array();
46
		$url = $this->creerUrl($ressources, $parametres);
47
 
48
		$retour = $this->consulterBrut($ressources, $parametres);
49
 
50
		$attendu = 'La requête SQL formée comporte une erreur!';
51
		$message = "L'url :\n'$url'\n doit retourner un résultat de la forme :\n $attendu";
52
		$this->assertEquals($attendu, $retour, $message);
53
	}
54
 
55
	public function testRechercheStricte() {
56
		$ressources = array('v1.01');
57
		$parametres = array(
58
					'recherche' => 'stricte',
59
					'masque' => 'Acer');
60
		$url = $this->creerUrl($ressources, $parametres);
61
 
62
		$retour = $this->consulterJson($ressources, $parametres);
63
		$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");
65
		$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");
67
	}
7 jpm 68
 
3 jpm 69
	public function testRechercheEtendue() {
70
		$url = Config::get('url_service').'/v1.01/taxons?recherche=etendue&masque=Acer';
71
 
72
		$ressources = array('v1.01');
73
		$parametres = array(
74
				'recherche' => 'etendue',
75
				'masque' => 'Acer');
76
 
7 jpm 77
		$retour = $this->consulterJson($ressources, $parametres);
3 jpm 78
		$this->assertArrayHasKey('entete', $retour, "Le json ne contient pas d'attribut : entete. Voir : $url");
79
		$this->assertArrayHasKey('resultat', $retour, "Le json ne contient pas d'attribut : resultat. Voir : $url");
80
		$this->assertEquals('50', $retour['entete']['total'], "L'attribut total de l'entête devrait valoir 50. Voir : $url");
81
		$this->assertEquals(50, count($retour['resultat']), "Le résultat devrait contenir 50 données. Voir : $url");
82
	}
83
 
84
	public function testRechercheFloue() {
85
		$url = Config::get('url_service').'/v1.01/taxons?recherche=floue&masque=Acer';
86
 
87
		$ressources = array('v1.01');
88
		$parametres = array(
89
					'recherche' => 'floue',
90
					'masque' => 'Acer');
91
 
7 jpm 92
		$retour = $this->consulterJson($ressources, $parametres);
3 jpm 93
		$this->assertArrayHasKey('entete', $retour, "Le json ne contient pas d'attribut : entete. Voir : $url");
94
		$this->assertArrayHasKey('resultat', $retour, "Le json ne contient pas d'attribut : resultat. Voir : $url");
95
		$this->assertEquals('4', $retour['entete']['total'], "L'attribut total de l'entête devrait valoir 4. Voir : $url");
96
		$this->assertEquals(4, count($retour['resultat']), "Le résultat devrait contenir 4 données. Voir : $url");
97
	}
98
}
99
?>