Subversion Repositories eFlore/Projets.eflore-projets

Rev

Rev 203 | Go to most recent revision | Blame | Last modification | View Log | RSS feed

<?php
require_once dirname(__FILE__).'/../ServicePhpUnit.php';

class NomDetailsBdtfxTest extends ServicePhpUnit {

        private $nomDetailSqueletteUrl = 'http://localhost/service:eflore:0.2/bdtfx/noms/%s';
        private $ontologieHrefTpl = 'http://localhost/service:eflore:0.2/bdnt/ontologies/rangTaxo:%s';
        private $champsProjet = array(
                'presence_Ga' => 'presence_Ga.code',
                'presence_Co' => 'presence_Co.code'
                );

        public function __construct() {
                $this->projet = 'bdtfx';
                $this->service = 'noms';
                $this->classeTestee = 'NomDetailsGenerique';
        }

        public function initialiserService(NomsListe $service) {
                $service->setDetailsHrefTpl($this->nomDetailSqueletteUrl);
                $service->setOntologieHrefTpl($this->ontologieHrefTpl);
                $service->setChampsProjet($this->champsProjet);
        }

        public function testSansParametres() {
                $ressources = array('85');
                $parametres = array();

                $retour = $this->consulter($ressources, $parametres);

                $this->assertTrue(is_array($retour), 'Retour est un tableau');
                $this->assertArrayHasKey('id', $retour, 'Présence champ id');
                $this->assertSame(85, $retour['id'], 'Valeur champ id = 85');
                $this->assertArrayHasKey('nom_sci', $retour, 'Présence champ nom_sci');

                $this->assertSame('Abutilon theophrasti', $retour['nom_sci'], 'Valeur champ nom_sci = Abutilon theophrasti');
                $this->assertArrayHasKey('nom_retenu.id', $retour, 'Présence champ nom_retenu.id');
                $this->assertSame(85, $retour['nom_retenu.id'], 'Valeur champ nom_sci = 85');
                $this->assertArrayHasKey('nom_retenu', $retour, 'Présence champ nom_retenu');
                $this->assertSame('Abutilon theophrasti', $retour['nom_retenu'], 'Valeur champ nom_retenu = Abutilon theophrasti');
                $this->assertArrayHasKey('nom_retenu.href', $retour, 'Présence champ nom_retenu.href');
                $urlNomRetenuHrefAttendue = sprintf($this->nomDetailSqueletteUrl, 85);
                $this->assertSame($urlNomRetenuHrefAttendue, $retour['nom_retenu.href'], "Valeur champ nom_retenu.href = $urlNomRetenuHrefAttendue");

                $this->assertArrayHasKey('rang.code', $retour, 'Présence champ rang.code');
                $this->assertSame('bdnt.rangTaxo:290', $retour['rang.code'], 'Valeur champ rang.code = bdnt.rangTaxo:290');
                $this->assertArrayHasKey('rang', $retour, 'Présence champ rang');
                $this->assertSame('Espèce', $retour['rang'], 'Valeur champ rang = Espèce');

                $this->assertArrayHasKey('rang.href', $retour, 'Présence champ rang.href');
                $hrefAttendue =sprintf($this->ontologieHrefTpl, 290);
                $this->assertSame($hrefAttendue, $retour['rang.href'], "Valeur champ rang.href = $hrefAttendue");

                $this->assertArrayHasKey('nom_sci.genre', $retour, 'Présence champ nom_sci.genre');
                $this->assertSame('Abutilon', $retour['nom_sci.genre'], "Valeur champ nom_sci.genre = 'Abutilon'");
                $this->assertArrayHasKey('nom_sci.sp', $retour, 'Présence champ nom_sci.sp');
                $this->assertSame('theophrasti', $retour['nom_sci.sp'], "Valeur champ nom_sci.sp = theophrasti");

                $this->assertArrayHasKey('auteur', $retour, 'Présence champ auteur');
                $this->assertSame('Medik.', $retour['auteur'], "Valeur champ auteur = 'Medik.'");

                $this->assertArrayHasKey('presence_Ga.code', $retour, 'Présence champ presence_Ga.code'.print_r($retour,true));
                $this->assertSame('P', $retour['presence_Ga.code'], "Valeur champ presence_Ga.code = 'P'");
                $this->assertArrayHasKey('presence_Co.code', $retour, 'Présence champ "presence_Co.code');
                $this->assertSame('P', $retour['presence_Co.code'], "Valeur champ page = P");
        }

        public function testNomSansCorrespondance() {
                $ressources = array('98940');
                $parametres = array();

                $retour = $this->consulter($ressources, $parametres);

                $this->assertArrayNotHasKey('nom_retenu.id', $retour, 'Abscence champ nom_retenu.id');
                $this->assertArrayHasKey('nom_retenu', $retour, 'Présence champ nom_retenu');
                $this->assertSame(null, $retour['nom_retenu'], 'Valeur champ nom_retenu = null');
                $this->assertArrayNotHasKey('nom_retenu.href', $retour, 'Abscence champ nom_retenu.href');
        }

}
?>