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

Annotation of /trunk/tests/testREST.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4538 - (hide annotations)
Wed Jun 22 13:54:04 2016 UTC (8 years, 7 months ago) by fmichon
File size: 32481 byte(s)
* Tests : Déplacement du testcase PHPUnit de vérification du WS de 
  synchronisation des utilisateurs dans le TestCase RobotFramework
  déjà dédié à cet usage.

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

Properties

Name Value
svn:executable

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26