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

Annotation of /trunk/tests/testREST.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4541 - (hide annotations)
Wed Jun 22 15:07:33 2016 UTC (8 years, 7 months ago) by fmichon
File size: 31520 byte(s)
* Tests : Suppression d'un test PHPUnit en doublon (état périmé du DA).

1 mbroquet 3730 <?php
2     /**
3     * Ce fichier regroupe les tests concernant le REST
4     *
5     * @package openads
6     * @version SVN : $Id: testREST.php 6132 2016-03-09 09:18:18Z stimezouaght $:
7     */
8    
9     // Fichier nécessaire
10     require_once "../obj/utils.class.php";
11     require_once "../services/outgoing/MessageSenderRest.class.php";
12    
13     /**
14     * Cette classe permet de faire des tests sur les requêtes REST
15     *
16     * Données utilisées :
17     *
18     * Fichiers dans binary_files/test_digitalizedDocument/Transfert_GED
19     *
20     * Les consultations 1 et 2
21     *
22     * Le dossier d'autorisation PC0130551200001
23     *
24     * Le dossier d'instruction PC0130551200001P0
25     */
26     class RESTTest extends PHPUnit_Framework_TestCase {
27    
28     var $base_url = '';
29     var $f;
30    
31     /**
32     * Méthode lancée en début de traitement
33     */
34     public function setUp() {
35     $this->base_url = 'http://localhost/'.BASE_PATH_URL;
36     // Instancie la timezone
37     date_default_timezone_set('Europe/Paris');
38     echo ' = '.get_class().'.'.str_replace('test_', '', $this->getName())."\r\n";
39     // Instance de la classe Utils
40     require_once '../obj/utils.class.php';
41     @session_start();
42     $_SESSION['collectivite'] = 2;
43     $_SESSION['login'] = 'admin';
44     $_SERVER['REQUEST_URI'] = '';
45     if($this->f === null) {
46     $this->f = new utils('nohtml');
47     }
48    
49     // Activation du paramètre d'activation du sig
50     $this->f->db->autoExecute(
51     DB_PREFIXE."om_parametre",
52     array('valeur' => 'sig_externe'),
53     DB_AUTOQUERY_UPDATE,
54     "libelle = 'option_sig' AND om_collectivite IN (1, 2)"
55     );
56     }
57    
58     public function onNotSuccessfulTest(Exception $e){
59     echo 'Line '.$e->getLine().' : '.$e->getMessage()."\r\n";
60     parent::onNotSuccessfulTest($e);
61     }
62    
63     /**
64     * Méthode lancée en fin de traitement
65     */
66     public function tearDown() {
67    
68     // Désactivation du paramètre d'activation du sig
69     $this->f->db->autoExecute(
70     DB_PREFIXE."om_parametre",
71     array('valeur' => 'aucun'),
72     DB_AUTOQUERY_UPDATE,
73     "libelle = 'option_sig' AND om_collectivite IN (1, 2)"
74     );
75     }
76    
77     /**
78     * Initialisation pour session cURL
79     * @param string $url Lien
80     * @param string $request Mode de requête
81     * @param array $postfields Données à envoyer
82     * @return mixed Session cURL
83     */
84     private function init_cURL($url, $request, $postfields) {
85    
86     // Initialisation session cURL
87     $curl = curl_init();
88     // Url de la page à récupérer
89     curl_setopt($curl, CURLOPT_URL, $url);
90     // Permet de récupérer le résultat au lieu de l'afficher
91     curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
92     // Démarrer un nouveau cookie de session
93     curl_setopt($curl, CURLOPT_COOKIESESSION, true);
94     // Requête REST à envoyer (par défaut à GET)
95     switch ($request) {
96     case 'POST':
97     curl_setopt($curl, CURLOPT_POST, true);
98     break;
99     case 'PUT':
100     curl_setopt($curl, CURLOPT_PUT, true);
101     break;
102     }
103    
104     // Si il y a des paramètres à envoyer
105     if ($postfields != '') {
106    
107     // Informations à envoyer
108     $postfields = $this->preparePostFields($curl, $postfields, $request);
109     }
110    
111     // Retour de la session cURL
112     $return = curl_exec($curl);
113     // Ferme la session cURL
114     curl_close($curl);
115    
116     // Message retourné par REST
117     $message = $this->getReturnMessage($return, $request);
118    
119     // Retourne le message
120     return $message;
121     }
122    
123     /**
124     * Prépare les paramètres à envoyer en cURL
125     * @param mixed $curl Session cURL
126     * @param array $array Tableau des paramètres
127     * @param string $request Méthode utilisée (POST/PUT)
128     */
129     private function preparePostFields($curl, $array, $request) {
130    
131     // Si c'est une requête POST
132     if ($request == 'POST') {
133    
134     // Génère une chaîne de requête en encodage URL
135     $return = http_build_query($array);
136    
137     // Données passées en POST
138     curl_setopt($curl, CURLOPT_POSTFIELDS, $return);
139    
140     // Sinon c'est une requête PUT
141     } else {
142    
143     // Encode le tableau en json
144     $return = json_encode($array);
145    
146     // Crée un fichier temporaire
147     $putData = tmpfile();
148     // Ecrit la chaîne dans le fichier temporaire
149     fwrite($putData, $return);
150     // Place le curseur au début du fichier
151     fseek($putData, 0);
152     // Permet de retourner des données binaires
153     curl_setopt($curl, CURLOPT_BINARYTRANSFER, true);
154     // Le fichier lu par le transfert lors du chargement
155     curl_setopt($curl, CURLOPT_INFILE, $putData);
156     // Taille du fichier en octet attendue
157     curl_setopt($curl, CURLOPT_INFILESIZE, strlen($return));
158    
159     }
160    
161     }
162    
163     /**
164     * Retourne seulement le message du retour REST
165     * @param string $return Retour du REST
166     * @return string Message du retour
167     */
168     private function getReturnMessage($return, $request) {
169    
170     // Si c'est une requête GET
171     if ($request == 'GET') {
172    
173     // Retraite la chaîne
174     $return = substr($return,1,-1);
175     $return = trim($return);
176     $return = preg_replace("(\r\n|\n|\r)",'',$return);
177    
178     // On retourne directement le return
179     return $return;
180     }
181    
182     // Decode du json et crée un objet
183     $return = json_decode($return);
184    
185     // Retourne le message du retour REST
186     return $return->message;
187    
188     }
189    
190     /**
191     * Test le module consultation de maintenance
192     */
193     public function testMaintenanceConsultation() {
194    
195     // Lien à envoyer
196     $url = $this->base_url.'services/rest_entry.php/maintenance';
197     // Mode de la requête
198     $request = 'POST';
199     // Données à envoyer
200     $postfields = array(
201     'module' => 'consultation',
202     'data' => 'NA',
203     );
204    
205     // Initialisation cURL
206     $message = $this->init_cURL($url, $request, $postfields);
207    
208     // On vérifie le retour de la session cURL
209     $this->assertEquals($message, '2 consultations mise(s) à jour.');
210    
211     //Deuxième jet pour autre message
212    
213     // Initialisation cURL
214     $message = $this->init_cURL($url, $request, $postfields);
215    
216     // On vérifie le retour de la session cURL
217     $this->assertEquals($message, 'Aucune mise a jour.');
218     }
219    
220     /**
221     * Test le module instruction de maintenance
222     */
223     public function testMaintenanceInstruction() {
224    
225     // Lien à envoyer
226     $url = $this->base_url.'services/rest_entry.php/maintenance';
227     // Mode de la requête
228     $request = 'POST';
229     // Données à envoyer
230     $postfields = array(
231     'module' => 'instruction',
232     'data' => 'NA',
233     );
234    
235     // Initialisation cURL
236     $message = $this->init_cURL($url, $request, $postfields);
237    
238     // On vérifie le retour de la session cURL
239     $this->assertEquals($message, '1 dossier(s) mis à jour.');
240     }
241    
242    
243     /**
244     * Test le module d'import sans l'option de numérisation activée.
245     *
246     * @return void
247     */
248     public function test_maintenance_import_without_option_activated() {
249    
250     // Lien à envoyer
251     $url = $this->base_url.'services/rest_entry.php/maintenance';
252     // Mode de la requête
253     $request = 'POST';
254     // Données à envoyer
255     $postfields = array(
256     'module' => 'import',
257     'data' => array(
258     'Todo' => '../var/digitalization/Todo',
259     'Done' => '../var/digitalization/Done'
260     ),
261     );
262    
263     // Initialisation cURL
264     $message = $this->init_cURL($url, $request, $postfields);
265    
266     // On vérifie le retour de la session cURL
267     $this->assertEquals($message, 'L\'option de numérisation des dossiers n\'est pas activée');
268     }
269    
270    
271     /**
272     * Test le module de purge sans l'option de numérisation activée.
273     *
274     * @return void
275     */
276     public function test_maintenance_purge_without_option_activated() {
277    
278     // Lien à envoyer
279     $url = $this->base_url.'services/rest_entry.php/maintenance';
280     // Mode de la requête
281     $request = 'POST';
282     // Données à envoyer
283     $postfields = array(
284     'module' => 'purge',
285     'data' => array(
286     'dossier' => '../var/digitalization/Done',
287     'nombre_de_jour' => "20"
288     ),
289     );
290    
291     // Initialisation cURL
292     $message = $this->init_cURL($url, $request, $postfields);
293    
294     // On vérifie le retour de la session cURL
295     $this->assertEquals($message, 'L\'option de numérisation des dossiers n\'est pas activée');
296     }
297    
298    
299     /**
300     * Active l'option de numérisation.
301     *
302     * @return void
303     */
304     public function test_activate_option_digitalization_folder() {
305    
306     // Ajoute les options nécessaires à la numérisation
307     chmod('../dyn/config.inc.php', 0777);
308     $config = file_get_contents('../dyn/config.inc.php');
309     $pattern = '\?>';
310     $replace = '$config["digitalization_folder_path"] = "../var/digitalization/";$config["option_digitalization_folder"] = true;?>';
311     $output = preg_replace("/".$pattern."/", $replace, $config);
312     $new_config = file_put_contents('../dyn/config.inc.php', $output);
313    
314     //
315     $this->assertNotEquals(false, $new_config);
316     }
317    
318    
319     /**
320     * Test de non régression concernant une sur consomation de mémoire lors de
321     * l'import des documents numérisés.
322     *
323     * XXX Si ce test sort avec erreur : Trying to get property of non-object
324     * c'est la consomation de mémoire qui explose
325     */
326     public function test_tnr_run_import_out_of_memory() {
327     // Nom de dossier
328 nmeucci 4526 $pathSrc = "../var/digitalization/Todo/PA0130551200001";
329 mbroquet 3730 //Nom dossier destination
330 nmeucci 4526 $pathDes = "../var/digitalization/Done/PA0130551200001";
331 mbroquet 3730 exec("(dd if=/dev/zero of=binary_files/20101106AUTPCP.pdf bs=15485760 count=1) > /dev/null 2>&1");
332     mkdir($pathSrc);
333     chmod($pathSrc, 0777);
334    
335     mkdir($pathDes);
336     chmod($pathDes, 0777);
337    
338     // Récupération du document
339     for ($i=0; $i < 100; $i++) {
340     copy(
341     'binary_files/20101106AUTPCP.pdf',
342     $pathSrc.'/20101106AUTPCP-'.$i.'.pdf'
343     );
344     }
345    
346     // Lien à envoyer
347     $url = $this->base_url.'services/rest_entry.php/maintenance';
348     // Mode de la requête
349     $request = 'POST';
350     // Données à envoyer
351     $postfields = array(
352     'module' => 'import',
353     'data' => array(
354     'Todo' => '../var/digitalization/Todo',
355     'Done' => '../var/digitalization/Done'
356     ),
357     );
358    
359     // Initialisation cURL
360     $message = $this->init_cURL($url, $request, $postfields);
361    
362     // On vérifie le retour de la session cURL
363     $this->assertEquals($message, 'Tous les documents ont été traités');
364    
365     //Deuxième jet pour autre message
366    
367     // Initialisation cURL
368     $message = $this->init_cURL($url, $request, $postfields);
369    
370     // On vérifie le retour de la session cURL
371     $this->assertEquals($message, 'Aucun document à traiter');
372     // Suppression des fichiers importés
373     for ($i=0; $i < 100; $i++) {
374     // Suppression des documents créé
375     unlink($pathDes.'/20101106AUTPCP-'.$i.'.pdf');
376     }
377     // Suppression du dossier PC0130551200005.P0
378     rmdir($pathSrc);
379     rmdir($pathDes);
380     }
381    
382    
383     /**
384     * Test le module import de maintenance
385     */
386     public function testMaintenanceImport() {
387    
388     // Création du dossier PC0130551200001.P0 dans le dossier de
389     // numérisation
390     mkdir('../var/digitalization/Todo/PC0130551200001.P0/');
391     chmod('../var/digitalization/Todo/PC0130551200001.P0/', 0777);
392     // Récupération du document
393     copy('binary_files/20091106AUTPCP.pdf', '../var/digitalization/Todo/PC0130551200001.P0/20091106AUTPCP.pdf');
394    
395     // Lien à envoyer
396     $url = $this->base_url.'services/rest_entry.php/maintenance';
397     // Mode de la requête
398     $request = 'POST';
399     // Données à envoyer
400     $postfields = array(
401     'module' => 'import',
402     'data' => array(
403     'Todo' => '../var/digitalization/Todo',
404     'Done' => '../var/digitalization/Done'
405     ),
406     );
407    
408     // Initialisation cURL
409     $message = $this->init_cURL($url, $request, $postfields);
410    
411     // On vérifie le retour de la session cURL
412     $this->assertEquals($message, 'Tous les documents ont été traités');
413    
414     //Deuxième jet pour autre message
415    
416     // Initialisation cURL
417     $message = $this->init_cURL($url, $request, $postfields);
418    
419     // On vérifie le retour de la session cURL
420     $this->assertEquals($message, 'Aucun document à traiter');
421     }
422    
423     /**
424     * Test le module purge de maintenance
425     */
426     public function testMaintenancePurge() {
427     mkdir('../var/digitalization/Done/PC0130551200002.P0');
428     touch('../var/digitalization/Done/PC0130551200002.P0/test.pdf');
429     touch('../var/digitalization/Done/PC0130551200001.P0/20091106AUTPCP.pdf',strtotime('-1 month'));
430    
431     // Lien à envoyer
432     $url = $this->base_url.'services/rest_entry.php/maintenance';
433     // Mode de la requête
434     $request = 'POST';
435     // Données à envoyer
436     $postfields = array(
437     'module' => 'purge',
438     'data' => array(
439     'dossier' => '../var/digitalization/Done',
440     'nombre_de_jour' => "20"
441     ),
442     );
443    
444     // Initialisation cURL
445     $message = $this->init_cURL($url, $request, $postfields);
446    
447     // On vérifie le retour de la session cURL
448     $this->assertEquals($message, '1 fichier(s) purgé(s) sur 2 dossier(s) traité(s)');
449    
450     // Supprime les dossiers créent pour les tests testMaintenanceImport()
451     // et testMaintenancePurge()
452     unlink ('../var/digitalization/Done/PC0130551200002.P0/test.pdf');
453     rmdir('../var/digitalization/Todo/PC0130551200001.P0');
454     rmdir('../var/digitalization/Done/PC0130551200002.P0');
455     }
456    
457    
458     /**
459     * Désactive l'option de numérisation.
460     *
461     * @return void
462     */
463     public function test_desactivate_option_digitalization_folder() {
464    
465     // Supprime les options nécessaires à la numérisation
466     chmod('../dyn/config.inc.php', 0777);
467     $config = file_get_contents('../dyn/config.inc.php');
468     $search = '$config["digitalization_folder_path"] = "../var/digitalization/";$config["option_digitalization_folder"] = true;?>';
469     $replace = "?>";
470     $output = str_replace($search, $replace, $config);
471     $new_config = file_put_contents('../dyn/config.inc.php', $output);
472    
473     //
474     $this->assertNotEquals(false, $new_config);
475     }
476    
477     /**
478     * Test le retour d'avis d'une consultation sans fichier de consultation
479     */
480     public function testConsultationSansFichier() {
481    
482     // Lien à envoyer
483     $url = $this->base_url.'services/rest_entry.php/consultations/3';
484     // Mode de la requête
485     $request = 'PUT';
486     // Données à envoyer
487     $postfields = array(
488     'date_retour' => '15/01/2013',
489     'avis' => 'Favorable',
490     );
491    
492     // Initialisation cURL
493     $message = $this->init_cURL($url, $request, $postfields);
494    
495     // On vérifie le retour de la session cURL
496     $this->assertEquals($message, 'L\'avis de la consultation 3 a été pris en compte');
497    
498     //Deuxième jet pour autre message
499    
500     // Initialisation cURL
501     $message = $this->init_cURL($url, $request, $postfields);
502    
503     // On vérifie le retour de la session cURL
504     $this->assertEquals($message, 'Un retour d\'avis a déjà été rendu pour la consultation \'3\'.');
505     }
506    
507     /**
508     * Test le retour d'avis d'une consultation avec fichier de consultation
509     */
510     public function testConsultationAvecFichier() {
511    
512     // Lien à envoyer
513     $url = $this->base_url.'services/rest_entry.php/consultations/4';
514     // Mode de la requête
515     $request = 'PUT';
516     // Données à envoyer
517     $postfields = array(
518     'date_retour' => '15/03/2013',
519     'avis' => 'Favorable',
520     'fichier_base64' => 'JVBERi0xLjQKJcOkw7zDtsOfCjIgM',
521     'nom_fichier' => 'plop.pdf',
522     );
523    
524     // Initialisation cURL
525     $message = $this->init_cURL($url, $request, $postfields);
526    
527     // On vérifie le retour de la session cURL
528     $this->assertEquals($message, 'L\'avis de la consultation 4 a été pris en compte');
529    
530     //Deuxième jet pour autre message
531    
532     // Initialisation cURL
533     $message = $this->init_cURL($url, $request, $postfields);
534    
535     // On vérifie le retour de la session cURL
536     $this->assertEquals($message, 'Un retour d\'avis a déjà été rendu pour la consultation \'4\'.');
537     }
538    
539     /**
540     * Test le retour de message
541     */
542     public function testMessage() {
543    
544     // Lien à envoyer
545     $url = $this->base_url.'services/rest_entry.php/messages';
546     // Mode de la requête
547     $request = 'POST';
548     // Données à envoyer
549     $postfields = array(
550     'type' => 'Mise à jour de complétude ERP ACC',
551     'date' => '16/06/2014 14:12',
552     'emetteur' => 'John Doe',
553     'dossier_instruction' => 'PC0130551200001P0',
554     'contenu' => array(
555     'Complétude ERP ACC' => 'non',
556     'Motivation Complétude ERP ACC' => 'Lorem ipsum dolor sit amet...'),
557     );
558    
559     // Initialisation cURL
560     $message = $this->init_cURL($url, $request, $postfields);
561    
562     // On vérifie le retour de la session cURL
563     $this->assertEquals($message, 'Insertion du message \'Mise à jour de complétude ERP ACC\' OK.');
564    
565     // On change les postfields
566     $postfields = array(
567     'type' => 'Mise à jour de complétude ERP SECU',
568     'date' => '16/06/2014 14:12',
569     'emetteur' => 'John Doe',
570     'dossier_instruction' => 'PC0130551200001P0',
571     'contenu' => array(
572     'Complétude ERP SECU' => 'oui',
573     'Motivation Complétude ERP SECU' => 'Lorem ipsum dolor sit amet...'),
574     );
575    
576     // Initialisation cURL
577     $message = $this->init_cURL($url, $request, $postfields);
578    
579     // On vérifie le retour de la session cURL
580     $this->assertEquals($message, 'Insertion du message \'Mise à jour de complétude ERP SECU\' OK.');
581    
582     // On change les postfields
583     $postfields = array(
584     'type' => 'Mise à jour de qualification',
585     'date' => '16/06/2014 14:12',
586     'emetteur' => 'John Doe',
587     'dossier_instruction' => 'PC0130551200001P0',
588     'contenu' => array(
589     'Confirmation ERP' => 'oui',
590     'Type de dossier ERP' => 'Lorem ipsum dolor sit amet...',
591     'Catégorie de dossier ERP' => 'Lorem ipsum dolor sit amet...'),
592     );
593    
594     // Initialisation cURL
595     $message = $this->init_cURL($url, $request, $postfields);
596    
597     // On vérifie le retour de la session cURL
598     $this->assertEquals($message, 'Insertion du message \'Mise à jour de qualification\' OK.');
599    
600     // On change les postfields
601     $postfields = array(
602     'type' => 'Dossier à enjeux ERP',
603     'date' => '16/06/2014 14:12',
604     'emetteur' => 'John Doe',
605     'dossier_instruction' => 'PC0130551200001P0',
606     'contenu' => array(
607     'Dossier à enjeux ERP' => 'oui',),
608     );
609    
610     // Initialisation cURL
611     $message = $this->init_cURL($url, $request, $postfields);
612    
613     // On vérifie le retour de la session cURL
614     $this->assertEquals($message, 'Insertion du message \'Dossier à enjeux ERP\' OK.');
615    
616     }
617    
618     /**
619     * Test la mise à jour de dossier d'autorisation
620     */
621     public function testDossierAutorisationMAJERP() {
622    
623     // Lien à envoyer
624     $url = $this->base_url.'services/rest_entry.php/dossier_autorisations/PC0130551200001';
625     // Mode de la requête
626     $request = 'PUT';
627     // Données à envoyer
628     $postfields = array(
629     'numero_erp' => '12345',
630     );
631    
632     // Initialisation cURL
633     $message = $this->init_cURL($url, $request, $postfields);
634    
635     // On vérifie le retour de la session cURL
636     $this->assertEquals($message, 'Numero ERP du batiment etait assigne au dossier d\'autorisation PC0130551200001');
637     }
638    
639     /**
640     * Test l'ERP ouvert
641     */
642     public function testDossierAutorisationERPOuvert() {
643    
644     // Lien à envoyer
645     $url = $this->base_url.'services/rest_entry.php/dossier_autorisations/PC0130551200001';
646     // Mode de la requête
647     $request = 'PUT';
648     // Données à envoyer
649     $postfields = array(
650     'erp_ouvert' => 'oui',
651     'date_arrete' => '20/04/2013',
652     );
653    
654     // Initialisation cURL
655     $message = $this->init_cURL($url, $request, $postfields);
656    
657     // On vérifie le retour de la session cURL
658     $this->assertEquals($message, 'Signature de l\'ouverture ERP au publique etait enregistre pour le dossier d\'autorisation PC0130551200001');
659     }
660    
661     /**
662     * Test l'arrêté d'un dossier DAT effectué
663     */
664     public function testDossierAutorisationDATArrete() {
665    
666     // Lien à envoyer
667     $url = $this->base_url.'services/rest_entry.php/dossier_autorisations/PC0130551200001';
668     // Mode de la requête
669     $request = 'PUT';
670     // Données à envoyer
671     $postfields = array(
672     'arrete_effectue' => 'oui',
673     'date_arrete' => '04/06/2014',
674     );
675    
676     // Initialisation cURL
677     $message = $this->init_cURL($url, $request, $postfields);
678    
679     /// On vérifie le retour de la session cURL
680     $this->assertEquals($message, 'Signature de l\'ouverture ERP etait enregistre pour le dossier d\'autorisation PC0130551200001');
681     }
682    
683     /**
684     * Test la méthode GET sur un dossier d'autorisation
685     */
686     public function testDossierAutorisationGET() {
687    
688     // Lien à envoyer
689     $url = $this->base_url.'services/rest_entry.php/dossier_autorisations/PC0130551200001';
690     // Mode de la requête
691     $request = 'GET';
692     // Données à envoyer
693     $postfields = '';
694    
695     // Initialisation cURL
696     $message = $this->init_cURL($url, $request, $postfields);
697    
698     // On vérifie le retour de la session cURL
699 nhaye 4174 $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);
700 mbroquet 3730 }
701    
702     /*
703     * Test de la complétude et la clôture d'un dossier d'instruction
704     * ERP -> ADS
705     */
706     public function testDossierInstructionPut(){
707    
708     //{{{On essaye de mettre à jour un dossier qui n'existe pas
709     // Initialisation de la classe d'envoi de requête REST
710     $messageSenderRest = new MessageSenderRest($this->base_url.
711     "services/rest_entry.php/dossier_instructions/LOREM");
712     // Formatage des données à envoyer
713     $data = array(
714     "message" => "complet",
715     "date" => date("d/m/Y")
716     );
717    
718     // Envoi de la requête
719     $messageSenderRest->execute("PUT", "application/json", json_encode($data));
720    
721     // Vérification de la réponse
722     $this->assertEquals($messageSenderRest->getResponse(),
723     _("Ce dossier n'existe pas"));
724     //}}}
725    
726     //{{{On essaye de mettre à jour un dossier qui existe mais n'est pas un AT
727     // Initialisation de la classe d'envoi de requête REST
728     $messageSenderRest = new MessageSenderRest($this->base_url.
729     "services/rest_entry.php/dossier_instructions/PC0130551200001P0");
730     // Formatage des données à envoyer
731     $data = array(
732     "message" => "complet",
733     "date" => date("d/m/Y")
734     );
735    
736     // Envoi de la requête
737     $messageSenderRest->execute("PUT", "application/json", json_encode($data));
738    
739     // Vérification de la réponse
740     $this->assertEquals($messageSenderRest->getResponse(),
741     _("Ce dossier n'est pas un dossier de type AT"));
742     //}}}
743    
744     //{{{On essaye de mettre à jour un dossier AT en cours d'instruction
745     // Initialisation de la classe d'envoi de requête REST
746     $messageSenderRest = new MessageSenderRest($this->base_url.
747     "services/rest_entry.php/dossier_instructions/AT0130551300001P0");
748     // Formatage des données à envoyer
749     $data = array(
750     "message" => "complet",
751     "date" => date("d/m/Y")
752     );
753    
754     // Envoi de la requête
755     $messageSenderRest->execute("PUT", "application/json", json_encode($data));
756    
757     // Vérification de la réponse
758 nmeucci 3875 $this->assertEquals(_("Mise a jour des donnees realisees avec succes"),
759     $messageSenderRest->getResponse());
760 mbroquet 3730 //}}}
761    
762     //{{{On essaye de mettre à jour un dossier sans message
763     // Initialisation de la classe d'envoi de requête REST
764     $messageSenderRest = new MessageSenderRest($this->base_url.
765     "services/rest_entry.php/dossier_instructions/AT0130551300001P0");
766     // Formatage des données à envoyer
767     $data = array(
768     "message" => "",
769     "date" => date("d/m/Y")
770     );
771    
772     // Envoi de la requête
773     $messageSenderRest->execute("PUT", "application/json", json_encode($data));
774    
775     // Vérification de la réponse
776     $this->assertEquals($messageSenderRest->getResponse(),
777     _("Aucun message fourni"));
778     //}}}
779    
780     //{{{On essaye de mettre à jour un dossier avec un message qui existe pas
781     // Initialisation de la classe d'envoi de requête REST
782     $messageSenderRest = new MessageSenderRest($this->base_url.
783     "services/rest_entry.php/dossier_instructions/AT0130551300001P0");
784     // Formatage des données à envoyer
785     $data = array(
786     "message" => "test",
787     "date" => date("d/m/Y")
788     );
789    
790     // Envoi de la requête
791     $messageSenderRest->execute("PUT", "application/json", json_encode($data));
792    
793     // Vérification de la réponse
794     $this->assertEquals($messageSenderRest->getResponse(),
795     _("Message fourni incorrect"));
796     //}}}
797    
798     //{{{On essaye de mettre à jour un dossier sans date
799     // Initialisation de la classe d'envoi de requête REST
800     $messageSenderRest = new MessageSenderRest($this->base_url.
801     "services/rest_entry.php/dossier_instructions/AT0130551300001P0");
802     // Formatage des données à envoyer
803     $data = array(
804     "message" => "complet",
805     "date" => null
806     );
807    
808     // Envoi de la requête
809     $messageSenderRest->execute("PUT", "application/json", json_encode($data));
810    
811     // Vérification de la réponse
812     $this->assertEquals($messageSenderRest->getResponse(),
813     _("Aucune date fournie"));
814     //}}}
815    
816     //{{{On essaye de mettre à jour un dossier avec une date mal formatée
817     // Initialisation de la classe d'envoi de requête REST
818     $messageSenderRest = new MessageSenderRest($this->base_url.
819     "services/rest_entry.php/dossier_instructions/AT0130551300001P0");
820     // Formatage des données à envoyer
821     $data = array(
822     "message" => "complet",
823     "date" => date("m/Y")
824     );
825    
826     // Envoi de la requête
827     $messageSenderRest->execute("PUT", "application/json", json_encode($data));
828    
829     // Vérification de la réponse
830     $this->assertEquals($messageSenderRest->getResponse(),
831     _("Date fournie au mauvais format"));
832     //}}}
833    
834     //{{{On ne fourni pas de numéro de dossier d'instruction
835     // Initialisation de la classe d'envoi de requête REST
836     $messageSenderRest = new MessageSenderRest($this->base_url.
837     "services/rest_entry.php/dossier_instructions/");
838    
839     // Envoi de la requête
840     $messageSenderRest->execute("PUT", "application/json", json_encode($data));
841    
842     // Vérification de la réponse
843     $this->assertEquals($messageSenderRest->getResponse(),
844     _("Aucun identifiant fourni pour la ressource"));
845     //}}}
846    
847     //{{{On essaye de mettre à jour un dossier AT déjà clos
848     // Initialisation de la classe d'envoi de requête REST
849     $messageSenderRest = new MessageSenderRest($this->base_url.
850     "services/rest_entry.php/dossier_instructions/AT0130551300001P0");
851     // Formatage des données à envoyer
852     $data = array(
853     "message" => "clos",
854     "date" => date("d/m/Y")
855     );
856    
857     // Envoi de la requête pour clôturé le dossier
858     $messageSenderRest->execute("PUT", "application/json", json_encode($data));
859     // Vérification de la réponse
860     $this->assertEquals($messageSenderRest->getResponse(),
861     _("Mise a jour des donnees realisees avec succes"));
862    
863     // Envoi de la requête pour tester que l'on ne peut pas clôturer une
864     //seconde fois un dossier d'instruction
865     $messageSenderRest->execute("PUT", "application/json", json_encode($data));
866     // Vérification de la réponse
867     $this->assertEquals($messageSenderRest->getResponse(),
868     _("Ce dossier est deja clos"));
869     //}}}
870     }
871     }
872    
873     ?>

Properties

Name Value
svn:executable

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26