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

Annotation of /trunk/tests/testREST.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3730 - (hide annotations)
Fri Mar 18 11:50:26 2016 UTC (8 years, 10 months ago) by mbroquet
File size: 35050 byte(s)
Actualisation du trunk
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     /**
192     * Test le retour d'un numéro d'arrêté
193     */
194     public function testArretesRetourNumero() {
195    
196     // Lien à envoyer
197     $url = $this->base_url.'services/rest_entry.php/arretes';
198     // Mode de la requête
199     $request = 'PUT';
200     // Données à envoyer
201     $postfields = array(
202     'numero_arrete' => '21321654',
203     'numero_dossier' => 'AZ0130551200001P0',
204     'etat_transaction' => 'true',
205     'detail_erreur' => '',
206     );
207    
208     // Initialisation cURL
209     $message = $this->init_cURL($url, $request, $postfields);
210    
211     // On vérifie le retour de la session cURL
212     $this->assertEquals($message, 'Le numéro d\'arrêté a été mis à jour.');
213    
214     //Deuxième jet pour autre message
215    
216     // Initialisation cURL
217     $message = $this->init_cURL($url, $request, $postfields);
218    
219     // On vérifie le retour de la session cURL
220     $this->assertEquals($message, 'Erreur : un numéro d\'arrêté existe déjà pour cette instruction');
221     }
222    
223     /**
224     * Test le module user de maintenance
225     */
226     public function testMaintenanceUser() {
227    
228     // Lien à envoyer
229     $url = $this->base_url.'services/rest_entry.php/maintenance';
230     // Mode de la requête
231     $request = 'POST';
232     // Données à envoyer
233     $postfields = array(
234     'module' => 'user',
235     'data' => 'NA',
236     );
237    
238     // Initialisation cURL
239     $message = $this->init_cURL($url, $request, $postfields);
240    
241     // On vérifie le retour de la session cURL
242     $this->assertEquals($message, 'Synchronisation terminée.');
243     }
244    
245     /**
246     * Test le module consultation de maintenance
247     */
248     public function testMaintenanceConsultation() {
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' => 'consultation',
257     'data' => 'NA',
258     );
259    
260     // Initialisation cURL
261     $message = $this->init_cURL($url, $request, $postfields);
262    
263     // On vérifie le retour de la session cURL
264     $this->assertEquals($message, '2 consultations mise(s) à jour.');
265    
266     //Deuxième jet pour autre message
267    
268     // Initialisation cURL
269     $message = $this->init_cURL($url, $request, $postfields);
270    
271     // On vérifie le retour de la session cURL
272     $this->assertEquals($message, 'Aucune mise a jour.');
273     }
274    
275     /**
276     * Test le module instruction de maintenance
277     */
278     public function testMaintenanceInstruction() {
279    
280     // Lien à envoyer
281     $url = $this->base_url.'services/rest_entry.php/maintenance';
282     // Mode de la requête
283     $request = 'POST';
284     // Données à envoyer
285     $postfields = array(
286     'module' => 'instruction',
287     'data' => 'NA',
288     );
289    
290     // Initialisation cURL
291     $message = $this->init_cURL($url, $request, $postfields);
292    
293     // On vérifie le retour de la session cURL
294     $this->assertEquals($message, '1 dossier(s) mis à jour.');
295     }
296    
297    
298     /**
299     * Test le module d'import sans l'option de numérisation activée.
300     *
301     * @return void
302     */
303     public function test_maintenance_import_without_option_activated() {
304    
305     // Lien à envoyer
306     $url = $this->base_url.'services/rest_entry.php/maintenance';
307     // Mode de la requête
308     $request = 'POST';
309     // Données à envoyer
310     $postfields = array(
311     'module' => 'import',
312     'data' => array(
313     'Todo' => '../var/digitalization/Todo',
314     'Done' => '../var/digitalization/Done'
315     ),
316     );
317    
318     // Initialisation cURL
319     $message = $this->init_cURL($url, $request, $postfields);
320    
321     // On vérifie le retour de la session cURL
322     $this->assertEquals($message, 'L\'option de numérisation des dossiers n\'est pas activée');
323     }
324    
325    
326     /**
327     * Test le module de purge sans l'option de numérisation activée.
328     *
329     * @return void
330     */
331     public function test_maintenance_purge_without_option_activated() {
332    
333     // Lien à envoyer
334     $url = $this->base_url.'services/rest_entry.php/maintenance';
335     // Mode de la requête
336     $request = 'POST';
337     // Données à envoyer
338     $postfields = array(
339     'module' => 'purge',
340     'data' => array(
341     'dossier' => '../var/digitalization/Done',
342     'nombre_de_jour' => "20"
343     ),
344     );
345    
346     // Initialisation cURL
347     $message = $this->init_cURL($url, $request, $postfields);
348    
349     // On vérifie le retour de la session cURL
350     $this->assertEquals($message, 'L\'option de numérisation des dossiers n\'est pas activée');
351     }
352    
353    
354     /**
355     * Active l'option de numérisation.
356     *
357     * @return void
358     */
359     public function test_activate_option_digitalization_folder() {
360    
361     // Ajoute les options nécessaires à la numérisation
362     chmod('../dyn/config.inc.php', 0777);
363     $config = file_get_contents('../dyn/config.inc.php');
364     $pattern = '\?>';
365     $replace = '$config["digitalization_folder_path"] = "../var/digitalization/";$config["option_digitalization_folder"] = true;?>';
366     $output = preg_replace("/".$pattern."/", $replace, $config);
367     $new_config = file_put_contents('../dyn/config.inc.php', $output);
368    
369     //
370     $this->assertNotEquals(false, $new_config);
371     }
372    
373    
374     /**
375     * Test de non régression concernant une sur consomation de mémoire lors de
376     * l'import des documents numérisés.
377     *
378     * XXX Si ce test sort avec erreur : Trying to get property of non-object
379     * c'est la consomation de mémoire qui explose
380     */
381     public function test_tnr_run_import_out_of_memory() {
382     // Nom de dossier
383     $pathSrc = "../var/digitalization/Todo/PA0130551200001.P0";
384     //Nom dossier destination
385     $pathDes = "../var/digitalization/Done/PA0130551200001.P0";
386     exec("(dd if=/dev/zero of=binary_files/20101106AUTPCP.pdf bs=15485760 count=1) > /dev/null 2>&1");
387     mkdir($pathSrc);
388     chmod($pathSrc, 0777);
389    
390     mkdir($pathDes);
391     chmod($pathDes, 0777);
392    
393     // Récupération du document
394     for ($i=0; $i < 100; $i++) {
395     copy(
396     'binary_files/20101106AUTPCP.pdf',
397     $pathSrc.'/20101106AUTPCP-'.$i.'.pdf'
398     );
399     }
400    
401     // Lien à envoyer
402     $url = $this->base_url.'services/rest_entry.php/maintenance';
403     // Mode de la requête
404     $request = 'POST';
405     // Données à envoyer
406     $postfields = array(
407     'module' => 'import',
408     'data' => array(
409     'Todo' => '../var/digitalization/Todo',
410     'Done' => '../var/digitalization/Done'
411     ),
412     );
413    
414     // Initialisation cURL
415     $message = $this->init_cURL($url, $request, $postfields);
416    
417     // On vérifie le retour de la session cURL
418     $this->assertEquals($message, 'Tous les documents ont été traités');
419    
420     //Deuxième jet pour autre message
421    
422     // Initialisation cURL
423     $message = $this->init_cURL($url, $request, $postfields);
424    
425     // On vérifie le retour de la session cURL
426     $this->assertEquals($message, 'Aucun document à traiter');
427     // Suppression des fichiers importés
428     for ($i=0; $i < 100; $i++) {
429     // Suppression des documents créé
430     unlink($pathDes.'/20101106AUTPCP-'.$i.'.pdf');
431     }
432     // Suppression du dossier PC0130551200005.P0
433     rmdir($pathSrc);
434     rmdir($pathDes);
435     }
436    
437    
438     /**
439     * Test le module import de maintenance
440     */
441     public function testMaintenanceImport() {
442    
443     // Création du dossier PC0130551200001.P0 dans le dossier de
444     // numérisation
445     mkdir('../var/digitalization/Todo/PC0130551200001.P0/');
446     chmod('../var/digitalization/Todo/PC0130551200001.P0/', 0777);
447     // Récupération du document
448     copy('binary_files/20091106AUTPCP.pdf', '../var/digitalization/Todo/PC0130551200001.P0/20091106AUTPCP.pdf');
449    
450     // Lien à envoyer
451     $url = $this->base_url.'services/rest_entry.php/maintenance';
452     // Mode de la requête
453     $request = 'POST';
454     // Données à envoyer
455     $postfields = array(
456     'module' => 'import',
457     'data' => array(
458     'Todo' => '../var/digitalization/Todo',
459     'Done' => '../var/digitalization/Done'
460     ),
461     );
462    
463     // Initialisation cURL
464     $message = $this->init_cURL($url, $request, $postfields);
465    
466     // On vérifie le retour de la session cURL
467     $this->assertEquals($message, 'Tous les documents ont été traités');
468    
469     //Deuxième jet pour autre message
470    
471     // Initialisation cURL
472     $message = $this->init_cURL($url, $request, $postfields);
473    
474     // On vérifie le retour de la session cURL
475     $this->assertEquals($message, 'Aucun document à traiter');
476     }
477    
478     /**
479     * Test le module purge de maintenance
480     */
481     public function testMaintenancePurge() {
482     mkdir('../var/digitalization/Done/PC0130551200002.P0');
483     touch('../var/digitalization/Done/PC0130551200002.P0/test.pdf');
484     touch('../var/digitalization/Done/PC0130551200001.P0/20091106AUTPCP.pdf',strtotime('-1 month'));
485    
486     // Lien à envoyer
487     $url = $this->base_url.'services/rest_entry.php/maintenance';
488     // Mode de la requête
489     $request = 'POST';
490     // Données à envoyer
491     $postfields = array(
492     'module' => 'purge',
493     'data' => array(
494     'dossier' => '../var/digitalization/Done',
495     'nombre_de_jour' => "20"
496     ),
497     );
498    
499     // Initialisation cURL
500     $message = $this->init_cURL($url, $request, $postfields);
501    
502     // On vérifie le retour de la session cURL
503     $this->assertEquals($message, '1 fichier(s) purgé(s) sur 2 dossier(s) traité(s)');
504    
505     // Supprime les dossiers créent pour les tests testMaintenanceImport()
506     // et testMaintenancePurge()
507     unlink ('../var/digitalization/Done/PC0130551200002.P0/test.pdf');
508     rmdir('../var/digitalization/Todo/PC0130551200001.P0');
509     rmdir('../var/digitalization/Done/PC0130551200002.P0');
510     }
511    
512    
513     /**
514     * Désactive l'option de numérisation.
515     *
516     * @return void
517     */
518     public function test_desactivate_option_digitalization_folder() {
519    
520     // Supprime les options nécessaires à la numérisation
521     chmod('../dyn/config.inc.php', 0777);
522     $config = file_get_contents('../dyn/config.inc.php');
523     $search = '$config["digitalization_folder_path"] = "../var/digitalization/";$config["option_digitalization_folder"] = true;?>';
524     $replace = "?>";
525     $output = str_replace($search, $replace, $config);
526     $new_config = file_put_contents('../dyn/config.inc.php', $output);
527    
528     //
529     $this->assertNotEquals(false, $new_config);
530     }
531    
532    
533     /**
534     * Permet de tester le service de mise à jour de l'état perimé des DA.
535     */
536     public function testMaintenanceDossierAutorisation() {
537    
538     // Lien à envoyer
539     $url = $this->base_url.'services/rest_entry.php/maintenance';
540     // Mode de la requête
541     $request = 'POST';
542     // Données à envoyer
543     $postfields = array(
544     'module' => 'update_dossier_autorisation',
545     );
546    
547     // Initialisation cURL
548     $message = $this->init_cURL($url, $request, $postfields);
549    
550     // On vérifie le retour de la session cURL
551     $this->assertEquals($message, "1 dossier(s) d'autorisation(s) mis à jour.");
552    
553     //Deuxième jet pour autre message
554    
555     // Initialisation cURL
556     $message = $this->init_cURL($url, $request, $postfields);
557    
558     // On vérifie le retour de la session cURL
559     $this->assertEquals($message, 'Aucune mise à jour');
560     }
561    
562     /**
563     * XXX Le message retourné par le synchronisation peut être différent si le
564     * test n'est pas lancé dans le testsuite.
565     */
566     public function testMaintenanceSynchronisationContrainte() {
567    
568     // Lien à envoyer
569     $url = $this->base_url.'services/rest_entry.php/maintenance';
570     // Mode de la requête
571     $request = 'POST';
572     // Données à envoyer
573     $postfields = array(
574     'module' => 'contrainte',
575     );
576    
577     // Initialisation cURL
578     $message = $this->init_cURL($url, $request, $postfields);
579    
580     // On vérifie le retour de la session cURL
581     $this->assertContains("2 contrainte(s) ajoutée(s).", $message);
582     $this->assertContains("Aucune contraintes à modifier.", $message);
583     $this->assertContains("4 contrainte(s) archivée(s).", $message);
584     }
585    
586     /**
587     * Test le retour d'avis d'une consultation sans fichier de consultation
588     */
589     public function testConsultationSansFichier() {
590    
591     // Lien à envoyer
592     $url = $this->base_url.'services/rest_entry.php/consultations/3';
593     // Mode de la requête
594     $request = 'PUT';
595     // Données à envoyer
596     $postfields = array(
597     'date_retour' => '15/01/2013',
598     'avis' => 'Favorable',
599     );
600    
601     // Initialisation cURL
602     $message = $this->init_cURL($url, $request, $postfields);
603    
604     // On vérifie le retour de la session cURL
605     $this->assertEquals($message, 'L\'avis de la consultation 3 a été pris en compte');
606    
607     //Deuxième jet pour autre message
608    
609     // Initialisation cURL
610     $message = $this->init_cURL($url, $request, $postfields);
611    
612     // On vérifie le retour de la session cURL
613     $this->assertEquals($message, 'Un retour d\'avis a déjà été rendu pour la consultation \'3\'.');
614     }
615    
616     /**
617     * Test le retour d'avis d'une consultation avec fichier de consultation
618     */
619     public function testConsultationAvecFichier() {
620    
621     // Lien à envoyer
622     $url = $this->base_url.'services/rest_entry.php/consultations/4';
623     // Mode de la requête
624     $request = 'PUT';
625     // Données à envoyer
626     $postfields = array(
627     'date_retour' => '15/03/2013',
628     'avis' => 'Favorable',
629     'fichier_base64' => 'JVBERi0xLjQKJcOkw7zDtsOfCjIgM',
630     'nom_fichier' => 'plop.pdf',
631     );
632    
633     // Initialisation cURL
634     $message = $this->init_cURL($url, $request, $postfields);
635    
636     // On vérifie le retour de la session cURL
637     $this->assertEquals($message, 'L\'avis de la consultation 4 a été pris en compte');
638    
639     //Deuxième jet pour autre message
640    
641     // Initialisation cURL
642     $message = $this->init_cURL($url, $request, $postfields);
643    
644     // On vérifie le retour de la session cURL
645     $this->assertEquals($message, 'Un retour d\'avis a déjà été rendu pour la consultation \'4\'.');
646     }
647    
648     /**
649     * Test le retour de message
650     */
651     public function testMessage() {
652    
653     // Lien à envoyer
654     $url = $this->base_url.'services/rest_entry.php/messages';
655     // Mode de la requête
656     $request = 'POST';
657     // Données à envoyer
658     $postfields = array(
659     'type' => 'Mise à jour de complétude ERP ACC',
660     'date' => '16/06/2014 14:12',
661     'emetteur' => 'John Doe',
662     'dossier_instruction' => 'PC0130551200001P0',
663     'contenu' => array(
664     'Complétude ERP ACC' => 'non',
665     'Motivation Complétude ERP ACC' => 'Lorem ipsum dolor sit amet...'),
666     );
667    
668     // Initialisation cURL
669     $message = $this->init_cURL($url, $request, $postfields);
670    
671     // On vérifie le retour de la session cURL
672     $this->assertEquals($message, 'Insertion du message \'Mise à jour de complétude ERP ACC\' OK.');
673    
674     // On change les postfields
675     $postfields = array(
676     'type' => 'Mise à jour de complétude ERP SECU',
677     'date' => '16/06/2014 14:12',
678     'emetteur' => 'John Doe',
679     'dossier_instruction' => 'PC0130551200001P0',
680     'contenu' => array(
681     'Complétude ERP SECU' => 'oui',
682     'Motivation Complétude ERP SECU' => 'Lorem ipsum dolor sit amet...'),
683     );
684    
685     // Initialisation cURL
686     $message = $this->init_cURL($url, $request, $postfields);
687    
688     // On vérifie le retour de la session cURL
689     $this->assertEquals($message, 'Insertion du message \'Mise à jour de complétude ERP SECU\' OK.');
690    
691     // On change les postfields
692     $postfields = array(
693     'type' => 'Mise à jour de qualification',
694     'date' => '16/06/2014 14:12',
695     'emetteur' => 'John Doe',
696     'dossier_instruction' => 'PC0130551200001P0',
697     'contenu' => array(
698     'Confirmation ERP' => 'oui',
699     'Type de dossier ERP' => 'Lorem ipsum dolor sit amet...',
700     'Catégorie de dossier ERP' => 'Lorem ipsum dolor sit amet...'),
701     );
702    
703     // Initialisation cURL
704     $message = $this->init_cURL($url, $request, $postfields);
705    
706     // On vérifie le retour de la session cURL
707     $this->assertEquals($message, 'Insertion du message \'Mise à jour de qualification\' OK.');
708    
709     // On change les postfields
710     $postfields = array(
711     'type' => 'Dossier à enjeux ERP',
712     'date' => '16/06/2014 14:12',
713     'emetteur' => 'John Doe',
714     'dossier_instruction' => 'PC0130551200001P0',
715     'contenu' => array(
716     'Dossier à enjeux ERP' => 'oui',),
717     );
718    
719     // Initialisation cURL
720     $message = $this->init_cURL($url, $request, $postfields);
721    
722     // On vérifie le retour de la session cURL
723     $this->assertEquals($message, 'Insertion du message \'Dossier à enjeux ERP\' OK.');
724    
725     }
726    
727     /**
728     * Test la mise à jour de dossier d'autorisation
729     */
730     public function testDossierAutorisationMAJERP() {
731    
732     // Lien à envoyer
733     $url = $this->base_url.'services/rest_entry.php/dossier_autorisations/PC0130551200001';
734     // Mode de la requête
735     $request = 'PUT';
736     // Données à envoyer
737     $postfields = array(
738     'numero_erp' => '12345',
739     );
740    
741     // Initialisation cURL
742     $message = $this->init_cURL($url, $request, $postfields);
743    
744     // On vérifie le retour de la session cURL
745     $this->assertEquals($message, 'Numero ERP du batiment etait assigne au dossier d\'autorisation PC0130551200001');
746     }
747    
748     /**
749     * Test l'ERP ouvert
750     */
751     public function testDossierAutorisationERPOuvert() {
752    
753     // Lien à envoyer
754     $url = $this->base_url.'services/rest_entry.php/dossier_autorisations/PC0130551200001';
755     // Mode de la requête
756     $request = 'PUT';
757     // Données à envoyer
758     $postfields = array(
759     'erp_ouvert' => 'oui',
760     'date_arrete' => '20/04/2013',
761     );
762    
763     // Initialisation cURL
764     $message = $this->init_cURL($url, $request, $postfields);
765    
766     // On vérifie le retour de la session cURL
767     $this->assertEquals($message, 'Signature de l\'ouverture ERP au publique etait enregistre pour le dossier d\'autorisation PC0130551200001');
768     }
769    
770     /**
771     * Test l'arrêté d'un dossier DAT effectué
772     */
773     public function testDossierAutorisationDATArrete() {
774    
775     // Lien à envoyer
776     $url = $this->base_url.'services/rest_entry.php/dossier_autorisations/PC0130551200001';
777     // Mode de la requête
778     $request = 'PUT';
779     // Données à envoyer
780     $postfields = array(
781     'arrete_effectue' => 'oui',
782     'date_arrete' => '04/06/2014',
783     );
784    
785     // Initialisation cURL
786     $message = $this->init_cURL($url, $request, $postfields);
787    
788     /// On vérifie le retour de la session cURL
789     $this->assertEquals($message, 'Signature de l\'ouverture ERP etait enregistre pour le dossier d\'autorisation PC0130551200001');
790     }
791    
792     /**
793     * Test la méthode GET sur un dossier d'autorisation
794     */
795     public function testDossierAutorisationGET() {
796    
797     // Lien à envoyer
798     $url = $this->base_url.'services/rest_entry.php/dossier_autorisations/PC0130551200001';
799     // Mode de la requête
800     $request = 'GET';
801     // Données à envoyer
802     $postfields = '';
803    
804     // Initialisation cURL
805     $message = $this->init_cURL($url, $request, $postfields);
806    
807     // On vérifie le retour de la session cURL
808     $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": "1", "cle_acces_citoyen": ""',$message);
809     }
810    
811     /*
812     * Test de la complétude et la clôture d'un dossier d'instruction
813     * ERP -> ADS
814     */
815     public function testDossierInstructionPut(){
816    
817     //{{{On essaye de mettre à jour un dossier qui n'existe pas
818     // Initialisation de la classe d'envoi de requête REST
819     $messageSenderRest = new MessageSenderRest($this->base_url.
820     "services/rest_entry.php/dossier_instructions/LOREM");
821     // Formatage des données à envoyer
822     $data = array(
823     "message" => "complet",
824     "date" => date("d/m/Y")
825     );
826    
827     // Envoi de la requête
828     $messageSenderRest->execute("PUT", "application/json", json_encode($data));
829    
830     // Vérification de la réponse
831     $this->assertEquals($messageSenderRest->getResponse(),
832     _("Ce dossier n'existe pas"));
833     //}}}
834    
835     //{{{On essaye de mettre à jour un dossier qui existe mais n'est pas un AT
836     // Initialisation de la classe d'envoi de requête REST
837     $messageSenderRest = new MessageSenderRest($this->base_url.
838     "services/rest_entry.php/dossier_instructions/PC0130551200001P0");
839     // Formatage des données à envoyer
840     $data = array(
841     "message" => "complet",
842     "date" => date("d/m/Y")
843     );
844    
845     // Envoi de la requête
846     $messageSenderRest->execute("PUT", "application/json", json_encode($data));
847    
848     // Vérification de la réponse
849     $this->assertEquals($messageSenderRest->getResponse(),
850     _("Ce dossier n'est pas un dossier de type AT"));
851     //}}}
852    
853     //{{{On essaye de mettre à jour un dossier AT en cours d'instruction
854     // Initialisation de la classe d'envoi de requête REST
855     $messageSenderRest = new MessageSenderRest($this->base_url.
856     "services/rest_entry.php/dossier_instructions/AT0130551300001P0");
857     // Formatage des données à envoyer
858     $data = array(
859     "message" => "complet",
860     "date" => date("d/m/Y")
861     );
862    
863     // Envoi de la requête
864     $messageSenderRest->execute("PUT", "application/json", json_encode($data));
865    
866     // Vérification de la réponse
867     $this->assertEquals($messageSenderRest->getResponse(),
868     _("Mise a jour des donnees realisees avec succes"));
869     //}}}
870    
871     //{{{On essaye de mettre à jour un dossier sans message
872     // Initialisation de la classe d'envoi de requête REST
873     $messageSenderRest = new MessageSenderRest($this->base_url.
874     "services/rest_entry.php/dossier_instructions/AT0130551300001P0");
875     // Formatage des données à envoyer
876     $data = array(
877     "message" => "",
878     "date" => date("d/m/Y")
879     );
880    
881     // Envoi de la requête
882     $messageSenderRest->execute("PUT", "application/json", json_encode($data));
883    
884     // Vérification de la réponse
885     $this->assertEquals($messageSenderRest->getResponse(),
886     _("Aucun message fourni"));
887     //}}}
888    
889     //{{{On essaye de mettre à jour un dossier avec un message qui existe pas
890     // Initialisation de la classe d'envoi de requête REST
891     $messageSenderRest = new MessageSenderRest($this->base_url.
892     "services/rest_entry.php/dossier_instructions/AT0130551300001P0");
893     // Formatage des données à envoyer
894     $data = array(
895     "message" => "test",
896     "date" => date("d/m/Y")
897     );
898    
899     // Envoi de la requête
900     $messageSenderRest->execute("PUT", "application/json", json_encode($data));
901    
902     // Vérification de la réponse
903     $this->assertEquals($messageSenderRest->getResponse(),
904     _("Message fourni incorrect"));
905     //}}}
906    
907     //{{{On essaye de mettre à jour un dossier sans date
908     // Initialisation de la classe d'envoi de requête REST
909     $messageSenderRest = new MessageSenderRest($this->base_url.
910     "services/rest_entry.php/dossier_instructions/AT0130551300001P0");
911     // Formatage des données à envoyer
912     $data = array(
913     "message" => "complet",
914     "date" => null
915     );
916    
917     // Envoi de la requête
918     $messageSenderRest->execute("PUT", "application/json", json_encode($data));
919    
920     // Vérification de la réponse
921     $this->assertEquals($messageSenderRest->getResponse(),
922     _("Aucune date fournie"));
923     //}}}
924    
925     //{{{On essaye de mettre à jour un dossier avec une date mal formatée
926     // Initialisation de la classe d'envoi de requête REST
927     $messageSenderRest = new MessageSenderRest($this->base_url.
928     "services/rest_entry.php/dossier_instructions/AT0130551300001P0");
929     // Formatage des données à envoyer
930     $data = array(
931     "message" => "complet",
932     "date" => date("m/Y")
933     );
934    
935     // Envoi de la requête
936     $messageSenderRest->execute("PUT", "application/json", json_encode($data));
937    
938     // Vérification de la réponse
939     $this->assertEquals($messageSenderRest->getResponse(),
940     _("Date fournie au mauvais format"));
941     //}}}
942    
943     //{{{On ne fourni pas de numéro de dossier d'instruction
944     // Initialisation de la classe d'envoi de requête REST
945     $messageSenderRest = new MessageSenderRest($this->base_url.
946     "services/rest_entry.php/dossier_instructions/");
947    
948     // Envoi de la requête
949     $messageSenderRest->execute("PUT", "application/json", json_encode($data));
950    
951     // Vérification de la réponse
952     $this->assertEquals($messageSenderRest->getResponse(),
953     _("Aucun identifiant fourni pour la ressource"));
954     //}}}
955    
956     //{{{On essaye de mettre à jour un dossier AT déjà clos
957     // Initialisation de la classe d'envoi de requête REST
958     $messageSenderRest = new MessageSenderRest($this->base_url.
959     "services/rest_entry.php/dossier_instructions/AT0130551300001P0");
960     // Formatage des données à envoyer
961     $data = array(
962     "message" => "clos",
963     "date" => date("d/m/Y")
964     );
965    
966     // Envoi de la requête pour clôturé le dossier
967     $messageSenderRest->execute("PUT", "application/json", json_encode($data));
968     // Vérification de la réponse
969     $this->assertEquals($messageSenderRest->getResponse(),
970     _("Mise a jour des donnees realisees avec succes"));
971    
972     // Envoi de la requête pour tester que l'on ne peut pas clôturer une
973     //seconde fois un dossier d'instruction
974     $messageSenderRest->execute("PUT", "application/json", json_encode($data));
975     // Vérification de la réponse
976     $this->assertEquals($messageSenderRest->getResponse(),
977     _("Ce dossier est deja clos"));
978     //}}}
979     }
980     }
981    
982     ?>

Properties

Name Value
svn:executable

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26