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('
', $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."); } } ?>