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

Contents of /trunk/tests/testREST.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4526 - (show 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 <?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 $pathSrc = "../var/digitalization/Todo/PA0130551200001";
352 //Nom dossier destination
353 $pathDes = "../var/digitalization/Done/PA0130551200001";
354 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 $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 }
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 $this->assertEquals(_("Mise a jour des donnees realisees avec succes"),
812 $messageSenderRest->getResponse());
813 //}}}
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