/[openfoncier]/trunk/tests/testREST.php
ViewVC logotype

Diff of /trunk/tests/testREST.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 4526 by nmeucci, Wed Jun 22 08:18:23 2016 UTC revision 9245 by softime, Fri Apr 3 09:21:03 2020 UTC
# Line 1  Line 1 
1  <?php  <?php
2  /**  /**
3   * Ce fichier regroupe les tests concernant le REST   * Ce script contient la définition de la classe 'RESTTest'.
4   *   *
5   * @package openads   * @package openads
6   * @version SVN : $Id: testREST.php 6132 2016-03-09 09:18:18Z stimezouaght $:   * @version SVN : $Id$
7   */   */
8    
9  // Fichier nécessaire  require_once "testREST_common.php";
10  require_once "../obj/utils.class.php";  final class RESTTest extends RESTCommon {
11  require_once "../services/outgoing/MessageSenderRest.class.php";      public function setUp(): void {
12            $this->common_setUp();
 /**  
  * Cette classe permet de faire des tests sur les requêtes REST  
  *  
  * Données utilisées :  
  *  
  * Fichiers dans binary_files/test_digitalizedDocument/Transfert_GED  
  *  
  * Les consultations 1 et 2  
  *  
  * Le dossier d'autorisation PC0130551200001  
  *  
  * Le dossier d'instruction PC0130551200001P0  
  */  
 class RESTTest extends PHPUnit_Framework_TestCase {  
   
     var $base_url = '';  
     var $f;  
       
     /**  
      * Méthode lancée en début de traitement  
      */  
     public function setUp() {  
         $this->base_url = 'http://localhost/'.BASE_PATH_URL;  
         // Instancie la timezone  
         date_default_timezone_set('Europe/Paris');  
         echo ' = '.get_class().'.'.str_replace('test_', '', $this->getName())."\r\n";  
         // Instance de la classe Utils  
         require_once '../obj/utils.class.php';  
         @session_start();  
         $_SESSION['collectivite'] = 2;  
         $_SESSION['login'] = 'admin';  
         $_SERVER['REQUEST_URI'] = '';  
         if($this->f === null) {  
             $this->f = new utils('nohtml');  
         }  
   
         // Activation du paramètre d'activation du sig  
         $this->f->db->autoExecute(  
             DB_PREFIXE."om_parametre",  
             array('valeur' => 'sig_externe'),  
             DB_AUTOQUERY_UPDATE,  
             "libelle = 'option_sig' AND om_collectivite IN (1, 2)"  
             );  
     }  
   
     public function onNotSuccessfulTest(Exception $e){  
         echo 'Line '.$e->getLine().' : '.$e->getMessage()."\r\n";  
         parent::onNotSuccessfulTest($e);  
     }  
   
     /**  
      * Méthode lancée en fin de traitement  
      */  
     public function tearDown() {  
           
         // Désactivation du paramètre d'activation du sig  
         $this->f->db->autoExecute(  
             DB_PREFIXE."om_parametre",  
             array('valeur' => 'aucun'),  
             DB_AUTOQUERY_UPDATE,  
             "libelle = 'option_sig' AND om_collectivite IN (1, 2)"  
             );  
     }  
   
     /**  
      * Initialisation pour session cURL  
      * @param  string $url        Lien  
      * @param  string $request    Mode de requête  
      * @param  array $postfields  Données à envoyer  
      * @return mixed              Session cURL  
      */  
     private function init_cURL($url, $request, $postfields) {  
   
         // Initialisation session cURL  
         $curl = curl_init();  
         // Url de la page à récupérer  
         curl_setopt($curl, CURLOPT_URL, $url);  
         // Permet de récupérer le résultat au lieu de l'afficher  
         curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);  
         // Démarrer un nouveau cookie de session  
         curl_setopt($curl, CURLOPT_COOKIESESSION, true);  
         // Requête REST à envoyer (par défaut à GET)  
         switch ($request) {  
             case 'POST':  
                 curl_setopt($curl, CURLOPT_POST, true);  
                 break;  
             case 'PUT':  
                 curl_setopt($curl, CURLOPT_PUT, true);  
                 break;  
         }  
           
         // Si il y a des paramètres à envoyer  
         if ($postfields != '') {  
   
             // Informations à envoyer  
             $postfields = $this->preparePostFields($curl, $postfields, $request);  
         }  
   
         // Retour de la session cURL  
         $return = curl_exec($curl);  
         // Ferme la session cURL  
         curl_close($curl);  
   
         // Message retourné par REST  
         $message = $this->getReturnMessage($return, $request);  
   
         // Retourne le message  
         return $message;  
     }  
   
     /**  
      * Prépare les paramètres à envoyer en cURL  
      * @param  mixed  $curl     Session cURL  
      * @param  array  $array    Tableau des paramètres  
      * @param  string $request  Méthode utilisée (POST/PUT)  
      */  
     private function preparePostFields($curl, $array, $request) {  
           
         // Si c'est une requête POST  
         if ($request == 'POST') {  
               
             // Génère une chaîne de requête en encodage URL  
             $return = http_build_query($array);  
   
             // Données passées en POST  
             curl_setopt($curl, CURLOPT_POSTFIELDS, $return);  
   
         // Sinon c'est une requête PUT  
         } else {  
   
             // Encode le tableau en json  
             $return =  json_encode($array);  
   
             // Crée un fichier temporaire  
             $putData = tmpfile();  
             // Ecrit la chaîne dans le fichier temporaire  
             fwrite($putData, $return);  
             // Place le curseur au début du fichier  
             fseek($putData, 0);  
             // Permet de retourner des données binaires  
             curl_setopt($curl, CURLOPT_BINARYTRANSFER, true);  
             // Le fichier lu par le transfert lors du chargement  
             curl_setopt($curl, CURLOPT_INFILE, $putData);  
             // Taille du fichier en octet attendue  
             curl_setopt($curl, CURLOPT_INFILESIZE, strlen($return));  
   
         }  
           
     }  
   
     /**  
      * Retourne seulement le message du retour REST  
      * @param  string $return Retour du REST  
      * @return string         Message du retour  
      */  
     private function getReturnMessage($return, $request) {  
   
         // Si c'est une requête GET  
         if ($request == 'GET') {  
   
             // Retraite la chaîne  
             $return = substr($return,1,-1);  
             $return = trim($return);  
             $return = preg_replace("(\r\n|\n|\r)",'',$return);  
   
             // On retourne directement le return  
             return $return;  
         }  
   
         // Decode du json et crée un objet  
         $return = json_decode($return);  
           
         // Retourne le message du retour REST  
         return $return->message;  
           
     }  
   
   
     /**  
      * Test le module user de maintenance  
      */  
     public function testMaintenanceUser() {  
   
         // Lien à envoyer  
         $url = $this->base_url.'services/rest_entry.php/maintenance';  
         // Mode de la requête  
         $request = 'POST';  
         // Données à envoyer  
         $postfields = array(  
             'module' => 'user',  
             'data' => 'NA',  
         );  
   
         // Initialisation cURL  
         $message = $this->init_cURL($url, $request, $postfields);  
           
         // On vérifie le retour de la session cURL  
         $this->assertEquals($message, 'Synchronisation terminée.');  
     }  
   
     /**  
      * Test le module consultation de maintenance  
      */  
     public function testMaintenanceConsultation() {  
   
         // Lien à envoyer  
         $url = $this->base_url.'services/rest_entry.php/maintenance';  
         // Mode de la requête  
         $request = 'POST';  
         // Données à envoyer  
         $postfields = array(  
             'module' => 'consultation',  
             'data' => 'NA',  
         );  
   
         // Initialisation cURL  
         $message = $this->init_cURL($url, $request, $postfields);  
           
         // On vérifie le retour de la session cURL  
         $this->assertEquals($message, '2 consultations mise(s) à jour.');  
   
         //Deuxième jet pour autre message  
           
         // Initialisation cURL  
         $message = $this->init_cURL($url, $request, $postfields);  
   
         // On vérifie le retour de la session cURL  
         $this->assertEquals($message, 'Aucune mise a jour.');  
     }  
   
     /**  
      * Test le module instruction de maintenance  
      */  
     public function testMaintenanceInstruction() {  
   
         // Lien à envoyer  
         $url = $this->base_url.'services/rest_entry.php/maintenance';  
         // Mode de la requête  
         $request = 'POST';  
         // Données à envoyer  
         $postfields = array(  
             'module' => 'instruction',  
             'data' => 'NA',  
         );  
   
         // Initialisation cURL  
         $message = $this->init_cURL($url, $request, $postfields);  
           
         // On vérifie le retour de la session cURL  
         $this->assertEquals($message, '1 dossier(s) mis à jour.');  
     }  
   
   
     /**  
      * Test le module d'import sans l'option de numérisation activée.  
      *  
      * @return void  
      */  
     public function test_maintenance_import_without_option_activated() {  
   
         // Lien à envoyer  
         $url = $this->base_url.'services/rest_entry.php/maintenance';  
         // Mode de la requête  
         $request = 'POST';  
         // Données à  envoyer  
         $postfields = array(  
             'module' => 'import',  
             'data' => array(  
                 'Todo' => '../var/digitalization/Todo',  
                 'Done' => '../var/digitalization/Done'  
             ),  
         );  
   
         // Initialisation cURL  
         $message = $this->init_cURL($url, $request, $postfields);  
   
         // On vérifie le retour de la session cURL  
         $this->assertEquals($message, 'L\'option de numérisation des dossiers n\'est pas activée');  
     }  
   
   
     /**  
      * Test le module de purge sans l'option de numérisation activée.  
      *  
      * @return void  
      */  
     public function test_maintenance_purge_without_option_activated() {  
   
         // Lien à envoyer  
         $url = $this->base_url.'services/rest_entry.php/maintenance';  
         // Mode de la requête  
         $request = 'POST';  
         // Données à envoyer  
         $postfields = array(  
             'module' => 'purge',  
             'data' => array(  
                 'dossier' => '../var/digitalization/Done',  
                 'nombre_de_jour' => "20"  
             ),  
         );  
   
         // Initialisation cURL  
         $message = $this->init_cURL($url, $request, $postfields);  
   
         // On vérifie le retour de la session cURL  
         $this->assertEquals($message, 'L\'option de numérisation des dossiers n\'est pas activée');  
     }  
   
   
     /**  
      * Active l'option de numérisation.  
      *  
      * @return void  
      */  
     public function test_activate_option_digitalization_folder() {  
   
         // Ajoute les options nécessaires à la numérisation  
         chmod('../dyn/config.inc.php', 0777);  
         $config = file_get_contents('../dyn/config.inc.php');  
         $pattern = '\?>';  
         $replace = '$config["digitalization_folder_path"] = "../var/digitalization/";$config["option_digitalization_folder"] = true;?>';  
         $output = preg_replace("/".$pattern."/", $replace, $config);  
         $new_config = file_put_contents('../dyn/config.inc.php', $output);  
   
         //  
         $this->assertNotEquals(false, $new_config);  
     }  
   
   
     /**  
      * Test de non régression concernant une sur consomation de mémoire lors de  
      * l'import des documents numérisés.  
      *  
      * XXX Si ce test sort avec erreur : Trying to get property of non-object  
      * c'est la consomation de mémoire qui explose  
      */  
     public function test_tnr_run_import_out_of_memory() {  
         // Nom de dossier  
         $pathSrc = "../var/digitalization/Todo/PA0130551200001";  
         //Nom dossier destination  
         $pathDes = "../var/digitalization/Done/PA0130551200001";  
         exec("(dd if=/dev/zero of=binary_files/20101106AUTPCP.pdf bs=15485760 count=1) > /dev/null 2>&1");  
         mkdir($pathSrc);  
         chmod($pathSrc, 0777);  
   
         mkdir($pathDes);  
         chmod($pathDes, 0777);  
   
         // Récupération du document  
         for ($i=0; $i < 100; $i++) {  
             copy(  
                 'binary_files/20101106AUTPCP.pdf',  
                 $pathSrc.'/20101106AUTPCP-'.$i.'.pdf'  
             );  
         }  
           
         // Lien à envoyer  
         $url = $this->base_url.'services/rest_entry.php/maintenance';  
         // Mode de la requête  
         $request = 'POST';  
         // Données à  envoyer  
         $postfields = array(  
             'module' => 'import',  
             'data' => array(  
                 'Todo' => '../var/digitalization/Todo',  
                 'Done' => '../var/digitalization/Done'  
             ),  
         );  
   
         // Initialisation cURL  
         $message = $this->init_cURL($url, $request, $postfields);  
           
         // On vérifie le retour de la session cURL  
         $this->assertEquals($message, 'Tous les documents ont été traités');  
   
         //Deuxième jet pour autre message  
           
         // Initialisation cURL  
         $message = $this->init_cURL($url, $request, $postfields);  
           
         // On vérifie le retour de la session cURL  
         $this->assertEquals($message, 'Aucun document à traiter');  
         // Suppression des fichiers importés  
         for ($i=0; $i < 100; $i++) {  
             // Suppression des documents créé  
             unlink($pathDes.'/20101106AUTPCP-'.$i.'.pdf');  
         }  
         // Suppression du dossier PC0130551200005.P0  
         rmdir($pathSrc);  
         rmdir($pathDes);  
     }  
   
   
     /**  
      * Test le module import de maintenance  
      */  
     public function testMaintenanceImport() {  
   
         // Création du dossier PC0130551200001.P0 dans le dossier de  
         // numérisation  
         mkdir('../var/digitalization/Todo/PC0130551200001.P0/');  
         chmod('../var/digitalization/Todo/PC0130551200001.P0/', 0777);  
         // Récupération du document  
         copy('binary_files/20091106AUTPCP.pdf', '../var/digitalization/Todo/PC0130551200001.P0/20091106AUTPCP.pdf');  
   
         // Lien à envoyer  
         $url = $this->base_url.'services/rest_entry.php/maintenance';  
         // Mode de la requête  
         $request = 'POST';  
         // Données à  envoyer  
         $postfields = array(  
             'module' => 'import',  
             'data' => array(  
                 'Todo' => '../var/digitalization/Todo',  
                 'Done' => '../var/digitalization/Done'  
             ),  
         );  
   
         // Initialisation cURL  
         $message = $this->init_cURL($url, $request, $postfields);  
           
         // On vérifie le retour de la session cURL  
         $this->assertEquals($message, 'Tous les documents ont été traités');  
   
         //Deuxième jet pour autre message  
           
         // Initialisation cURL  
         $message = $this->init_cURL($url, $request, $postfields);  
           
         // On vérifie le retour de la session cURL  
         $this->assertEquals($message, 'Aucun document à traiter');  
     }  
   
     /**  
      * Test le module purge de maintenance  
      */  
     public function testMaintenancePurge() {  
         mkdir('../var/digitalization/Done/PC0130551200002.P0');  
         touch('../var/digitalization/Done/PC0130551200002.P0/test.pdf');  
         touch('../var/digitalization/Done/PC0130551200001.P0/20091106AUTPCP.pdf',strtotime('-1 month'));  
   
         // Lien à envoyer  
         $url = $this->base_url.'services/rest_entry.php/maintenance';  
         // Mode de la requête  
         $request = 'POST';  
         // Données à envoyer  
         $postfields = array(  
             'module' => 'purge',  
             'data' => array(  
                 'dossier' => '../var/digitalization/Done',  
                 'nombre_de_jour' => "20"  
             ),  
         );  
   
         // Initialisation cURL  
         $message = $this->init_cURL($url, $request, $postfields);  
           
         // On vérifie le retour de la session cURL  
         $this->assertEquals($message, '1 fichier(s) purgé(s) sur 2 dossier(s) traité(s)');  
   
         // Supprime les dossiers créent pour les tests testMaintenanceImport()  
         // et testMaintenancePurge()  
         unlink ('../var/digitalization/Done/PC0130551200002.P0/test.pdf');  
         rmdir('../var/digitalization/Todo/PC0130551200001.P0');  
         rmdir('../var/digitalization/Done/PC0130551200002.P0');  
     }  
   
   
     /**  
      * Désactive l'option de numérisation.  
      *  
      * @return void  
      */  
     public function test_desactivate_option_digitalization_folder() {  
   
         // Supprime les options nécessaires à la numérisation  
         chmod('../dyn/config.inc.php', 0777);  
         $config = file_get_contents('../dyn/config.inc.php');  
         $search = '$config["digitalization_folder_path"] = "../var/digitalization/";$config["option_digitalization_folder"] = true;?>';  
         $replace = "?>";  
         $output = str_replace($search, $replace, $config);  
         $new_config = file_put_contents('../dyn/config.inc.php', $output);  
   
         //  
         $this->assertNotEquals(false, $new_config);  
13      }      }
14        public function tearDown(): void {
15            $this->common_tearDown();
     /**  
      * Permet de tester le service de mise à jour de l'état perimé des DA.  
      */  
     public function testMaintenanceDossierAutorisation() {  
   
         // Lien à envoyer  
         $url = $this->base_url.'services/rest_entry.php/maintenance';  
         // Mode de la requête  
         $request = 'POST';  
         // Données à envoyer  
         $postfields = array(  
             'module' => 'update_dossier_autorisation',  
         );  
   
         // Initialisation cURL  
         $message = $this->init_cURL($url, $request, $postfields);  
           
         // On vérifie le retour de la session cURL  
         $this->assertEquals($message, "1 dossier(s) d'autorisation(s) mis à jour.");  
   
         //Deuxième jet pour autre message  
           
         // Initialisation cURL  
         $message = $this->init_cURL($url, $request, $postfields);  
           
         // On vérifie le retour de la session cURL  
         $this->assertEquals($message, 'Aucune mise à jour');  
     }  
   
     /**  
      * Test le retour d'avis d'une consultation sans fichier de consultation  
      */  
     public function testConsultationSansFichier() {  
   
         // Lien à envoyer  
         $url = $this->base_url.'services/rest_entry.php/consultations/3';  
         // Mode de la requête  
         $request = 'PUT';  
         // Données à envoyer  
         $postfields = array(  
             'date_retour' => '15/01/2013',  
             'avis' => 'Favorable',  
         );  
   
         // Initialisation cURL  
         $message = $this->init_cURL($url, $request, $postfields);  
   
         // On vérifie le retour de la session cURL  
         $this->assertEquals($message, 'L\'avis de la consultation 3 a été pris en compte');  
   
         //Deuxième jet pour autre message  
           
         // Initialisation cURL  
         $message = $this->init_cURL($url, $request, $postfields);  
           
         // On vérifie le retour de la session cURL  
         $this->assertEquals($message, 'Un retour d\'avis a déjà été rendu pour la consultation \'3\'.');  
16      }      }
17        public function onNotSuccessfulTest(Throwable $e): void {
18      /**          $this->common_onNotSuccessfulTest($e);
      * Test le retour d'avis d'une consultation avec fichier de consultation  
      */  
     public function testConsultationAvecFichier() {  
   
         // Lien à envoyer  
         $url = $this->base_url.'services/rest_entry.php/consultations/4';  
         // Mode de la requête  
         $request = 'PUT';  
         // Données à envoyer  
         $postfields = array(  
             'date_retour' => '15/03/2013',  
             'avis' => 'Favorable',  
             'fichier_base64' => 'JVBERi0xLjQKJcOkw7zDtsOfCjIgM',  
             'nom_fichier' => 'plop.pdf',  
         );  
   
         // Initialisation cURL  
         $message = $this->init_cURL($url, $request, $postfields);  
           
         // On vérifie le retour de la session cURL  
         $this->assertEquals($message, 'L\'avis de la consultation 4 a été pris en compte');  
   
         //Deuxième jet pour autre message  
           
         // Initialisation cURL  
         $message = $this->init_cURL($url, $request, $postfields);  
           
         // On vérifie le retour de la session cURL  
         $this->assertEquals($message, 'Un retour d\'avis a déjà été rendu pour la consultation \'4\'.');  
     }  
   
     /**  
      * Test le retour de message  
      */  
     public function testMessage() {  
   
         // Lien à envoyer  
         $url = $this->base_url.'services/rest_entry.php/messages';  
         // Mode de la requête  
         $request = 'POST';  
         // Données à envoyer  
         $postfields = array(  
             'type' => 'Mise à jour de complétude ERP ACC',  
             'date' => '16/06/2014 14:12',  
             'emetteur' => 'John Doe',  
             'dossier_instruction' => 'PC0130551200001P0',  
             'contenu' => array(  
                 'Complétude ERP ACC' => 'non',  
                 'Motivation Complétude ERP ACC' => 'Lorem ipsum dolor sit amet...'),  
         );  
   
         // Initialisation cURL  
         $message = $this->init_cURL($url, $request, $postfields);  
   
         // On vérifie le retour de la session cURL  
         $this->assertEquals($message, 'Insertion du message \'Mise à jour de complétude ERP ACC\' OK.');  
   
         // On change les postfields  
         $postfields = array(  
             'type' => 'Mise à jour de complétude ERP SECU',  
             'date' => '16/06/2014 14:12',  
             'emetteur' => 'John Doe',  
             'dossier_instruction' => 'PC0130551200001P0',  
             'contenu' => array(  
                 'Complétude ERP SECU' => 'oui',  
                 'Motivation Complétude ERP SECU' => 'Lorem ipsum dolor sit amet...'),  
         );  
   
         // Initialisation cURL  
         $message = $this->init_cURL($url, $request, $postfields);  
   
         // On vérifie le retour de la session cURL  
         $this->assertEquals($message, 'Insertion du message \'Mise à jour de complétude ERP SECU\' OK.');  
   
         // On change les postfields  
         $postfields = array(  
             'type' => 'Mise à jour de qualification',  
             'date' => '16/06/2014 14:12',  
             'emetteur' => 'John Doe',  
             'dossier_instruction' => 'PC0130551200001P0',  
             'contenu' => array(  
                 'Confirmation ERP' => 'oui',  
                 'Type de dossier ERP' => 'Lorem ipsum dolor sit amet...',  
                 'Catégorie de dossier ERP' => 'Lorem ipsum dolor sit amet...'),  
         );  
   
         // Initialisation cURL  
         $message = $this->init_cURL($url, $request, $postfields);  
   
         // On vérifie le retour de la session cURL  
         $this->assertEquals($message, 'Insertion du message \'Mise à jour de qualification\' OK.');  
   
         // On change les postfields  
         $postfields = array(  
             'type' => 'Dossier à enjeux ERP',  
             'date' => '16/06/2014 14:12',  
             'emetteur' => 'John Doe',  
             'dossier_instruction' => 'PC0130551200001P0',  
             'contenu' => array(  
                 'Dossier à enjeux ERP' => 'oui',),  
         );  
   
         // Initialisation cURL  
         $message = $this->init_cURL($url, $request, $postfields);  
   
         // On vérifie le retour de la session cURL  
         $this->assertEquals($message, 'Insertion du message \'Dossier à enjeux ERP\' OK.');  
           
     }  
   
     /**  
      * Test la mise à jour de dossier d'autorisation  
      */  
     public function testDossierAutorisationMAJERP() {  
   
         // Lien à envoyer  
         $url = $this->base_url.'services/rest_entry.php/dossier_autorisations/PC0130551200001';  
         // Mode de la requête  
         $request = 'PUT';  
         // Données à envoyer  
         $postfields = array(  
             'numero_erp' => '12345',  
         );  
   
         // Initialisation cURL  
         $message = $this->init_cURL($url, $request, $postfields);  
   
         // On vérifie le retour de la session cURL  
         $this->assertEquals($message, 'Numero ERP du batiment etait assigne au dossier d\'autorisation PC0130551200001');  
     }  
   
     /**  
      * Test l'ERP ouvert  
      */  
     public function testDossierAutorisationERPOuvert() {  
   
         // Lien à envoyer  
         $url = $this->base_url.'services/rest_entry.php/dossier_autorisations/PC0130551200001';  
         // Mode de la requête  
         $request = 'PUT';  
         // Données à envoyer  
         $postfields = array(  
             'erp_ouvert' => 'oui',  
             'date_arrete' => '20/04/2013',  
         );  
   
         // Initialisation cURL  
         $message = $this->init_cURL($url, $request, $postfields);  
   
         // On vérifie le retour de la session cURL  
         $this->assertEquals($message, 'Signature de l\'ouverture ERP au publique etait enregistre pour le dossier d\'autorisation PC0130551200001');  
     }  
   
     /**  
      * Test l'arrêté d'un dossier DAT effectué  
      */  
     public function testDossierAutorisationDATArrete() {  
   
         // Lien à envoyer  
         $url = $this->base_url.'services/rest_entry.php/dossier_autorisations/PC0130551200001';  
         // Mode de la requête  
         $request = 'PUT';  
         // Données à envoyer  
         $postfields = array(  
             'arrete_effectue' => 'oui',  
             'date_arrete' => '04/06/2014',  
         );  
   
         // Initialisation cURL  
         $message = $this->init_cURL($url, $request, $postfields);  
   
         /// On vérifie le retour de la session cURL  
         $this->assertEquals($message, 'Signature de l\'ouverture ERP etait enregistre pour le dossier d\'autorisation PC0130551200001');  
     }  
   
     /**  
      * Test la méthode GET sur un dossier d'autorisation  
      */  
     public function testDossierAutorisationGET() {  
   
         // Lien à envoyer  
         $url = $this->base_url.'services/rest_entry.php/dossier_autorisations/PC0130551200001';  
         // Mode de la requête  
         $request = 'GET';  
         // Données à envoyer  
         $postfields = '';  
   
         // Initialisation cURL  
         $message = $this->init_cURL($url, $request, $postfields);  
   
         // On vérifie le retour de la session cURL  
         $this->assertEquals('"dossier_autorisation": "PC0130551200001",  "dossier_autorisation_type_detaille": "1",  "exercice": "",  "insee": "01234",  "terrain_references_cadastrales": "",  "terrain_adresse_voie_numero": "",  "terrain_adresse_voie": "",  "terrain_adresse_lieu_dit": "",  "terrain_adresse_localite": "",  "terrain_adresse_code_postal": "",  "terrain_adresse_bp": "",  "terrain_adresse_cedex": "",  "terrain_superficie": "",  "arrondissement": "",  "depot_initial": "2012-12-17",  "erp_numero_batiment": "12345",  "erp_ouvert": "f",  "erp_date_ouverture": "2013-04-20",  "erp_arrete_decision": "f",  "erp_date_arrete_decision": "2014-06-04",  "numero_version": "0",  "etat_dossier_autorisation": "1",  "date_depot": "",  "date_decision": "",  "date_validite": "",  "date_chantier": "",  "date_achevement": "",  "avis_decision": "",  "etat_dernier_dossier_instruction_accepte": "",  "dossier_autorisation_libelle": "PC 013055 12 00001",  "om_collectivite": "2",  "cle_acces_citoyen": ""',$message);  
     }  
   
     /*  
      * Test de la complétude et la clôture d'un dossier d'instruction  
      * ERP -> ADS  
      */  
     public function testDossierInstructionPut(){  
               
         //{{{On essaye de mettre à jour un dossier qui n'existe pas  
         // Initialisation de la classe d'envoi de requête REST  
         $messageSenderRest = new MessageSenderRest($this->base_url.  
             "services/rest_entry.php/dossier_instructions/LOREM");  
         // Formatage des données à envoyer  
         $data = array(  
             "message" => "complet",  
             "date" => date("d/m/Y")  
         );  
           
         // Envoi de la requête  
         $messageSenderRest->execute("PUT", "application/json", json_encode($data));  
           
         // Vérification de la réponse  
         $this->assertEquals($messageSenderRest->getResponse(),  
             _("Ce dossier n'existe pas"));  
         //}}}  
           
         //{{{On essaye de mettre à jour un dossier qui existe mais n'est pas un AT  
         // Initialisation de la classe d'envoi de requête REST  
         $messageSenderRest = new MessageSenderRest($this->base_url.  
             "services/rest_entry.php/dossier_instructions/PC0130551200001P0");  
         // Formatage des données à envoyer  
         $data = array(  
             "message" => "complet",  
             "date" => date("d/m/Y")  
         );  
           
         // Envoi de la requête  
         $messageSenderRest->execute("PUT", "application/json", json_encode($data));  
           
         // Vérification de la réponse  
         $this->assertEquals($messageSenderRest->getResponse(),  
             _("Ce dossier n'est pas un dossier de type AT"));  
         //}}}  
           
         //{{{On essaye de mettre à jour un dossier AT en cours d'instruction  
         // Initialisation de la classe d'envoi de requête REST  
         $messageSenderRest = new MessageSenderRest($this->base_url.  
             "services/rest_entry.php/dossier_instructions/AT0130551300001P0");  
         // Formatage des données à envoyer  
         $data = array(  
             "message" => "complet",  
             "date" => date("d/m/Y")  
         );  
           
         // Envoi de la requête  
         $messageSenderRest->execute("PUT", "application/json", json_encode($data));  
           
         // Vérification de la réponse  
         $this->assertEquals(_("Mise a jour des donnees realisees avec succes"),  
             $messageSenderRest->getResponse());  
         //}}}  
           
         //{{{On essaye de mettre à jour un dossier sans message  
         // Initialisation de la classe d'envoi de requête REST  
         $messageSenderRest = new MessageSenderRest($this->base_url.  
             "services/rest_entry.php/dossier_instructions/AT0130551300001P0");  
         // Formatage des données à envoyer  
         $data = array(  
             "message" => "",  
             "date" => date("d/m/Y")  
         );  
           
         // Envoi de la requête  
         $messageSenderRest->execute("PUT", "application/json", json_encode($data));  
           
         // Vérification de la réponse  
         $this->assertEquals($messageSenderRest->getResponse(),  
             _("Aucun message fourni"));  
         //}}}  
           
         //{{{On essaye de mettre à jour un dossier avec un message qui existe pas  
         // Initialisation de la classe d'envoi de requête REST  
         $messageSenderRest = new MessageSenderRest($this->base_url.  
             "services/rest_entry.php/dossier_instructions/AT0130551300001P0");  
         // Formatage des données à envoyer  
         $data = array(  
             "message" => "test",  
             "date" => date("d/m/Y")  
         );  
           
         // Envoi de la requête  
         $messageSenderRest->execute("PUT", "application/json", json_encode($data));  
           
         // Vérification de la réponse  
         $this->assertEquals($messageSenderRest->getResponse(),  
             _("Message fourni incorrect"));  
         //}}}  
           
         //{{{On essaye de mettre à jour un dossier sans date  
         // Initialisation de la classe d'envoi de requête REST  
         $messageSenderRest = new MessageSenderRest($this->base_url.  
             "services/rest_entry.php/dossier_instructions/AT0130551300001P0");  
         // Formatage des données à envoyer  
         $data = array(  
             "message" => "complet",  
             "date" => null  
         );  
           
         // Envoi de la requête  
         $messageSenderRest->execute("PUT", "application/json", json_encode($data));  
           
         // Vérification de la réponse  
         $this->assertEquals($messageSenderRest->getResponse(),  
             _("Aucune date fournie"));  
         //}}}  
           
         //{{{On essaye de mettre à jour un dossier avec une date mal formatée  
         // Initialisation de la classe d'envoi de requête REST  
         $messageSenderRest = new MessageSenderRest($this->base_url.  
             "services/rest_entry.php/dossier_instructions/AT0130551300001P0");  
         // Formatage des données à envoyer  
         $data = array(  
             "message" => "complet",  
             "date" => date("m/Y")  
         );  
           
         // Envoi de la requête  
         $messageSenderRest->execute("PUT", "application/json", json_encode($data));  
           
         // Vérification de la réponse  
         $this->assertEquals($messageSenderRest->getResponse(),  
             _("Date fournie au mauvais format"));  
         //}}}  
           
         //{{{On ne fourni pas de numéro de dossier d'instruction  
         // Initialisation de la classe d'envoi de requête REST  
         $messageSenderRest = new MessageSenderRest($this->base_url.  
             "services/rest_entry.php/dossier_instructions/");  
           
         // Envoi de la requête  
         $messageSenderRest->execute("PUT", "application/json", json_encode($data));  
           
         // Vérification de la réponse  
         $this->assertEquals($messageSenderRest->getResponse(),  
             _("Aucun identifiant fourni pour la ressource"));  
         //}}}  
                   
         //{{{On essaye de mettre à jour un dossier AT déjà clos  
         // Initialisation de la classe d'envoi de requête REST  
         $messageSenderRest = new MessageSenderRest($this->base_url.  
             "services/rest_entry.php/dossier_instructions/AT0130551300001P0");  
         // Formatage des données à envoyer  
         $data = array(  
             "message" => "clos",  
             "date" => date("d/m/Y")  
         );  
           
         // Envoi de la requête pour clôturé le dossier  
         $messageSenderRest->execute("PUT", "application/json", json_encode($data));  
         // Vérification de la réponse  
         $this->assertEquals($messageSenderRest->getResponse(),  
             _("Mise a jour des donnees realisees avec succes"));  
               
         // Envoi de la requête pour tester que l'on ne peut pas clôturer une  
         //seconde fois un dossier d'instruction  
         $messageSenderRest->execute("PUT", "application/json", json_encode($data));  
         // Vérification de la réponse  
         $this->assertEquals($messageSenderRest->getResponse(),  
             _("Ce dossier est deja clos"));  
         //}}}  
19      }      }
20  }  }
   
 ?>  

Legend:
Removed from v.4526  
changed lines
  Added in v.9245

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26