/trunk/services/tests/prepare.php |
---|
1,5 → 1,19 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Script préparant le lancement des 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$ |
*/ |
error_reporting(E_ALL); |
/** |
* La méthode __autoload() charge dynamiquement les classes trouvées dans le code. |
* Cette fonction est appelée par php5 quand il trouve une instanciation de classe dans le code. |
* |
11,7 → 25,8 |
return null; |
} |
$cheminBase = realpath(__DIR__.'/../modules/0.1').'/'; |
$chemins = array($cheminBase); |
$cheminsTests = __DIR__.'/'; |
$chemins = array($cheminBase, $cheminsTests); |
foreach ($chemins as $chemin) { |
$chemin = $chemin.$classe.'.php'; |
if (file_exists($chemin)) { |
/trunk/services/tests/bdtfx/BdtfxNomsTest.php |
---|
1,6 → 1,11 |
<?php |
class BdtfxNomsTest extends PHPUnit_Framework_TestCase { |
class BdtfxNomsTest extends ServicesTestsOutils { |
public function __construct() { |
$this->projet = 'bdtfx'; |
$this->service = 'noms'; |
} |
public function testVersionPrecise() { |
$ressources = array('v1.01'); |
$parametres = array(); |
195,45 → 200,5 |
$message = "Le tableau du résultat 182 doit contenir un champ 'nom_sci' avec pour valeur '$attendu'. Voir : $url"; |
$this->assertEquals($attendu, $retour['resultat']['182']['nom_sci'], $message); |
} |
//+------------------------------------------------------------------------------------------------------+ |
// Refactorisation |
private 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; |
} |
private function consulterBrut($ressources, $parametres) { |
array_unshift($ressources, 'noms'); |
array_unshift($ressources, 'bdtfx'); |
$projets = new Projets(); |
$retourJson = $projets->consulter($ressources, $parametres); |
return $retourJson; |
} |
private 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; |
} |
} |
?> |
/trunk/services/tests/bdtfx/BdtfxTaxonsTest.php |
---|
1,6 → 1,11 |
<?php |
class BdtfxTaxonsTest extends PHPUnit_Framework_TestCase { |
class BdtfxTaxonsTest extends ServicesTestsOutils { |
public function __construct() { |
$this->projet = 'bdtfx'; |
$this->service = 'taxons'; |
} |
public function testVersionPrecise() { |
$ressources = array('v1.01'); |
$parametres = array(); |
90,45 → 95,5 |
$this->assertEquals('4', $retour['entete']['total'], "L'attribut total de l'entête devrait valoir 4. Voir : $url"); |
$this->assertEquals(4, count($retour['resultat']), "Le résultat devrait contenir 4 données. Voir : $url"); |
} |
//+------------------------------------------------------------------------------------------------------+ |
// Refactorisation |
private 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; |
} |
private function consulterBrut($ressources, $parametres) { |
array_unshift($ressources, 'taxons'); |
array_unshift($ressources, 'bdtfx'); |
$projets = new Projets(); |
$retourJson = $projets->consulter($ressources, $parametres); |
return $retourJson; |
} |
private 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; |
} |
} |
?> |
/trunk/services/tests/iso-639-1/Iso6391LanguesTest.php |
---|
New file |
0,0 → 1,21 |
<?php |
class Iso6391LanguesTest extends ServicesTestsOutils { |
public function __construct() { |
$this->projet = 'iso-639-1'; |
$this->service = 'langues'; |
} |
public function testValeurChampPrecis() { |
$ressources = array('fr', 'nom'); |
$parametres = array(); |
$url = $this->creerUrl($ressources, $parametres); |
$retour = $this->consulterJson($ressources, $parametres); |
$this->assertArrayHasKey('id', $retour, "Le json ne contient pas d'attribut : id. Voir : $url"); |
$this->assertEquals('fr', $retour['id'], "L'attribut 'id' devrait avoir la valeur 'fr'. Voir : $url"); |
$this->assertArrayHasKey('nom.fr', $retour, "Le json ne contient pas d'attribut : nom.fr. Voir : $url"); |
$this->assertEquals('Français', $retour['nom.fr'], "L'attribut 'nom.fr' devrait avoir la valeur 'Français'. Voir : $url"); |
} |
} |
?> |
/trunk/services/tests/ServicesTestsOutils.php |
---|
New file |
0,0 → 1,61 |
<?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; |
} |
} |
?> |