Rev 856 | Rev 861 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php/** @copyright 2013 Tela Botanica (accueil@tela-botanica.org)* @author Raphaël Droz <raphael@tela-botanica.org>* @license GPL v3 <http://www.gnu.org/licenses/gpl.txt>* @license CECILL v2 <http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt>*/require_once dirname(__FILE__).'/../ServiceEflorePhpUnit.php';class CosteNomsTest extends ServiceEflorePhpUnit {static $P = "coste";static $S = "textes";// test d'obtention d'information sur num_nom connupublic function testRessource() {$url = ServiceEflorePhpUnit::creerUrl(self::$S, array(182));$retour = $this->consulterJson(self::$S, self::$P, array(182));$this->commonTestHeader($retour, $url);$this->assertEquals(1, $retour['entete']['total'], "L'attribut 'total' devrait avoir la valeur 1. Voir : $url");$this->commonTest($retour, $url);// tag peut peut-être varier à travers les décennies ?// testRechercheTag ?$this->assertArrayHasKey('tag', $retour['resultats']['182'], "Le json [182] ne contient pas d'élément tag. Voir : $url");$this->assertContains("HYBRIDA", $retour['resultats']['182']['texte'], "error: ['resultats']['182']['texte']. Voir : $url");}public function testBdtfxRessource() {$url = ServiceEflorePhpUnit::creerUrl(self::$S, array("bdtfx.nn:182"));$retour = $this->consulterJson(self::$S, self::$P, array("bdtfx.nn:182"));$this->commonTestHeader($retour, $url);$this->assertEquals(1, $retour['entete']['total'], "L'attribut 'total' devrait avoir la valeur 1. Voir : $url");$this->commonTest($retour, $url);$this->assertArrayHasKey('tag', $retour['resultats']['182'], "Le json [182] ne contient pas d'élément tag. Voir : $url");$this->assertContains("HYBRIDA", $retour['resultats']['182']['texte'], "error: ['resultats']['182']['texte']. Voir : $url");}public function testRessources() {$url = ServiceEflorePhpUnit::creerUrl(self::$S, array("bdtfx.nn:182,abcd,666"));$retour = $this->consulterJson(self::$S, self::$P, array("bdtfx.nn:182,abcd,666"));$this->commonTestHeader($retour, $url);$this->assertEquals(2, $retour['entete']['total'], "L'attribut 'total' devrait avoir la valeur 2. Voir : $url");$this->commonTest($retour, $url);$this->assertArrayHasKey('titre', $retour['resultats']['182'], "Le json [182] ne contient pas d'élément titre. Voir : $url");$this->assertArrayHasKey('titre', $retour['resultats']['666'], "Le json [666] ne contient pas d'élément titre. Voir : $url");$this->assertEquals("Roemeria violacea", $retour['resultats']['182']['titre'], "error: ['resultats']['182']['titre']. Voir : $url");$this->assertEquals("Silene reflexa", $retour['resultats']['666']['titre'], "error: ['resultats']['666']['titre']. Voir : $url");$url = ServiceEflorePhpUnit::creerUrl(self::$S, array("a,-1,99999"));$retour = $this->consulterBrut(self::$S, self::$P, array("a,-1,99999"));$this->assertEquals("not supported", $retour, "error, Voir : $url");}public function testNonExistantRessource() {$url = ServiceEflorePhpUnit::creerUrl(self::$S, array("-182"));$retour = $this->consulterBrut(self::$S, self::$P, array("-182"));$this->assertEquals("not supported", $retour, "error. Voir : $url");}// les critères se cumulentpublic function testRessourceEtMasque() {$url = ServiceEflorePhpUnit::creerUrl(self::$S, array(182), array("masque.ns" => "ABC"));$retour = $this->consulterJson(self::$S, self::$P, array(182), array("masque.ns" => "ABC"));$this->commonTestHeader($retour, $url);$this->assertEquals(0, $retour['entete']['total'], "L'attribut 'total' devrait avoir la valeur 0. Voir : $url");}public function testRessourceFormatHTML() {$url = ServiceEflorePhpUnit::creerUrl(self::$S, array(182), array('txt.format' => 'htm'));$retour = $this->consulterJson(self::$S, self::$P, array(182), array('txt.format' => 'htm'));$this->assertContains("span class", $retour['resultats']['182']['titre'], "error: ['resultats']['182']['titre']. Voir : $url");}public function testRessourceChamps() {$url = ServiceEflorePhpUnit::creerUrl(self::$S, array(182), array('retour.champs' => 'titre,tome,page,famille'));$retour = $this->consulterJson(self::$S, self::$P, array(182), array('retour.champs' => 'titre,tome,page,famille'));$this->assertEquals(1, count($retour['resultats']), "error: ['resultats']['182']. Voir : $url");$this->assertArrayHasKey("num_nom", $retour['resultats']['182'], "error: ['resultats']['182'], clef num_nom. Voir : $url");$this->assertArrayHasKey("titre", $retour['resultats']['182'], "error: ['resultats']['182'], clef titre. Voir : $url");$this->assertArrayHasKey("tome", $retour['resultats']['182'], "error: ['resultats']['182'], clef tome. Voir : $url");$this->assertArrayHasKey("page", $retour['resultats']['182'], "error: ['resultats']['182'], clef page. Voir : $url");$this->assertArrayHasKey("famille", $retour['resultats']['182'], "error: ['resultats']['182'], clef famille. Voir : $url");$this->assertEquals("1", $retour['resultats']['182']['tome'], "error: ['resultats']['182']['tome']. Voir : $url");$this->assertEquals("62", $retour['resultats']['182']['page'], "error: ['resultats']['182']['page']. Voir : $url");$this->assertEquals("Sapindaceae", $retour['resultats']['182']['famille'], "error: ['resultats']['182']['famille']. Voir : $url");}public function testRechercheNS() {$url = ServiceEflorePhpUnit::creerUrl(self::$S, NULL, array("masque.ns" => "Roemeria", "recherche" => "etendue"));$retour = $this->consulterJson(self::$S, self::$P, NULL, array("masque.ns" => "Roemeria", "recherche" => "etendue"));$this->commonTestHeader($retour, $url);$this->assertEquals(3, $retour['entete']['total'], "L'attribut 'total' devrait avoir la valeur 3. Voir : $url");$this->commonTest($retour, $url);}public function testRechercheTXT() {$url = ServiceEflorePhpUnit::creerUrl(self::$S, NULL, array("masque.txt" => "Nancy"));$retour = $this->consulterJson(self::$S, self::$P, NULL, array("masque.txt" => "Nancy"));$this->assertEquals(2, $retour['entete']['total'], "L'attribut 'total' devrait avoir la valeur 2. Voir : $url");$this->assertArrayHasKey("1774", $retour['resultats'], "error: ['resultats']['1774']. Voir : $url");$this->assertArrayHasKey("1775", $retour['resultats'], "error: ['resultats']['1775']. Voir : $url");$url = ServiceEflorePhpUnit::creerUrl(self::$S, NULL, array("masque.txt" => "Nancy", "recherche" => "floue"));$retour = $this->consulterJson(self::$S, self::$P, NULL, array("masque.txt" => "Nancy", "recherche" => "floue"));$this->assertEquals(2, $retour['entete']['total'], "L'attribut 'total' devrait avoir la valeur 2. Voir : $url");$this->assertArrayHasKey("1774", $retour['resultats'], "error: ['resultats']['1774']. Voir : $url");$this->assertArrayHasKey("1775", $retour['resultats'], "error: ['resultats']['1775']. Voir : $url");$url = ServiceEflorePhpUnit::creerUrl(self::$S, NULL, array("masque.txt" => "Nancy", "masque.tome" => 2));$retour = $this->consulterJson(self::$S, self::$P, NULL, array("masque.txt" => "Nancy", "masque.tome" => 2));$this->assertEquals(1, $retour['entete']['total'], "L'attribut 'total' devrait avoir la valeur 1. Voir : $url");$this->assertArrayHasKey("1774", $retour['resultats'], "error: ['resultats']['1774']. Voir : $url");$url = ServiceEflorePhpUnit::creerUrl(self::$S, NULL, array("masque.txt" => "Nancy", "masque.page" => 0));$retour = $this->consulterJson(self::$S, self::$P, NULL, array("masque.txt" => "Nancy", "masque.page" => 0));$this->assertEquals(1, $retour['entete']['total'], "L'attribut 'total' devrait avoir la valeur 1. Voir : $url");$this->assertArrayHasKey("1775", $retour['resultats'], "error: ['resultats']['1775']. Voir : $url");}// par compatibilité, "titre" signifie une recherche sur "tag" (le titre de la page wiki de la description// ou des clefs de détermination)public function testRechercheTag() {$url = ServiceEflorePhpUnit::creerUrl(self::$S, NULL, array("masque.titre" => "Esp0131RoemeriaViolacea"));$retour = $this->consulterJson(self::$S, self::$P, NULL, array("masque.titre" => "Esp0131RoemeriaViolacea"));$this->commonTestHeader($retour, $url);$this->assertEquals(2, $retour['entete']['total'], "L'attribut 'total' devrait avoir la valeur 2. Voir : $url");$this->commonTest($retour, $url);$this->assertArrayHasKey('tag', $retour['resultats']['182'], "Le json [182] ne contient pas d'élément tag. Voir : $url");$this->assertEquals("Esp0131RoemeriaViolacea", $retour['resultats']['182']['tag'], "error: ['resultats']['182']['tag']. Voir : $url");}public function testRechercheFamille() {// unknown famille$url = ServiceEflorePhpUnit::creerUrl(self::$S, NULL, array("masque.famille" => "ABC"));$retour = $this->consulterJson(self::$S, self::$P, NULL, array("masque.famille" => "ABC"));$this->assertEquals(0, $retour['entete']['total'], "L'attribut 'total' devrait avoir la valeur 0. Voir : $url");// par famille, mais pas de recherche étendue pour ça$url = ServiceEflorePhpUnit::creerUrl(self::$S, NULL, array("masque.famille" => "Sapind"));$retour = $this->consulterJson(self::$S, self::$P, NULL, array("masque.famille" => "Sapind"));$this->assertEquals(0, $retour['entete']['total'], "L'attribut 'total' devrait avoir la valeur 0. Voir : $url");$url = ServiceEflorePhpUnit::creerUrl(self::$S, array(182), array("masque.famille" => "Sapindaceae"));$retour = $this->consulterJson(self::$S, self::$P, array(182), array("masque.famille" => "Sapindaceae"));$this->assertEquals(1, $retour['entete']['total'], "L'attribut 'total' devrait avoir la valeur 1. Voir : $url");$url = ServiceEflorePhpUnit::creerUrl(self::$S, array(182), array("masque.famille" => "Sapind%"));$retour = $this->consulterJson(self::$S, self::$P, array(182), array("masque.famille" => "Sapind%"));$this->assertEquals(1, $retour['entete']['total'], "L'attribut 'total' devrait avoir la valeur 1. Voir : $url");$url = ServiceEflorePhpUnit::creerUrl(self::$S, array(182), array("masque.famille" => "S_pindaceae"));$retour = $this->consulterJson(self::$S, self::$P, array(182), array("masque.famille" => "S_pindaceae"));$this->assertEquals(1, $retour['entete']['total'], "L'attribut 'total' devrait avoir la valeur 1. Voir : $url");}// commonspublic function commonTestHeader($retour, $url) {$this->assertNotEmpty($retour, 'données absentes');$this->assertArrayHasKey('total', $retour['entete'], "Le json ne contient pas d'attribut : total. Voir : $url");}public function commonTest($retour, $url) {$this->assertArrayHasKey('182', $retour['resultats'], "Le json ne contient pas d'élément 182. Voir : $url");$this->assertArrayHasKey('titre', $retour['resultats']['182'], "Le json [182] ne contient pas d'élément titre. Voir : $url");$this->assertArrayHasKey('num_nom', $retour['resultats']['182'], "Le json [182] ne contient pas d'élément num_nom. Voir : $url");$this->assertEquals("Roemeria violacea", $retour['resultats']['182']['titre'], "error: ['resultats']['182']['titre']. Voir : $url");$this->assertEquals("182", $retour['resultats']['182']['num_nom'], "error: ['resultats']['182']['num_nom']. Voir : $url");}}