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

Contents of /trunk/tests/testREST.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2112 - (show annotations)
Wed Jul 24 17:08:32 2013 UTC (11 years, 6 months ago) by softime
File size: 18609 byte(s)
Ajout du champ dossier_libelle pour la table dossier
Ajout du champ dossier_autorisation_libelle pour la table dossier_autorisation
Génération OM
Modification des formulaires, messages, tableaux et fil d'Ariane pour affiché le numéro de dossier formaté
Traduction des nouveaux champs
Correction des tests utilisant les numéro de dossier
MàJ HISTORY.txt

1 <?php
2 /**
3 * Ce fichier regroupe les tests concernant le REST
4 *
5 * @package openads
6 * @version SVN : $Id$:
7 */
8
9 // Fichier nécessaire
10 require_once "../obj/utils.class.php";
11
12 /**
13 * Cette classe permet de faire des tests sur les requêtes REST
14 *
15 * Données utilisées :
16 *
17 * Fichiers dans binary_files/test_digitalizedDocument/Transfert_GED
18 *
19 * Les consultations 1 et 2
20 *
21 * Le dossier d'autorisation PC0130551200001
22 *
23 * Le dossier d'instruction PC0130551200001P0
24 *
25 */
26 class RESTTest extends PHPUnit_Framework_TestCase {
27
28 var $base_url = 'http://localhost/openfoncier/';
29
30 /**
31 * Méthode lancée en début de traitement
32 */
33 public function setUp() {
34
35 //
36 }
37
38 /**
39 * Méthode lancée en fin de traitement
40 */
41 public function tearDown() {
42
43 //
44 }
45
46 /**
47 * Initialisation pour session cURL
48 * @param string $url Lien
49 * @param string $request Mode de requête
50 * @param array $postfields Données à envoyer
51 * @return mixed Session cURL
52 */
53 private function init_cURL($url, $request, $postfields) {
54
55 // Initialisation session cURL
56 $curl = curl_init();
57 // Url de la page à récupérer
58 curl_setopt($curl, CURLOPT_URL, $url);
59 // Permet de récupérer le résultat au lieu de l'afficher
60 curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
61 // Démarrer un nouveau cookie de session
62 curl_setopt($curl, CURLOPT_COOKIESESSION, true);
63 // Requête REST à envoyer (par défaut à GET)
64 switch ($request) {
65 case 'POST':
66 curl_setopt($curl, CURLOPT_POST, true);
67 break;
68 case 'PUT':
69 curl_setopt($curl, CURLOPT_PUT, true);
70 break;
71 }
72
73 // Si il y a des paramètres à envoyer
74 if ($postfields != '') {
75
76 // Informations à envoyer
77 $postfields = $this->preparePostFields($curl, $postfields, $request);
78 }
79
80 // Retour de la session cURL
81 $return = curl_exec($curl);
82 // Ferme la session cURL
83 curl_close($curl);
84
85 // Message retourné par REST
86 $message = $this->getReturnMessage($return, $request);
87
88 // Retourne le message
89 return $message;
90 }
91
92 /**
93 * Prépare les paramètres à envoyer en cURL
94 * @param mixed $curl Session cURL
95 * @param array $array Tableau des paramètres
96 * @param string $request Méthode utilisée (POST/PUT)
97 */
98 private function preparePostFields($curl, $array, $request) {
99
100 // Si c'est une requête POST
101 if ($request == 'POST') {
102
103 // Génère une chaîne de requête en encodage URL
104 $return = http_build_query($array);
105
106 // Données passées en POST
107 curl_setopt($curl, CURLOPT_POSTFIELDS, $return);
108
109 // Sinon c'est une requête PUT
110 } else {
111
112 // Encode le tableau en json
113 $return = json_encode($array);
114
115 // Crée un fichier temporaire
116 $putData = tmpfile();
117 // Ecrit la chaîne dans le fichier temporaire
118 fwrite($putData, $return);
119 // Place le curseur au début du fichier
120 fseek($putData, 0);
121 // Permet de retourner des données binaires
122 curl_setopt($curl, CURLOPT_BINARYTRANSFER, true);
123 // Le fichier lu par le transfert lors du chargement
124 curl_setopt($curl, CURLOPT_INFILE, $putData);
125 // Taille du fichier en octet attendue
126 curl_setopt($curl, CURLOPT_INFILESIZE, strlen($return));
127
128 }
129
130 }
131
132 /**
133 * Retourne seulement le message du retour REST
134 * @param string $return Retour du REST
135 * @return string Message du retour
136 */
137 private function getReturnMessage($return, $request) {
138
139 // Si c'est une requête GET
140 if ($request == 'GET') {
141
142 // Retraite la chaîne
143 $return = substr($return,1,-1);
144 $return = trim($return);
145 $return = preg_replace("(\r\n|\n|\r)",'',$return);
146
147 // On retourne directement le return
148 return $return;
149 }
150
151 // Decode du json et crée un objet
152 $return = json_decode($return);
153
154 // Retourne le message du retour REST
155 return $return->message;
156
157 }
158
159 /**
160 * Test le retour d'un numéro d'arrêté
161 */
162 public function testArretesRetourNumero() {
163
164 // Lien à envoyer
165 $url = $this->base_url.'services/rest_entry.php/arretes';
166 // Mode de la requête
167 $request = 'PUT';
168 // Données à envoyer
169 $postfields = array(
170 'numero_arrete' => '21321654',
171 'numero_dossier' => 'AZ0130551200001P0',
172 'etat_transaction' => 'true',
173 'detail_erreur' => '',
174 );
175
176 // Initialisation cURL
177 $message = $this->init_cURL($url, $request, $postfields);
178
179 // On vérifie le retour de la session cURL
180 $this->assertEquals($message, 'Le numéro d\'arrêté a été mis à jour.');
181
182 //Deuxième jet pour autre message
183
184 // Initialisation cURL
185 $message = $this->init_cURL($url, $request, $postfields);
186
187 // On vérifie le retour de la session cURL
188 $this->assertEquals($message, 'Erreur : un numéro d\'arrêté existe déjà pour cette instruction');
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 * Test le module import de maintenance
267 */
268 public function testMaintenanceImport() {
269
270 // Lien à envoyer
271 $url = $this->base_url.'services/rest_entry.php/maintenance';
272 // Mode de la requête
273 $request = 'POST';
274 // Données à envoyer
275 $postfields = array(
276 'module' => 'import',
277 'data' => '../tests/binary_files/test_digitalizedDocument/Transfert_GED/Todo,../tests/binary_files/test_digitalizedDocument/Transfert_GED/Done',
278 );
279
280 // Initialisation cURL
281 $message = $this->init_cURL($url, $request, $postfields);
282
283 // On vérifie le retour de la session cURL
284 $this->assertEquals($message, 'Tous les documents ont ete traites');
285
286 //Deuxième jet pour autre message
287
288 // Initialisation cURL
289 $message = $this->init_cURL($url, $request, $postfields);
290
291 // On vérifie le retour de la session cURL
292 $this->assertEquals($message, 'Aucun document a traiter');
293
294 // redéplace le fichiers dans le dossier des "à traiter"
295 copy('../tests/binary_files/test_digitalizedDocument/Transfert_GED/Done/PC0130551200001.P0/20091106AUTPCP.pdf', '../tests/binary_files/test_digitalizedDocument/Transfert_GED/Todo/PC0130551200001.P0/20091106AUTPCP.pdf');
296 }
297
298 /**
299 * Test le module purge de maintenance
300 */
301 public function testMaintenancePurge() {
302
303 // Lien à envoyer
304 $url = $this->base_url.'services/rest_entry.php/maintenance';
305 // Mode de la requête
306 $request = 'POST';
307 // Données à envoyer
308 $postfields = array(
309 'module' => 'purge',
310 'data' => '../tests/binary_files/test_digitalizedDocument/Transfert_GED/Done,null',
311 );
312
313 // Initialisation cURL
314 $message = $this->init_cURL($url, $request, $postfields);
315
316 // On vérifie le retour de la session cURL
317 $this->assertEquals($message, 'Tous les documents ont ete traites');
318 }
319
320 /**
321 * Test le retour d'avis d'une consultation sans fichier de consultation
322 */
323 public function testConsultationSansFichier() {
324
325 // Lien à envoyer
326 $url = $this->base_url.'services/rest_entry.php/consultations/1';
327 // Mode de la requête
328 $request = 'PUT';
329 // Données à envoyer
330 $postfields = array(
331 'date_retour' => '15/01/2013',
332 'avis' => 'Favorable',
333 );
334
335 // Initialisation cURL
336 $message = $this->init_cURL($url, $request, $postfields);
337
338 // On vérifie le retour de la session cURL
339 $this->assertEquals($message, 'L\'avis de la consultation 1 a été pris en compte');
340
341 //Deuxième jet pour autre message
342
343 // Initialisation cURL
344 $message = $this->init_cURL($url, $request, $postfields);
345
346 // On vérifie le retour de la session cURL
347 $this->assertEquals($message, 'Un retour d\'avis a déjà été rendu pour la consultation \'1\'.');
348 }
349
350 /**
351 * Test le retour d'avis d'une consultation avec fichier de consultation
352 */
353 public function testConsultationAvecFichier() {
354
355 // Lien à envoyer
356 $url = $this->base_url.'services/rest_entry.php/consultations/2';
357 // Mode de la requête
358 $request = 'PUT';
359 // Données à envoyer
360 $postfields = array(
361 'date_retour' => '15/03/2013',
362 'avis' => 'Favorable',
363 'fichier_base64' => 'JVBERi0xLjQKJcOkw7zDtsOfCjIgM',
364 'nom_fichier' => 'plop.pdf',
365 );
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, 'L\'avis de la consultation 2 a été pris en compte');
372
373 //Deuxième jet pour autre message
374
375 // Initialisation cURL
376 $message = $this->init_cURL($url, $request, $postfields);
377
378 // On vérifie le retour de la session cURL
379 $this->assertEquals($message, 'Un retour d\'avis a déjà été rendu pour la consultation \'2\'.');
380 }
381
382 /**
383 * Test le retour de message
384 */
385 public function testMessage() {
386
387 // Lien à envoyer
388 $url = $this->base_url.'services/rest_entry.php/messages';
389 // Mode de la requête
390 $request = 'POST';
391 // Données à envoyer
392 $postfields = array(
393 'type' => 'Mise à jour de complétude ERP ACC',
394 'date' => '16/06/2014 14:12',
395 'emetteur' => 'John Doe',
396 'dossier_instruction' => 'PC0130551200001P0',
397 'contenu' => array(
398 'Complétude ERP ACC' => 'non',
399 'Motivation Complétude ERP ACC' => 'Lorem ipsum dolor sit amet...'),
400 );
401
402 // Initialisation cURL
403 $message = $this->init_cURL($url, $request, $postfields);
404
405 // On vérifie le retour de la session cURL
406 $this->assertEquals($message, 'Insertion du message \'Mise à jour de complétude ERP ACC\' OK.');
407
408 // On change les postfields
409 $postfields = array(
410 'type' => 'Mise à jour de complétude ERP SECU',
411 'date' => '16/06/2014 14:12',
412 'emetteur' => 'John Doe',
413 'dossier_instruction' => 'PC0130551200001P0',
414 'contenu' => array(
415 'Complétude ERP SECU' => 'oui',
416 'Motivation Complétude ERP SECU' => 'Lorem ipsum dolor sit amet...'),
417 );
418
419 // Initialisation cURL
420 $message = $this->init_cURL($url, $request, $postfields);
421
422 // On vérifie le retour de la session cURL
423 $this->assertEquals($message, 'Insertion du message \'Mise à jour de complétude ERP SECU\' OK.');
424
425 // On change les postfields
426 $postfields = array(
427 'type' => 'Mise à jour de qualification',
428 'date' => '16/06/2014 14:12',
429 'emetteur' => 'John Doe',
430 'dossier_instruction' => 'PC0130551200001P0',
431 'contenu' => array(
432 'Confirmation ERP' => 'oui',
433 'Type de dossier ERP' => 'Lorem ipsum dolor sit amet...',
434 'Catégorie de dossier ERP' => 'Lorem ipsum dolor sit amet...'),
435 );
436
437 // Initialisation cURL
438 $message = $this->init_cURL($url, $request, $postfields);
439
440 // On vérifie le retour de la session cURL
441 $this->assertEquals($message, 'Insertion du message \'Mise à jour de qualification\' OK.');
442
443 // On change les postfields
444 $postfields = array(
445 'type' => 'Dossier à enjeux ERP',
446 'date' => '16/06/2014 14:12',
447 'emetteur' => 'John Doe',
448 'dossier_instruction' => 'PC0130551200001P0',
449 'contenu' => array(
450 'Dossier à enjeux ERP' => 'oui',),
451 );
452
453 // Initialisation cURL
454 $message = $this->init_cURL($url, $request, $postfields);
455
456 // On vérifie le retour de la session cURL
457 $this->assertEquals($message, 'Insertion du message \'Dossier à enjeux ERP\' OK.');
458
459 }
460
461 /**
462 * Test la mise à jour de dossier d'autorisation
463 */
464 public function testDossierAutorisationMAJERP() {
465
466 // Lien à envoyer
467 $url = $this->base_url.'services/rest_entry.php/dossier_autorisations/PC0130551200001';
468 // Mode de la requête
469 $request = 'PUT';
470 // Données à envoyer
471 $postfields = array(
472 'numero_erp' => '12345',
473 );
474
475 // Initialisation cURL
476 $message = $this->init_cURL($url, $request, $postfields);
477
478 // On vérifie le retour de la session cURL
479 $this->assertEquals($message, 'Numero ERP du batiment etait assigne au dossier d\'autorisation PC0130551200001');
480 }
481
482 /**
483 * Test l'ERP ouvert
484 */
485 public function testDossierAutorisationERPOuvert() {
486
487 // Lien à envoyer
488 $url = $this->base_url.'services/rest_entry.php/dossier_autorisations/PC0130551200001';
489 // Mode de la requête
490 $request = 'PUT';
491 // Données à envoyer
492 $postfields = array(
493 'erp_ouvert' => 'oui',
494 'date_arrete' => '20/04/2013',
495 );
496
497 // Initialisation cURL
498 $message = $this->init_cURL($url, $request, $postfields);
499
500 // On vérifie le retour de la session cURL
501 $this->assertEquals($message, 'Signature de l\'ouverture ERP au publique etait enregistre pour le dossier d\'autorisation PC0130551200001');
502 }
503
504 /**
505 * Test l'arrêté d'un dossier DAT effectué
506 */
507 public function testDossierAutorisationDATArrete() {
508
509 // Lien à envoyer
510 $url = $this->base_url.'services/rest_entry.php/dossier_autorisations/PC0130551200001';
511 // Mode de la requête
512 $request = 'PUT';
513 // Données à envoyer
514 $postfields = array(
515 'arrete_effectue' => 'oui',
516 'date_arrete' => '04/06/2014',
517 );
518
519 // Initialisation cURL
520 $message = $this->init_cURL($url, $request, $postfields);
521
522 /// On vérifie le retour de la session cURL
523 $this->assertEquals($message, 'Signature de l\'ouverture ERP etait enregistre pour le dossier d\'autorisation PC0130551200001');
524 }
525
526 /**
527 * Test la méthode GET sur un dossier d'autorisation
528 */
529 public function testDossierAutorisationGET() {
530
531 // Lien à envoyer
532 $url = $this->base_url.'services/rest_entry.php/dossier_autorisations/PC0130551200001';
533 // Mode de la requête
534 $request = 'GET';
535 // Données à envoyer
536 $postfields = '';
537
538 // Initialisation cURL
539 $message = $this->init_cURL($url, $request, $postfields);
540
541 // On vérifie le retour de la session cURL
542 $this->assertEquals($message, '"dossier_autorisation": "PC0130551200001", "dossier_autorisation_type_detaille": "1", "exercice": "", "insee": "", "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": "", "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"');
543 }
544
545 }
546
547 ?>

Properties

Name Value
svn:executable *
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26