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

Contents of /trunk/tests/testREST.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3797 - (show 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 <?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