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

Annotation of /trunk/tests/testREST.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3797 - (hide annotations)
Fri Mar 18 17:20:15 2016 UTC (8 years, 10 months ago) by nhaye
File size: 34184 byte(s)
Suppression des tests dépendant de la géolocalisation

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     * Test le retour d'avis d'une consultation sans fichier de consultation
564     */
565     public function testConsultationSansFichier() {
566    
567     // Lien à envoyer
568     $url = $this->base_url.'services/rest_entry.php/consultations/3';
569     // Mode de la requête
570     $request = 'PUT';
571     // Données à envoyer
572     $postfields = array(
573     'date_retour' => '15/01/2013',
574     'avis' => 'Favorable',
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->assertEquals($message, 'L\'avis de la consultation 3 a été pris en compte');
582    
583     //Deuxième jet pour autre message
584    
585     // Initialisation cURL
586     $message = $this->init_cURL($url, $request, $postfields);
587    
588     // On vérifie le retour de la session cURL
589     $this->assertEquals($message, 'Un retour d\'avis a déjà été rendu pour la consultation \'3\'.');
590     }
591    
592     /**
593     * Test le retour d'avis d'une consultation avec fichier de consultation
594     */
595     public function testConsultationAvecFichier() {
596    
597     // Lien à envoyer
598     $url = $this->base_url.'services/rest_entry.php/consultations/4';
599     // Mode de la requête
600     $request = 'PUT';
601     // Données à envoyer
602     $postfields = array(
603     'date_retour' => '15/03/2013',
604     'avis' => 'Favorable',
605     'fichier_base64' => 'JVBERi0xLjQKJcOkw7zDtsOfCjIgM',
606     'nom_fichier' => 'plop.pdf',
607     );
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, 'L\'avis de la consultation 4 a été pris en compte');
614    
615     //Deuxième jet pour autre message
616    
617     // Initialisation cURL
618     $message = $this->init_cURL($url, $request, $postfields);
619    
620     // On vérifie le retour de la session cURL
621     $this->assertEquals($message, 'Un retour d\'avis a déjà été rendu pour la consultation \'4\'.');
622     }
623    
624     /**
625     * Test le retour de message
626     */
627     public function testMessage() {
628    
629     // Lien à envoyer
630     $url = $this->base_url.'services/rest_entry.php/messages';
631     // Mode de la requête
632     $request = 'POST';
633     // Données à envoyer
634     $postfields = array(
635     'type' => 'Mise à jour de complétude ERP ACC',
636     'date' => '16/06/2014 14:12',
637     'emetteur' => 'John Doe',
638     'dossier_instruction' => 'PC0130551200001P0',
639     'contenu' => array(
640     'Complétude ERP ACC' => 'non',
641     'Motivation Complétude ERP ACC' => 'Lorem ipsum dolor sit amet...'),
642     );
643    
644     // Initialisation cURL
645     $message = $this->init_cURL($url, $request, $postfields);
646    
647     // On vérifie le retour de la session cURL
648     $this->assertEquals($message, 'Insertion du message \'Mise à jour de complétude ERP ACC\' OK.');
649    
650     // On change les postfields
651     $postfields = array(
652     'type' => 'Mise à jour de complétude ERP SECU',
653     'date' => '16/06/2014 14:12',
654     'emetteur' => 'John Doe',
655     'dossier_instruction' => 'PC0130551200001P0',
656     'contenu' => array(
657     'Complétude ERP SECU' => 'oui',
658     'Motivation Complétude ERP SECU' => 'Lorem ipsum dolor sit amet...'),
659     );
660    
661     // Initialisation cURL
662     $message = $this->init_cURL($url, $request, $postfields);
663    
664     // On vérifie le retour de la session cURL
665     $this->assertEquals($message, 'Insertion du message \'Mise à jour de complétude ERP SECU\' OK.');
666    
667     // On change les postfields
668     $postfields = array(
669     'type' => 'Mise à jour de qualification',
670     'date' => '16/06/2014 14:12',
671     'emetteur' => 'John Doe',
672     'dossier_instruction' => 'PC0130551200001P0',
673     'contenu' => array(
674     'Confirmation ERP' => 'oui',
675     'Type de dossier ERP' => 'Lorem ipsum dolor sit amet...',
676     'Catégorie de dossier ERP' => 'Lorem ipsum dolor sit amet...'),
677     );
678    
679     // Initialisation cURL
680     $message = $this->init_cURL($url, $request, $postfields);
681    
682     // On vérifie le retour de la session cURL
683     $this->assertEquals($message, 'Insertion du message \'Mise à jour de qualification\' OK.');
684    
685     // On change les postfields
686     $postfields = array(
687     'type' => 'Dossier à enjeux ERP',
688     'date' => '16/06/2014 14:12',
689     'emetteur' => 'John Doe',
690     'dossier_instruction' => 'PC0130551200001P0',
691     'contenu' => array(
692     'Dossier à enjeux ERP' => 'oui',),
693     );
694    
695     // Initialisation cURL
696     $message = $this->init_cURL($url, $request, $postfields);
697    
698     // On vérifie le retour de la session cURL
699     $this->assertEquals($message, 'Insertion du message \'Dossier à enjeux ERP\' OK.');
700    
701     }
702    
703     /**
704     * Test la mise à jour de dossier d'autorisation
705     */
706     public function testDossierAutorisationMAJERP() {
707    
708     // Lien à envoyer
709     $url = $this->base_url.'services/rest_entry.php/dossier_autorisations/PC0130551200001';
710     // Mode de la requête
711     $request = 'PUT';
712     // Données à envoyer
713     $postfields = array(
714     'numero_erp' => '12345',
715     );
716    
717     // Initialisation cURL
718     $message = $this->init_cURL($url, $request, $postfields);
719    
720     // On vérifie le retour de la session cURL
721     $this->assertEquals($message, 'Numero ERP du batiment etait assigne au dossier d\'autorisation PC0130551200001');
722     }
723    
724     /**
725     * Test l'ERP ouvert
726     */
727     public function testDossierAutorisationERPOuvert() {
728    
729     // Lien à envoyer
730     $url = $this->base_url.'services/rest_entry.php/dossier_autorisations/PC0130551200001';
731     // Mode de la requête
732     $request = 'PUT';
733     // Données à envoyer
734     $postfields = array(
735     'erp_ouvert' => 'oui',
736     'date_arrete' => '20/04/2013',
737     );
738    
739     // Initialisation cURL
740     $message = $this->init_cURL($url, $request, $postfields);
741    
742     // On vérifie le retour de la session cURL
743     $this->assertEquals($message, 'Signature de l\'ouverture ERP au publique etait enregistre pour le dossier d\'autorisation PC0130551200001');
744     }
745    
746     /**
747     * Test l'arrêté d'un dossier DAT effectué
748     */
749     public function testDossierAutorisationDATArrete() {
750    
751     // Lien à envoyer
752     $url = $this->base_url.'services/rest_entry.php/dossier_autorisations/PC0130551200001';
753     // Mode de la requête
754     $request = 'PUT';
755     // Données à envoyer
756     $postfields = array(
757     'arrete_effectue' => 'oui',
758     'date_arrete' => '04/06/2014',
759     );
760    
761     // Initialisation cURL
762     $message = $this->init_cURL($url, $request, $postfields);
763    
764     /// On vérifie le retour de la session cURL
765     $this->assertEquals($message, 'Signature de l\'ouverture ERP etait enregistre pour le dossier d\'autorisation PC0130551200001');
766     }
767    
768     /**
769     * Test la méthode GET sur un dossier d'autorisation
770     */
771     public function testDossierAutorisationGET() {
772    
773     // Lien à envoyer
774     $url = $this->base_url.'services/rest_entry.php/dossier_autorisations/PC0130551200001';
775     // Mode de la requête
776     $request = 'GET';
777     // Données à envoyer
778     $postfields = '';
779    
780     // Initialisation cURL
781     $message = $this->init_cURL($url, $request, $postfields);
782    
783     // On vérifie le retour de la session cURL
784     $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);
785     }
786    
787     /*
788     * Test de la complétude et la clôture d'un dossier d'instruction
789     * ERP -> ADS
790     */
791     public function testDossierInstructionPut(){
792    
793     //{{{On essaye de mettre à jour un dossier qui n'existe pas
794     // Initialisation de la classe d'envoi de requête REST
795     $messageSenderRest = new MessageSenderRest($this->base_url.
796     "services/rest_entry.php/dossier_instructions/LOREM");
797     // Formatage des données à envoyer
798     $data = array(
799     "message" => "complet",
800     "date" => date("d/m/Y")
801     );
802    
803     // Envoi de la requête
804     $messageSenderRest->execute("PUT", "application/json", json_encode($data));
805    
806     // Vérification de la réponse
807     $this->assertEquals($messageSenderRest->getResponse(),
808     _("Ce dossier n'existe pas"));
809     //}}}
810    
811     //{{{On essaye de mettre à jour un dossier qui existe mais n'est pas un AT
812     // Initialisation de la classe d'envoi de requête REST
813     $messageSenderRest = new MessageSenderRest($this->base_url.
814     "services/rest_entry.php/dossier_instructions/PC0130551200001P0");
815     // Formatage des données à envoyer
816     $data = array(
817     "message" => "complet",
818     "date" => date("d/m/Y")
819     );
820    
821     // Envoi de la requête
822     $messageSenderRest->execute("PUT", "application/json", json_encode($data));
823    
824     // Vérification de la réponse
825     $this->assertEquals($messageSenderRest->getResponse(),
826     _("Ce dossier n'est pas un dossier de type AT"));
827     //}}}
828    
829     //{{{On essaye de mettre à jour un dossier AT en cours d'instruction
830     // Initialisation de la classe d'envoi de requête REST
831     $messageSenderRest = new MessageSenderRest($this->base_url.
832     "services/rest_entry.php/dossier_instructions/AT0130551300001P0");
833     // Formatage des données à envoyer
834     $data = array(
835     "message" => "complet",
836     "date" => date("d/m/Y")
837     );
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     _("Mise a jour des donnees realisees avec succes"));
845     //}}}
846    
847     //{{{On essaye de mettre à jour un dossier sans message
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" => "",
854     "date" => date("d/m/Y")
855     );
856    
857     // Envoi de la requête
858     $messageSenderRest->execute("PUT", "application/json", json_encode($data));
859    
860     // Vérification de la réponse
861     $this->assertEquals($messageSenderRest->getResponse(),
862     _("Aucun message fourni"));
863     //}}}
864    
865     //{{{On essaye de mettre à jour un dossier avec un message qui existe pas
866     // Initialisation de la classe d'envoi de requête REST
867     $messageSenderRest = new MessageSenderRest($this->base_url.
868     "services/rest_entry.php/dossier_instructions/AT0130551300001P0");
869     // Formatage des données à envoyer
870     $data = array(
871     "message" => "test",
872     "date" => date("d/m/Y")
873     );
874    
875     // Envoi de la requête
876     $messageSenderRest->execute("PUT", "application/json", json_encode($data));
877    
878     // Vérification de la réponse
879     $this->assertEquals($messageSenderRest->getResponse(),
880     _("Message fourni incorrect"));
881     //}}}
882    
883     //{{{On essaye de mettre à jour un dossier sans date
884     // Initialisation de la classe d'envoi de requête REST
885     $messageSenderRest = new MessageSenderRest($this->base_url.
886     "services/rest_entry.php/dossier_instructions/AT0130551300001P0");
887     // Formatage des données à envoyer
888     $data = array(
889     "message" => "complet",
890     "date" => null
891     );
892    
893     // Envoi de la requête
894     $messageSenderRest->execute("PUT", "application/json", json_encode($data));
895    
896     // Vérification de la réponse
897     $this->assertEquals($messageSenderRest->getResponse(),
898     _("Aucune date fournie"));
899     //}}}
900    
901     //{{{On essaye de mettre à jour un dossier avec une date mal formatée
902     // Initialisation de la classe d'envoi de requête REST
903     $messageSenderRest = new MessageSenderRest($this->base_url.
904     "services/rest_entry.php/dossier_instructions/AT0130551300001P0");
905     // Formatage des données à envoyer
906     $data = array(
907     "message" => "complet",
908     "date" => date("m/Y")
909     );
910    
911     // Envoi de la requête
912     $messageSenderRest->execute("PUT", "application/json", json_encode($data));
913    
914     // Vérification de la réponse
915     $this->assertEquals($messageSenderRest->getResponse(),
916     _("Date fournie au mauvais format"));
917     //}}}
918    
919     //{{{On ne fourni pas de numéro de dossier d'instruction
920     // Initialisation de la classe d'envoi de requête REST
921     $messageSenderRest = new MessageSenderRest($this->base_url.
922     "services/rest_entry.php/dossier_instructions/");
923    
924     // Envoi de la requête
925     $messageSenderRest->execute("PUT", "application/json", json_encode($data));
926    
927     // Vérification de la réponse
928     $this->assertEquals($messageSenderRest->getResponse(),
929     _("Aucun identifiant fourni pour la ressource"));
930     //}}}
931    
932     //{{{On essaye de mettre à jour un dossier AT déjà clos
933     // Initialisation de la classe d'envoi de requête REST
934     $messageSenderRest = new MessageSenderRest($this->base_url.
935     "services/rest_entry.php/dossier_instructions/AT0130551300001P0");
936     // Formatage des données à envoyer
937     $data = array(
938     "message" => "clos",
939     "date" => date("d/m/Y")
940     );
941    
942     // Envoi de la requête pour clôturé le dossier
943     $messageSenderRest->execute("PUT", "application/json", json_encode($data));
944     // Vérification de la réponse
945     $this->assertEquals($messageSenderRest->getResponse(),
946     _("Mise a jour des donnees realisees avec succes"));
947    
948     // Envoi de la requête pour tester que l'on ne peut pas clôturer une
949     //seconde fois un dossier d'instruction
950     $messageSenderRest->execute("PUT", "application/json", json_encode($data));
951     // Vérification de la réponse
952     $this->assertEquals($messageSenderRest->getResponse(),
953     _("Ce dossier est deja clos"));
954     //}}}
955     }
956     }
957    
958     ?>

Properties

Name Value
svn:executable

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26