Subversion Repositories eFlore/Projets.eflore-projets

Rev

Rev 897 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

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

class NvjflOntologiesTest extends ServiceEflorePhpUnit {

        // simple test ontologies nvjfl
        // ce qui signifie les ontologies communes aux référentiels (bdtfx, bdtxa, isfan)
        public function testOntoNVJFLSimpleNotExist() {
                $url = '/nvjfl' . ServiceEflorePhpUnit::creerUrl('ontologies', [ 'numStatut:-1' ] );
                $retour = $this->consulterBrut('ontologies', 'nvjfl', [ 'numStatut:-1' ] );
                $this->assertContains($retour, 'Les données recherchées sont introuvables.');
        }

        public function testOntoNVJFLSimpleAttrNotExist() {
                $url = '/nvjfl' . ServiceEflorePhpUnit::creerUrl('ontologies', [ 'blah:1' ] );
                $retour = $this->consulterBrut('ontologies', 'nvjfl', [ 'blah:1' ] );
                $this->assertContains($retour, 'Les données recherchées sont introuvables.');
        }

        public function testOntoNVJFLSimple() {
                $ressource = [ 'numStatut:1' ];
                $url = '/nvjfl' . ServiceEflorePhpUnit::creerUrl('ontologies', $ressource );
                $retour = $this->consulterJson('ontologies', 'nvjfl', $ressource );
                $this->assertNotEmpty($retour, 'données absentes');
                foreach(['id', 'nom', 'code', 'complements', 'classe.id', 'classe', 'classe.href', 'description'] as $v) {
                        $this->assertArrayHasKey($v, $retour, "Le json ne contient pas l'attribut \"$v\". Voir : $url");
                }
        }

        public function testOntoNVJFLMultiples() {
                $ressource = [ implode(',', [ 'numStatut:1', 'numStatut:2', 'genreNombre:10', 'numStatut:-1', 'blah:1' ]) ];
                $url = '/nvjfl' . ServiceEflorePhpUnit::creerUrl('ontologies', $ressource );
                $retour = $this->consulterJson('ontologies', 'nvjfl', $ressource );
                $this->assertNotEmpty($retour, 'données absentes');
                $this->assertEquals(3, count($retour), "Le retour devrait contenir 3 éléments valides. Voir : $url");
                foreach($retour as $k => $e) {
                        $this->assertArrayHasKey($k, $retour, "Le json ne contient pas d'élément '$k'. Voir : $url");
                }
                foreach($retour as $k => $e) {
                        foreach(['id', 'nom', 'code', 'classe.id', 'classe', 'classe.href'] as $v) {
                                $this->assertArrayHasKey($v, $e, "Le json ne contient pas l'attribut \"$v\" pour l'élément \"$k\". Voir : $url");
                        }
                }
                $this->assertEquals('Recommandé ou typique', $retour['numStatut:1']['nom'], "test attribut 'nom' pour numStatut:1. Voir : $url");
                $this->assertEquals('Secondaire ou régional', $retour['numStatut:2']['nom'], "test attribut 'nom' pour numStatut:2. Voir : $url");
                $this->assertEquals('Féminin singulier', $retour['genreNombre:10']['nom'], "test attribut 'nom' pour genreNombre:10. Voir : $url");
                $this->assertEquals('N° Statut', $retour['numStatut:1']['classe'], "test attribut 'classe' pour numStatut:1. Voir : $url");
                $this->assertEquals('N° Genre et nombre', $retour['genreNombre:10']['classe'], "test attribut 'nom' pour genreNombre:10. Voir : $url");
        }
}