Blame | Last modification | View Log | RSS feed
<?php
//declare(encoding='UTF-8');
/**
* Classe permettant de refactoriser du codes entres les différentes classes de Tests.
*
* @category php 5.3
* @package Tests/Services
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Copyright (c) 2011, Tela Botanica (accueil@tela-botanica.org)
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
* @version $Id$
*/
abstract class ServicesTestsOutils extends PHPUnit_Framework_TestCase {
/** Définir la valeur de cet attribut dans le constructeur de la classe de test.*/
protected $projet = '';
/** Définir la valeur de cet attribut dans le constructeur de la classe de test.*/
protected $service = '';
//+------------------------------------------------------------------------------------------------------+
// Refactorisation
protected function consulterJson($ressources, $parametres) {
$retourJson = $this->consulterBrut($ressources, $parametres);
$retour = json_decode($retourJson, true);
$this->assertEquals(JSON_ERROR_NONE, json_last_error(), "Le json contient des erreurs qui bloquent le décodage. Voir : $url");
return $retour;
}
protected function consulterBrut($ressources, $parametres) {
array_unshift($ressources, $this->service);
array_unshift($ressources, $this->projet);
$projets = new Projets();
$retourJson = $projets->consulter($ressources, $parametres);
return $retourJson;
}
protected function creerUrl($ressources, $parametres) {
$version = '';
$ressourcesUrl = array();
foreach ($ressources as $ressource) {
if (preg_match('/^(v[0-9]+\.[0-9]+|[*+])$/', $ressource)) {
$version = $ressource.'/';
} else {
$ressourcesUrl[] = $ressource;
}
}
$ressourcesUrl = count($ressourcesUrl) > 0 ? '/'.implode('/', $ressourcesUrl) : '';
$parametresUrl = '';
if (count($parametres) > 0) {
foreach ($parametres as $cle => $valeur) {
$parametresUrl[] = $cle.'='.rawurlencode($valeur);
}
$parametresUrl = '?'.implode('&', $parametresUrl);
}
$url = Config::get('url_service').'/'.$version.'noms'.$ressourcesUrl.$parametresUrl;
return $url;
}
}
?>