Subversion Repositories eFlore/Projets.eflore-projets

Rev

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

<?php

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

class SyntaxonsTest extends ServiceEflorePhpUnit {
        
        public function __construct() {
                $this->projet = 'baseveg';
                $this->service = 'syntaxons';
        }
        
        
        //++ ------------------------------------Test des ressources -----------------------------++
        
        //la ressource demandée est t elle connue ?
        public function testRessourceInconnue() {
                $ressourcesList = array(
                                array('inconnue'),
                                array('code:07-2.0.1.0.1-08'),
                                array('relations'),
                                array('cle:bgwsd'),
                                array('cle:5','relations'),
                                array('cle:5','relations','synonymie'),
                                array('cle:5','relations','niveaux-sup'),
                                array('catminat:catminat'),
                                array('catminat:45'),
                                array('catminat:07-2.0.1.0.1-08','inconnu'),
                                array('catminat:07-2.0.1.0.1-08','inconnu','synonymie'),
                                array('catminat:07-2.0.1.0.1-08','relations','inconnu')
                        );
                $parametres = array();
                foreach ($ressourcesList as $ressources) {
                        $retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres);
                        $messageAttendu = "Erreur dans l'url de votre requête : </br> La ressource demandée n'existe pas.";
                        $this->assertEquals($messageAttendu, $retour, "Il faut indiquer si une ressource est eronnée.");
                }
                
        }
        
        
        //++ ------------------------------------Test des parametres -----------------------------++
        
        public function testParametreinconnu() {
                $ressourcesList = array(
                                array('catminat:07-2.0.1.0.1-08'),
                                array('cle:10'),
                                array('catminat:07-2.0.1.0.1-08','relations','niveaux-sup'),
                                array(),
                                array('catminat:07-2.0.1.0.1-07','relations','synonymie'),
                                array('catminat:07-2.0.1.0.1-07','relations')
                        );
                $parametres = array('paramatre' => 'ORD');
                foreach ($ressourcesList as $ressources) {
                        $retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres);
                        $messageAttendu = "Erreur dans les parametres de votre requête :".
                                                                                        " </br> Le paramètre \" paramatre \" n'existe pas.";
                        $this->assertEquals($messageAttendu, $retour,
                                        "Il faut indiquer si le masque est erronné.");
                }
        }
        
        
        public function testMasqueNiveauErronne() {
                $ressourcesList = array(
                array(),
                array('catminat:07-2.0.1.0.1-08','relations','niveaux-sup'),
                );
                $parametres = array('masque.niveau' => 'syn');
                foreach ($ressourcesList as $ressources) {
                        $retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres);
                        $messageAttendu = "Erreur : valeur inconnue pour masque.niveau. valeurs possibles : ALL|ORD|CLA|SUBCLA|SUBORD|SUBALL|ASS|SUBASS|BC|DC|GRPT";
                        $this->assertEquals($messageAttendu, $retour,
                                                "Il faut indiquer si le masque est erronné.");
                }
        }
        
        public function testParametresNavigationNonAutorisesSyntaxonsCode() {
                $ressourcesList = array(
                        array('catminat:07-2.0.1.0.1-08'),
                        array('cle:6'),
                array('catminat:07-2.0.1.0.1-08','relations'),
                );
                $parametres = array('navigation.depart' => '0');
                foreach ($ressourcesList as $ressources) {
                        $retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres);
                        $messageAttendu = $messageAttendu = "Erreur dans les parametres de votre requête :".
                                                                                        " </br> Le paramètre \" navigation.depart \" n'existe pas.";
                        $this->assertEquals($messageAttendu, $retour,
                                                        "Il faut indiquer que le parametre navigation.depart est interdit pour ce sous-service.");
                }
                $parametres = array('navigation.limite' => '10');
                foreach ($ressourcesList as $ressources) {
                        $retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres);
                        $messageAttendu = $messageAttendu = "Erreur dans les parametres de votre requête :".
                                                                                                                                " </br> Le paramètre \" navigation.limite \" n'existe pas.";
                        $this->assertEquals($messageAttendu, $retour,
                                                                                                "Il faut indiquer que le parametre navigation.limite est interdit pour ce sous-service.");
                }
        }
        
        public function testParametresMasqueCatminatNonAutorise() {
                $ressourcesList = array(
                array('catminat:07-2.0.1.0.1-08'),
                array('cle:6'),
                array('catminat:07-2.0.1.0.1-08','relations'),
                array('catminat:07-2.0.1.0.1-08','relations','synonymie')
                );
                $parametres = array('masque.catminat' => '07-2.0.1.0.1-08');
                foreach ($ressourcesList as $ressources) {
                        $retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres);
                        $messageAttendu = $messageAttendu = "Erreur dans les parametres de votre requête :".
                                                                                                                                                " </br> Le paramètre \" masque.catminat \" n'existe pas.";
                        $this->assertEquals($messageAttendu, $retour,
                                        "Il faut indiquer que le parametre masque.catminat est interdit pour ce sous-service.");
                }
                
        }
        
        public function testParametresMasqueFixeNonAutorise() {
                $ressourcesList = array(
                array('catminat:07-2.0.1.0.1-08'),
                array('cle:6'),
                array('catminat:07-2.0.1.0.1-08','relations'),
                );
                $parametres = array('masque.fixe' => '2338');
                foreach ($ressourcesList as $ressources) {
                        $retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres);
                        $messageAttendu = $messageAttendu = "Erreur dans les parametres de votre requête :".
                                                                                                                                                        " </br> Le paramètre \" masque.fixe \" n'existe pas.";
                        $this->assertEquals($messageAttendu, $retour,
                                                "Il faut indiquer que le parametre masque.fixe est interdit pour ce sous-service.");
                }
        
        }
        
        public function testParametresMasqueNiveauNonAutorise() {
                $ressourcesList = array(
                        array('catminat:07-2.0.1.0.1-08'),
                        array('cle:6'),
                        array('catminat:07-2.0.1.0.1-08','relations'),
                        array('catminat:07-2.0.1.0.1-08','relations','synonymie')
                );
                $parametres = array('masque.niveau' => 'ord');
                foreach ($ressourcesList as $ressources) {
                        $retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres);
                        $messageAttendu = $messageAttendu = "Erreur dans les parametres de votre requête :".
                                                                                                " </br> Le paramètre \" masque.niveau \" n'existe pas.";
                        $this->assertEquals($messageAttendu, $retour,
                                        "Il faut indiquer que le parametre masque.niveau est interdit pour ce sous-service.");
                }
        
        }
        
        public function testParametresMasqueRetenuNonAutorise() {
                $ressourcesList = array(
                        array('catminat:07-2.0.1.0.1-08'),
                        array('cle:6'),
                        array('catminat:07-2.0.1.0.1-08','relations'),
                        array('catminat:07-2.0.1.0.1-08','relations','synonymie')
                );
                $parametres = array('masque.retenu' => 'true');
                foreach ($ressourcesList as $ressources) {
                        $retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres);
                        $messageAttendu =  "Erreur dans les parametres de votre requête :".
                                                                                                " </br> Le paramètre \" masque.retenu \" n'existe pas.";
                        $this->assertEquals($messageAttendu, $retour,
                                        "Il faut indiquer que le parametre masque.catminat est interdit pour ce sous-service.");
                }
        
        }
                
        
        
        //++ ------------------------------------Test du retour Json -----------------------------++
        
        public function testJsonBienFormeListes() {
                $ressourcesList = array(
                                array('catminat:07-2.0.1.0.1-08','relations','niveaux-sup'),
                                array(),
                                array('catminat:07-2.0.1.0.1-07','relations','synonymie'),
                                array('catminat:07-2.0.1.0.1-07','relations')
                        );
                $parametres = array();
                foreach ($ressourcesList as $ressources) {
                        $url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
                        $retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
                        $this->assertArrayHasKey('entete', $retour, "Le json ne contient pas d'attribut : entete. Voir : $url");
                        $this->assertArrayHasKey('resultat', $retour, "Le json ne contient pas d'attribut : resultat. Voir : $url");
                }
                
        }
        
        public function testPasDeResultat() {
                $ressourcesList = array(
                        array('catminat:18-5.2.1.6.0-8'),
                        array('catminat:18-5.2.1.6.0-8','relations')
                );
                $parametres = array();
                foreach ($ressourcesList as $ressources) {
                        $url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
                        $retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres);
                        $messageAttendu = "Les données recherchées sont introuvables.";
                        $this->assertEquals($messageAttendu, $retour,"Il faut indiquer si les données recherchées sont introuvables");
                }
                $ressourcesList = array(
                array('catminat:18-5.2.1.6.0-8','relations','synonymie'),
                array('catminat:18-5.2.1.6.0-8','relations','niveaux-sup'),
                );
                $parametres = array();
                foreach ($ressourcesList as $ressources) {
                        $url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
                        $retour = ServiceEflorePhpUnit::consulterBrut($this->service, $this->projet, $ressources, $parametres);
                        $messageAttendu = "\"Les donn\u00e9es recherch\u00e9es sont introuvables\"";
                        $this->assertEquals($messageAttendu, $retour,"Il faut indiquer si les données recherchées sont introuvables");
                }
        
        }
        
        public function testChampsNiveau() {
                $ressources = array();
                $parametres = array('masque.retenu' => 'true');
                $url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
                $retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
                foreach ($retour['resultat'] as $cle => $valeurs) {
                        $this->assertArrayHasKey('niveau.code', $valeurs, "Le json ne contient pas d'attribut : niveau.code . Voir : $url");
                        $this->assertNotEmpty($valeurs['niveau.code']);
                        $this->assertArrayHasKey('niveau.libelle', $valeurs, "Le json ne contient pas d'attribut : niveau.libelle . Voir : $url");
                        $this->assertNotEmpty($valeurs['niveau.libelle']);
                        $this->assertArrayHasKey('niveau.href', $valeurs, "Le json ne contient pas d'attribut : niveau.href . Voir : $url");
                        $this->assertNotEmpty($valeurs['niveau.href']);
                }
                
                $parametres = array('masque.retenu' => 'false');
                $url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
                $retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
                foreach ($retour['resultat'] as $cle => $valeurs) {
                        $this->assertArrayHasKey('niveau.code', $valeurs, "Le json ne contient pas d'attribut : niveau.code . Voir : $url");
                        $this->assertNotEmpty($valeurs['niveau.code']);
                        $this->assertArrayHasKey('niveau.libelle', $valeurs, "Le json ne contient pas d'attribut : niveau.libelle . Voir : $url");
                        $this->assertNotEmpty($valeurs['niveau.libelle']);
                        $this->assertArrayHasKey('niveau.detail', $valeurs, "Le json ne contient pas d'attribut : niveau.detail . Voir : $url");
                        $this->assertNotEmpty($valeurs['niveau.detail']);
                }
        }
        
        public function testMasqueNiveau() {
                $parametres = array('masque.niveau' => 'ORD');

                $url = ServiceEflorePhpUnit::creerUrl($this->service, [], $parametres);
                $retour = $this->consulterJson($this->service, $this->projet, [], $parametres);
                foreach ($retour['resultat'] as $cle => $valeurs) {
                        $this->assertEquals( $valeurs['niveau.code'], 'ORD','le masque.niveau ne fonctionne pas.');
                }

                $url = ServiceEflorePhpUnit::creerUrl($this->service, ['catminat:07-2.0.1.0.1-08','relations','niveaux-sup'], $parametres);
                $retour = $this->consulterJson($this->service, $this->projet, ['catminat:07-2.0.1.0.1-08','relations','niveaux-sup'], $parametres);
                foreach ($retour['resultat'] as $cle => $valeurs) {
                        $this->assertEquals( $valeurs['niveau.code'], 'ORD','le masque.niveau ne fonctionne pas.');
                }

        }
        
        public function testMasqueRetenu() {
                $ressourcesList = array();
                $parametres = array('masque.retenu' => 'true');
                foreach ($ressourcesList as $ressources) {
                        $url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
                        $retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
                        foreach ($retour['resultat'] as $cle => $valeurs) {
                                $this->assertStringStartsNotWith('syn',$valeurs['niveau.code'],'le masque.retenu ne fonctionne pas pour true.');
                        }
                }
                $parametres = array('masque.retenu' => 'false');
                foreach ($ressourcesList as $ressources) {
                        $url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
                        $retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
                        foreach ($retour['resultat'] as $cle => $valeurs) {
                                $this->assertStringStartsWith('syn',$valeurs['niveau.code'],'le masque.retenu ne fonctionne pas pour false.');
                        }
                                
                }
        }
        
        public function testMasqueCatminat() {
                $ressourcesList = array(
                        array(),
                        array('catminat:07-2.0.1.0.1-08','relations','niveaux-sup'),
                );
                $parametres = array('masque.catminat' => '07-2.');
                foreach ($ressourcesList as $ressources) {
                        $url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
                        $retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
                        foreach ($retour['resultat'] as $cle => $valeurs) {
                                $this->assertEquals( $valeurs['code_catminat'], '07/2.','le masque.niveau ne fonctionne pas.');
                        }
                }
        }
        
        public function testMasqueFixe() {
                $ressourcesList = array(
                        array(),
                        array('catminat:07-2.0.1.0.1-08','relations','niveaux-sup'),
                );
                $parametres = array('masque.fixe' => '2322');
                foreach ($ressourcesList as $ressources) {
                        $url = ServiceEflorePhpUnit::creerUrl($this->service, $ressources, $parametres);
                        $retour = $this->consulterJson($this->service, $this->projet, $ressources, $parametres);
                        foreach ($retour['resultat'] as $cle => $valeurs) {
                                $this->assertEquals( $valeurs['code_fixe_nom'], '2322','le masque.fixe ne fonctionne pas.');
                        }
                }
        }
}
?>