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

Annotation of /trunk/tests/testREST.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2447 - (hide annotations)
Wed Nov 6 17:50:26 2013 UTC (11 years, 2 months ago) by softime
File size: 19637 byte(s)
Modification du type du champ dossier_autorisation.insee

1 softime 1979 <?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 softime 1981 *
17 vpihour 2015 * Fichiers dans binary_files/test_digitalizedDocument/Transfert_GED
18 softime 1981 *
19 vpihour 2015 * Les consultations 1 et 2
20 softime 1981 *
21     * Le dossier d'autorisation PC0130551200001
22     *
23     * Le dossier d'instruction PC0130551200001P0
24 softime 1979 *
25     */
26     class RESTTest extends PHPUnit_Framework_TestCase {
27 softime 2008
28 fmichon 2174 var $base_url = 'http://localhost/openads/';
29 softime 1979
30     /**
31     * Méthode lancée en début de traitement
32     */
33     public function setUp() {
34    
35 softime 1981 //
36 softime 1979 }
37    
38     /**
39     * Méthode lancée en fin de traitement
40     */
41     public function tearDown() {
42    
43     //
44     }
45    
46     /**
47 vpihour 2015 * Initialisation pour session cURL
48 softime 1979 * @param string $url Lien
49     * @param string $request Mode de requête
50 vpihour 2015 * @param array $postfields Données à envoyer
51 softime 1979 * @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 vpihour 2015 // Permet de récupérer le résultat au lieu de l'afficher
60 softime 1979 curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
61 vpihour 2015 // Démarrer un nouveau cookie de session
62 softime 1979 curl_setopt($curl, CURLOPT_COOKIESESSION, true);
63 vpihour 2015 // Requête REST à envoyer (par défaut à GET)
64 softime 1979 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 vpihour 2015 // Si il y a des paramètres à envoyer
74 softime 1979 if ($postfields != '') {
75    
76 vpihour 2015 // Informations à envoyer
77 softime 1979 $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 softime 1981 // Génère une chaîne de requête en encodage URL
104 softime 1979 $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 vpihour 2015 // Ecrit la chaîne dans le fichier temporaire
118 softime 1979 fwrite($putData, $return);
119 vpihour 2015 // Place le curseur au début du fichier
120 softime 1979 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 softime 2008 * 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 vpihour 2015 // On vérifie le retour de la session cURL
180 softime 2008 $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 softime 1979 * Test le module user de maintenance
193     */
194     public function testMaintenanceUser() {
195    
196     // Lien à envoyer
197 softime 2008 $url = $this->base_url.'services/rest_entry.php/maintenance';
198 softime 1979 // 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 softime 2008 $url = $this->base_url.'services/rest_entry.php/maintenance';
220 softime 1979 // 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 softime 2008 $url = $this->base_url.'services/rest_entry.php/maintenance';
250 softime 1979 // 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 softime 2008 $url = $this->base_url.'services/rest_entry.php/maintenance';
272 softime 1979 // Mode de la requête
273     $request = 'POST';
274     // Données à envoyer
275     $postfields = array(
276     'module' => 'import',
277 softime 2127 'data' => array(
278     'Todo' => '../tests/binary_files/test_digitalizedDocument/Transfert_GED/Todo',
279     'Done' => '../tests/binary_files/test_digitalizedDocument/Transfert_GED/Done'
280     ),
281 softime 1979 );
282    
283     // Initialisation cURL
284     $message = $this->init_cURL($url, $request, $postfields);
285    
286     // On vérifie le retour de la session cURL
287     $this->assertEquals($message, 'Tous les documents ont ete traites');
288    
289     //Deuxième jet pour autre message
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, 'Aucun document a traiter');
296 softime 2019
297     // redéplace le fichiers dans le dossier des "à traiter"
298     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');
299 softime 1979 }
300    
301     /**
302     * Test le module purge de maintenance
303     */
304     public function testMaintenancePurge() {
305    
306     // Lien à envoyer
307 softime 2008 $url = $this->base_url.'services/rest_entry.php/maintenance';
308 softime 1979 // Mode de la requête
309     $request = 'POST';
310     // Données à envoyer
311     $postfields = array(
312     'module' => 'purge',
313 softime 2127 'data' => array(
314     'dossier' => '../tests/binary_files/test_digitalizedDocument/Transfert_GED/Done',
315     'nombre_de_jour' => ''
316     ),
317 softime 1979 );
318    
319     // Initialisation cURL
320     $message = $this->init_cURL($url, $request, $postfields);
321    
322     // On vérifie le retour de la session cURL
323     $this->assertEquals($message, 'Tous les documents ont ete traites');
324     }
325    
326 softime 2127 public function testMaintenanceDossierAutorisation() {
327    
328     // Lien à envoyer
329     $url = $this->base_url.'services/rest_entry.php/maintenance';
330     // Mode de la requête
331     $request = 'POST';
332     // Données à envoyer
333     $postfields = array(
334     'module' => 'update_dossier_autorisation',
335     );
336    
337     // Initialisation cURL
338     $message = $this->init_cURL($url, $request, $postfields);
339    
340     // On vérifie le retour de la session cURL
341     $this->assertEquals($message, "1 dossier(s) d'autorisation(s) mis à jour.");
342    
343     //Deuxième jet pour autre message
344    
345     // Initialisation cURL
346     $message = $this->init_cURL($url, $request, $postfields);
347    
348     // On vérifie le retour de la session cURL
349     $this->assertEquals($message, 'Aucune mise à jour');
350     }
351    
352 softime 1979 /**
353     * Test le retour d'avis d'une consultation sans fichier de consultation
354     */
355     public function testConsultationSansFichier() {
356    
357 softime 1981 // Lien à envoyer
358 softime 2008 $url = $this->base_url.'services/rest_entry.php/consultations/1';
359 softime 1979 // Mode de la requête
360     $request = 'PUT';
361     // Données à envoyer
362     $postfields = array(
363     'date_retour' => '15/01/2013',
364     'avis' => 'Favorable',
365     );
366    
367     // Initialisation cURL
368     $message = $this->init_cURL($url, $request, $postfields);
369    
370 vpihour 2015 // On vérifie le retour de la session cURL
371 softime 1979 $this->assertEquals($message, 'L\'avis de la consultation 1 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 \'1\'.');
380     }
381    
382     /**
383     * Test le retour d'avis d'une consultation avec fichier de consultation
384     */
385     public function testConsultationAvecFichier() {
386    
387     // Lien à envoyer
388 softime 2008 $url = $this->base_url.'services/rest_entry.php/consultations/2';
389 softime 1979 // Mode de la requête
390     $request = 'PUT';
391     // Données à envoyer
392     $postfields = array(
393     'date_retour' => '15/03/2013',
394     'avis' => 'Favorable',
395     'fichier_base64' => 'JVBERi0xLjQKJcOkw7zDtsOfCjIgM',
396     'nom_fichier' => 'plop.pdf',
397     );
398    
399     // Initialisation cURL
400     $message = $this->init_cURL($url, $request, $postfields);
401    
402 vpihour 2015 // On vérifie le retour de la session cURL
403 softime 1979 $this->assertEquals($message, 'L\'avis de la consultation 2 a été pris en compte');
404    
405     //Deuxième jet pour autre message
406    
407     // Initialisation cURL
408     $message = $this->init_cURL($url, $request, $postfields);
409    
410     // On vérifie le retour de la session cURL
411     $this->assertEquals($message, 'Un retour d\'avis a déjà été rendu pour la consultation \'2\'.');
412     }
413    
414     /**
415     * Test le retour de message
416     */
417     public function testMessage() {
418    
419     // Lien à envoyer
420 softime 2008 $url = $this->base_url.'services/rest_entry.php/messages';
421 softime 1979 // Mode de la requête
422     $request = 'POST';
423     // Données à envoyer
424     $postfields = array(
425     'type' => 'Mise à jour de complétude ERP ACC',
426     'date' => '16/06/2014 14:12',
427     'emetteur' => 'John Doe',
428     'dossier_instruction' => 'PC0130551200001P0',
429     'contenu' => array(
430     'Complétude ERP ACC' => 'non',
431     'Motivation Complétude ERP ACC' => 'Lorem ipsum dolor sit amet...'),
432     );
433    
434     // Initialisation cURL
435     $message = $this->init_cURL($url, $request, $postfields);
436    
437     // On vérifie le retour de la session cURL
438     $this->assertEquals($message, 'Insertion du message \'Mise à jour de complétude ERP ACC\' OK.');
439    
440     // On change les postfields
441     $postfields = array(
442     'type' => 'Mise à jour de complétude ERP SECU',
443     'date' => '16/06/2014 14:12',
444     'emetteur' => 'John Doe',
445     'dossier_instruction' => 'PC0130551200001P0',
446     'contenu' => array(
447     'Complétude ERP SECU' => 'oui',
448     'Motivation Complétude ERP SECU' => 'Lorem ipsum dolor sit amet...'),
449     );
450    
451     // Initialisation cURL
452     $message = $this->init_cURL($url, $request, $postfields);
453    
454     // On vérifie le retour de la session cURL
455     $this->assertEquals($message, 'Insertion du message \'Mise à jour de complétude ERP SECU\' OK.');
456    
457     // On change les postfields
458     $postfields = array(
459     'type' => 'Mise à jour de qualification',
460     'date' => '16/06/2014 14:12',
461     'emetteur' => 'John Doe',
462     'dossier_instruction' => 'PC0130551200001P0',
463     'contenu' => array(
464     'Confirmation ERP' => 'oui',
465     'Type de dossier ERP' => 'Lorem ipsum dolor sit amet...',
466     'Catégorie de dossier ERP' => 'Lorem ipsum dolor sit amet...'),
467     );
468    
469     // Initialisation cURL
470     $message = $this->init_cURL($url, $request, $postfields);
471    
472     // On vérifie le retour de la session cURL
473     $this->assertEquals($message, 'Insertion du message \'Mise à jour de qualification\' OK.');
474    
475     // On change les postfields
476     $postfields = array(
477     'type' => 'Dossier à enjeux ERP',
478     'date' => '16/06/2014 14:12',
479     'emetteur' => 'John Doe',
480     'dossier_instruction' => 'PC0130551200001P0',
481     'contenu' => array(
482     'Dossier à enjeux ERP' => 'oui',),
483     );
484    
485     // Initialisation cURL
486     $message = $this->init_cURL($url, $request, $postfields);
487    
488     // On vérifie le retour de la session cURL
489     $this->assertEquals($message, 'Insertion du message \'Dossier à enjeux ERP\' OK.');
490    
491     }
492    
493     /**
494 vpihour 2015 * Test la mise à jour de dossier d'autorisation
495 softime 1979 */
496     public function testDossierAutorisationMAJERP() {
497    
498     // Lien à envoyer
499 softime 2008 $url = $this->base_url.'services/rest_entry.php/dossier_autorisations/PC0130551200001';
500 softime 1979 // Mode de la requête
501     $request = 'PUT';
502     // Données à envoyer
503     $postfields = array(
504     'numero_erp' => '12345',
505     );
506    
507     // Initialisation cURL
508     $message = $this->init_cURL($url, $request, $postfields);
509    
510     // On vérifie le retour de la session cURL
511     $this->assertEquals($message, 'Numero ERP du batiment etait assigne au dossier d\'autorisation PC0130551200001');
512     }
513    
514     /**
515     * Test l'ERP ouvert
516     */
517     public function testDossierAutorisationERPOuvert() {
518    
519     // Lien à envoyer
520 softime 2008 $url = $this->base_url.'services/rest_entry.php/dossier_autorisations/PC0130551200001';
521 softime 1979 // Mode de la requête
522     $request = 'PUT';
523     // Données à envoyer
524     $postfields = array(
525     'erp_ouvert' => 'oui',
526     'date_arrete' => '20/04/2013',
527     );
528    
529     // Initialisation cURL
530     $message = $this->init_cURL($url, $request, $postfields);
531    
532     // On vérifie le retour de la session cURL
533     $this->assertEquals($message, 'Signature de l\'ouverture ERP au publique etait enregistre pour le dossier d\'autorisation PC0130551200001');
534     }
535    
536     /**
537     * Test l'arrêté d'un dossier DAT effectué
538     */
539     public function testDossierAutorisationDATArrete() {
540    
541     // Lien à envoyer
542 softime 2008 $url = $this->base_url.'services/rest_entry.php/dossier_autorisations/PC0130551200001';
543 softime 1979 // Mode de la requête
544     $request = 'PUT';
545     // Données à envoyer
546     $postfields = array(
547     'arrete_effectue' => 'oui',
548     'date_arrete' => '04/06/2014',
549     );
550    
551     // Initialisation cURL
552     $message = $this->init_cURL($url, $request, $postfields);
553    
554     /// On vérifie le retour de la session cURL
555     $this->assertEquals($message, 'Signature de l\'ouverture ERP etait enregistre pour le dossier d\'autorisation PC0130551200001');
556     }
557    
558     /**
559     * Test la méthode GET sur un dossier d'autorisation
560     */
561     public function testDossierAutorisationGET() {
562    
563     // Lien à envoyer
564 softime 2008 $url = $this->base_url.'services/rest_entry.php/dossier_autorisations/PC0130551200001';
565 softime 1979 // Mode de la requête
566     $request = 'GET';
567     // Données à envoyer
568     $postfields = '';
569    
570     // Initialisation cURL
571     $message = $this->init_cURL($url, $request, $postfields);
572    
573     // On vérifie le retour de la session cURL
574 softime 2447 $this->assertEquals($message, '"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": "", "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"');
575 softime 1979 }
576    
577     }
578    
579     ?>

Properties

Name Value
svn:executable *
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26