Subversion Repositories eFlore/Projets.eflore-projets

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
17 jpm 1
<?php
2
//declare(encoding='UTF-8');
3
/**
4
* Classe permettant de refactoriser du codes entres les différentes classes de Tests.
5
*
6
* @category	php 5.3
7
* @package		Tests/Services
8
* @author		Jean-Pascal MILCENT <jpm@tela-botanica.org>
9
* @copyright	Copyright (c) 2011, Tela Botanica (accueil@tela-botanica.org)
10
* @license		http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
11
* @license		http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
12
* @version		$Id$
13
*/
14
abstract class ServicesTestsOutils extends PHPUnit_Framework_TestCase {
15
 
16
	/** Définir la valeur de cet attribut dans le constructeur de la classe de test.*/
17
	protected $projet = '';
18
	/** Définir la valeur de cet attribut dans le constructeur de la classe de test.*/
19
	protected $service = '';
20
 
21
	//+------------------------------------------------------------------------------------------------------+
22
	// Refactorisation
23
	protected function consulterJson($ressources, $parametres) {
24
		$retourJson = $this->consulterBrut($ressources, $parametres);
25
		$retour = json_decode($retourJson, true);
26
		$this->assertEquals(JSON_ERROR_NONE, json_last_error(), "Le json contient des erreurs qui bloquent le décodage. Voir : $url");
27
		return $retour;
28
	}
29
 
30
	protected function consulterBrut($ressources, $parametres) {
31
		array_unshift($ressources, $this->service);
32
		array_unshift($ressources, $this->projet);
33
		$projets = new Projets();
34
		$retourJson = $projets->consulter($ressources, $parametres);
35
		return $retourJson;
36
	}
37
 
38
	protected function creerUrl($ressources, $parametres) {
39
		$version = '';
40
		$ressourcesUrl = array();
41
		foreach ($ressources as $ressource) {
42
			if (preg_match('/^(v[0-9]+\.[0-9]+|[*+])$/', $ressource)) {
43
				$version = $ressource.'/';
44
			} else {
45
				$ressourcesUrl[] = $ressource;
46
			}
47
		}
48
		$ressourcesUrl = count($ressourcesUrl) > 0 ? '/'.implode('/', $ressourcesUrl) : '';
49
 
50
		$parametresUrl = '';
51
		if (count($parametres) > 0) {
52
			foreach ($parametres as $cle => $valeur) {
53
				$parametresUrl[] = $cle.'='.rawurlencode($valeur);
54
			}
55
			$parametresUrl = '?'.implode('&', $parametresUrl);
56
		}
57
		$url = Config::get('url_service').'/'.$version.'noms'.$ressourcesUrl.$parametresUrl;
58
		return $url;
59
	}
60
}
61
?>