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

Contents of /trunk/tests/testREST.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4538 - (show 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 <?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 $pathSrc = "../var/digitalization/Todo/PA0130551200001";
329 //Nom dossier destination
330 $pathDes = "../var/digitalization/Done/PA0130551200001";
331 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 $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 }
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 $this->assertEquals(_("Mise a jour des donnees realisees avec succes"),
789 $messageSenderRest->getResponse());
790 //}}}
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