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

Annotation of /trunk/tests/testREST.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1981 - (hide annotations)
Tue Jun 4 17:07:45 2013 UTC (11 years, 8 months ago) by softime
File size: 18456 byte(s)
Ajout des testREST au run_testsuite

Modification base2.php pour fonctionner sur openads

Modifications des données utilisées par certains test pour qu'il continue à passer


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

Properties

Name Value
svn:executable *

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26