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

Annotation of /trunk/tests/testREST.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2019 - (hide annotations)
Tue Jun 18 17:20:02 2013 UTC (11 years, 7 months ago) by softime
File size: 18544 byte(s)
Dans la fonction testMaintenanceImport() les fichiers déplacé vers le dossier des "traités" et copié dans son dossier d'origine des "à traiter" pour pouvoir relancer les tests sans devoir recréer le fichier

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     var $base_url = 'http://localhost/openfoncier/';
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     '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 softime 2019
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 softime 1979 }
297    
298     /**
299     * Test le module purge de maintenance
300     */
301     public function testMaintenancePurge() {
302    
303     // Lien à envoyer
304 softime 2008 $url = $this->base_url.'services/rest_entry.php/maintenance';
305 softime 1979 // 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 softime 1981 // Lien à envoyer
326 softime 2008 $url = $this->base_url.'services/rest_entry.php/consultations/1';
327 softime 1979 // 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 vpihour 2015 // On vérifie le retour de la session cURL
339 softime 1979 $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 softime 2008 $url = $this->base_url.'services/rest_entry.php/consultations/2';
357 softime 1979 // 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 vpihour 2015 // On vérifie le retour de la session cURL
371 softime 1979 $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 softime 2008 $url = $this->base_url.'services/rest_entry.php/messages';
389 softime 1979 // 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 vpihour 2015 * Test la mise à jour de dossier d'autorisation
463 softime 1979 */
464     public function testDossierAutorisationMAJERP() {
465    
466     // Lien à envoyer
467 softime 2008 $url = $this->base_url.'services/rest_entry.php/dossier_autorisations/PC0130551200001';
468 softime 1979 // 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 softime 2008 $url = $this->base_url.'services/rest_entry.php/dossier_autorisations/PC0130551200001';
489 softime 1979 // 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 softime 2008 $url = $this->base_url.'services/rest_entry.php/dossier_autorisations/PC0130551200001';
511 softime 1979 // 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 softime 2008 $url = $this->base_url.'services/rest_entry.php/dossier_autorisations/PC0130551200001';
533 softime 1979 // 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": "", "complement": "", "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": ""');
543     }
544    
545     }
546    
547     ?>

Properties

Name Value
svn:executable *
svn:keywords Id

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26