Subversion Repositories eFlore/Projets.eflore-projets

Rev

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;
        }
}
?>