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

Annotation of /trunk/tests/testREST.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4526 - (hide annotations)
Wed Jun 22 08:18:23 2016 UTC (8 years, 7 months ago) by nmeucci
File size: 33106 byte(s)
* Évolution - Il est dorénavant possible de créer un dossier d'instruction sans
  suffixe dans son numéro. Pour ce faire il faut désactiver l'option dans le
  paramétrage du type de dossier d'instruction.
  Ticket #8261.

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

Properties

Name Value
svn:executable

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26