Subversion Repositories eFlore/Projets.eflore-projets

Compare Revisions

Ignore whitespace Rev 214 → Rev 215

/trunk/services/tests/0.2/bibliotheque/ParametresVerificateurTest.php
New file
0,0 → 1,112
<?php
require_once dirname(__FILE__).'/../ServicePhpUnit.php';
 
class ParametresVerificateurTest extends ServicePhpUnit {
 
private function initialiser($parametresUrl = array(), $parametresAPI = array()) {
$bdd = $this->getMock('Bdd');
$parametres = new Parametres($parametresUrl, $bdd);
$verificateur = new ParametresVerificateur($parametres, $parametresAPI);
return $verificateur;
}
 
public function testerValeursPermises() {
$parametresUrl = array(
'recherche' => 'declencheException',
'ns.format' => 'declencheException',
'retour' => 'declencheException',
'retour.format' => 'declencheException',
'retour.langue' => 'declencheException',
'ns.structure' => 'declencheException',
'version.projet' => 'declencheException');
 
$verificateur = $this->initialiser($parametresUrl);
 
try {
$verificateur->verifierValeurs();
} catch(Exception $e) {
$messageComplet = array("Erreur dans le paramètrage de votre URL :");
$messageTpl = "Le paramètre '%s' ne peut pas prendre la valeur 'declencheException'. Valeurs permises : %s";
$messageComplet[] = $messageAttendu = sprintf($messageTpl, 'recherche', 'stricte|floue|etendue');
$this->assertContains($messageAttendu, $e->getMessage());
$messageComplet[] = $messageAttendu = sprintf($messageTpl, 'ns.format', 'htm|txt');
$this->assertContains($messageAttendu, $e->getMessage());
$messageComplet[] = $messageAttendu = sprintf($messageTpl, 'retour', 'application/json|image/jpeg');
$this->assertContains($messageAttendu, $e->getMessage());
$messageComplet[] = $messageAttendu = sprintf($messageTpl, 'retour.format', 'min|max|oss|perso');
$this->assertContains($messageAttendu, $e->getMessage());
$messageComplet[] = $messageAttendu = sprintf($messageTpl, 'retour.langue', '/^(?:[*]|orig|[a-z]{2})$/');
$this->assertContains($messageAttendu, $e->getMessage());
$messageComplet[] = $messageAttendu = sprintf($messageTpl, 'ns.structure', '|an|au|bib|ad');
$this->assertContains($messageAttendu, $e->getMessage());
$messageComplet[] = $messageAttendu = sprintf($messageTpl, 'version.projet', '/^(?:[0-9]+[.][0-9]+|[*+])$/');
$this->assertContains($messageAttendu, $e->getMessage());
 
$this->assertEquals(implode('<br/>', $messageComplet), $e->getMessage());
return null;
}
$this->fail("Aucune exception n'a été soulevée.");
}
 
public function testerExceptionVerificationConformiteApi() {
$parametresUrl = array('code1' => 'val1');
$parametresAPI = array('paramApi');
 
$verificateur = $this->initialiser($parametresUrl, $parametresAPI);
 
try {
$verificateur->verifierConformiteApi();
} catch(Exception $e) {
$messageAttendu = "Le paramètre 'code1' n'est pas pris en compte par cette version de l'API.";
$this->assertEquals($messageAttendu, $e->getMessage());
return null;
}
$this->fail("Aucune exception n'a été soulevée.");
}
 
public function testerExceptionVerifierValeurSimple() {
$parametresUrl = array('recherche' => 'declencheException');
 
$verificateur = $this->initialiser($parametresUrl);
 
try {
$verificateur->verifierValeurs();
} catch(Exception $e) {
$messageAttendu = "Le paramètre 'recherche' ne peut pas prendre la valeur 'declencheException'. Valeurs permises : ";
$this->assertContains($messageAttendu, $e->getMessage());
return null;
}
$this->fail("Aucune exception n'a été soulevée.");
}
 
public function testerExceptionVerifierValeurRegExp() {
$parametresUrl = array('retour.langue' => '1');
 
$verificateur = $this->initialiser($parametresUrl);
 
try {
$verificateur->verifierValeurs();
} catch(Exception $e) {
$messageAttendu = "Le paramètre 'retour.langue' ne peut pas prendre la valeur '1'. Valeurs permises : ";
$this->assertContains($messageAttendu, $e->getMessage());
return null;
}
$this->fail("Aucune exception n'a été soulevée.");
}
 
public function testerExceptionVerifierValeurMultiple() {
$parametresUrl = array('ns.structure' => 'an,1');
 
$verificateur = $this->initialiser($parametresUrl);
 
try {
$verificateur->verifierValeurs();
} catch(Exception $e) {
$messageAttendu = "Le paramètre 'ns.structure' ne peut pas prendre la valeur '1'. Valeurs permises : ";
$this->assertContains($messageAttendu, $e->getMessage());
return null;
}
$this->fail("Aucune exception n'a été soulevée.");
}
}
?>
/trunk/services/tests/0.2/bibliotheque/ParametresTest.php
3,15 → 3,87
 
class ParametresTest extends ServicePhpUnit {
 
public function testerParametreParDefaut() {
private function initialiser($parametresUrl = array()) {
$bdd = $this->getMock('Bdd');
$parametresUrl = array();
 
$parametres = new Parametres($parametresUrl, $bdd);
return $parametres;
}
 
public function testerParametreParDefaut() {
$parametres = $this->initialiser();
 
$this->assertEquals('stricte', $parametres->get('recherche'));
$this->assertEquals('ns.format', $parametres->get('txt'));
$this->assertEquals('ns.format', $parametres->get('txt'));
$this->assertEquals('txt', $parametres->get('ns.format'));
$this->assertEquals('application/json', $parametres->get('retour'));
$this->assertEquals('max', $parametres->get('retour.format'));
$this->assertEquals('fr', $parametres->get('retour.langue'));
$this->assertEquals('+', $parametres->get('version.projet'));
$this->assertSame(0, $parametres->get('navigation.depart'));
$this->assertSame(100, $parametres->get('navigation.limite'));
}
 
public function testerExisterRetourneBouleen() {
$parametresUrl = array('masque.id' => '12,15,18');
 
$parametres = $this->initialiser($parametresUrl);
 
$this->assertTrue($parametres->exister('masque.id'));
$this->assertFalse($parametres->exister('masque'));
$this->assertTrue($parametres->exister('recherche'));
}
 
public function testerGetRetourneValeur() {
$parametresUrl = array('masque.id' => '12,15,18');
 
$parametres = $this->initialiser($parametresUrl);
 
$this->assertEquals('12,15,18', $parametres->get('masque.id'));
}
 
public function testerGetListeRetourneTableau() {
$parametresUrl = array('masque.id' => '12,15,18');
 
$parametres = $this->initialiser($parametresUrl);
$liste = $parametres->getListe('masque.id');
 
$this->assertTrue(is_array($liste));
$this->assertCount(3, $liste);
$this->assertContains(12, $liste);
$this->assertContains(15, $liste);
$this->assertContains(18, $liste);
}
 
public function testerIterateur() {
$parametresUrl = array('code1' => 'val1', 'code2' => 'val2', 'code3' => 'val3');
 
$parametres = $this->initialiser($parametresUrl);
 
$parametres->rewind();
$code = $parametres->key();
$valeur = $parametres->current();
$this->assertEquals('code1', $code);
$this->assertEquals('val1', $valeur);
 
$parametres->next();
$code = $parametres->key();
$valeur = $parametres->current();
$this->assertEquals('code2', $code);
$this->assertEquals('val2', $valeur);
 
$parametres->next();
$code = $parametres->key();
$valeur = $parametres->current();
$this->assertEquals('code3', $code);
$this->assertEquals('val3', $valeur);
 
$parametres->next();
$this->assertFalse($parametres->valid());
 
$parametres->rewind();
$this->assertTrue($parametres->valid());
$code = $parametres->key();
$this->assertEquals('code1', $code);
}
 
}
/trunk/services/tests/0.2/bibliotheque/ProjetTest.php
New file
0,0 → 1,64
<?php
require_once dirname(__FILE__).'/../ServicePhpUnit.php';
 
class ProjetTest extends ServicePhpUnit {
 
private function initialiser($ressourcesUrl = array()) {
$ressources = new Ressources($ressourcesUrl);
$projet = new Projet($ressources);
$projet->setCheminBase(realpath(dirname(__FILE__).'/../../../modules/0.2').'/');
$projet->setCheminConfig(realpath(dirname(__FILE__).'/../../../configurations').'/');
$projet->setCheminBiblio(realpath(dirname(__FILE__).'/../../../bibliotheque').'/');
$paramsVerif = $this->getMock('ParametresVerificateur');
$projet->setParamsVerif($paramsVerif);
$ressourcesVerif = $this->getMock('RessourcesVerificateur');
$projet->setRessourcesVerif($ressourcesVerif);
return $projet;
}
 
public function testerInitialiserAutoLoad() {
$ressourcesUrl = array('fournier', 'noms', '1');
 
$projet = $this->initialiser($ressourcesUrl);
$projet->initialiser();
 
$nomDetails = $this->getMock('NomDetailsGenerique');
$test = new NomDetailsFournier($nomDetails);
}
 
public function testerInitialiserConfig() {
$ressourcesUrl = array('fournier', 'noms', '1');
 
$projet = $this->initialiser($ressourcesUrl);
$projet->initialiser();
 
$this->assertNotNull(Config::get('nomProjet'));
$this->assertNotNull(Config::get('bddTable'));
$this->assertNotNull(Config::get('bddTableMeta'));
$this->assertNotNull(Config::get('baseServiceUrl'));
$this->assertNotNull(Config::get('baseProjetUrl'));
$this->assertNotNull(Config::get('listeUrl'));
$this->assertNotNull(Config::get('detailsHrefTpl'));
$this->assertNotNull(Config::get('ontologieHrefTpl'));
$this->assertNotNull(Config::get('servicesDispo'));
$this->assertNotNull(Config::get('parametresAPI'));
$this->assertNotNull(Config::get('champsProjet'));
}
 
public function testerVerifierExistanceClasseService() {
$ressourcesUrl = array('fournier', 'ServiceInexistant', '1');
 
$projet = $this->initialiser($ressourcesUrl);
 
try {
$projet->verifier();
} catch(Exception $e) {
$messageAttendu = "La classe du service demandé 'ServiceInexistant' n'existe pas dans le projet 'fournier' !";
$this->assertEquals($messageAttendu, $e->getMessage());
$this->assertEquals(404, $e->getCode());
return null;
}
$this->fail("Aucune exception n'a été soulevée.");
}
}
?>
/trunk/services/tests/0.2/bibliotheque/EnteteHttpTest.php
New file
0,0 → 1,14
<?php
require_once dirname(__FILE__).'/../ServicePhpUnit.php';
 
class EnteteHttpTest extends ServicePhpUnit {
 
public function testerEnteteHttpParDefaut() {
$enteteHttp = new EnteteHttp();
 
$this->assertEquals('200', $enteteHttp->code);
$this->assertEquals('utf-8', $enteteHttp->encodage);
$this->assertEquals('application/json', $enteteHttp->mime);
}
}
?>