Rev 880 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?phprequire_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.");}}?>