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

Annotation of /trunk/tests/testREST.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2008 - (hide annotations)
Fri Jun 14 14:20:00 2013 UTC (11 years, 7 months ago) by softime
File size: 18211 byte(s)
Modification des url pour les test 

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 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     * Initialisation pour sesssion cURL
48     * @param string $url Lien
49     * @param string $request Mode de requête
50     * @param array $postfields Données a 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 résultat au lieu de l'afficher
60     curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
61     // Démarrer un nouveau cookie session
62     curl_setopt($curl, CURLOPT_COOKIESESSION, true);
63     // Requête REST a 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 ya des paramètre à envoyer
74     if ($postfields != '') {
75    
76     // Informations a 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 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     // Ecris la chaîne dans le fichier temporaire
118     fwrite($putData, $return);
119     // Place 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 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     // 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 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     }
294    
295     /**
296     * Test le module purge de maintenance
297     */
298     public function testMaintenancePurge() {
299    
300     // Lien à envoyer
301 softime 2008 $url = $this->base_url.'services/rest_entry.php/maintenance';
302 softime 1979 // Mode de la requête
303     $request = 'POST';
304     // Données à envoyer
305     $postfields = array(
306     'module' => 'purge',
307     'data' => '../tests/binary_files/test_digitalizedDocument/Transfert_GED/Done,null',
308     );
309    
310     // Initialisation cURL
311     $message = $this->init_cURL($url, $request, $postfields);
312    
313     // On vérifie le retour de la session cURL
314     $this->assertEquals($message, 'Tous les documents ont ete traites');
315     }
316    
317     /**
318     * Test le retour d'avis d'une consultation sans fichier de consultation
319     */
320     public function testConsultationSansFichier() {
321    
322 softime 1981 // Lien à envoyer
323 softime 2008 $url = $this->base_url.'services/rest_entry.php/consultations/1';
324 softime 1979 // Mode de la requête
325     $request = 'PUT';
326     // Données à envoyer
327     $postfields = array(
328     'date_retour' => '15/01/2013',
329     'avis' => 'Favorable',
330     );
331    
332     // Initialisation cURL
333     $message = $this->init_cURL($url, $request, $postfields);
334    
335     // On vérifie le retour de la session cURL*
336     $this->assertEquals($message, 'L\'avis de la consultation 1 a été pris en compte');
337    
338     //Deuxième jet pour autre message
339    
340     // Initialisation cURL
341     $message = $this->init_cURL($url, $request, $postfields);
342    
343     // On vérifie le retour de la session cURL
344     $this->assertEquals($message, 'Un retour d\'avis a déjà été rendu pour la consultation \'1\'.');
345     }
346    
347     /**
348     * Test le retour d'avis d'une consultation avec fichier de consultation
349     */
350     public function testConsultationAvecFichier() {
351    
352     // Lien à envoyer
353 softime 2008 $url = $this->base_url.'services/rest_entry.php/consultations/2';
354 softime 1979 // Mode de la requête
355     $request = 'PUT';
356     // Données à envoyer
357     $postfields = array(
358     'date_retour' => '15/03/2013',
359     'avis' => 'Favorable',
360     'fichier_base64' => 'JVBERi0xLjQKJcOkw7zDtsOfCjIgM',
361     'nom_fichier' => 'plop.pdf',
362     );
363    
364     // Initialisation cURL
365     $message = $this->init_cURL($url, $request, $postfields);
366    
367     // On vérifie le retour de la session cURL*
368     $this->assertEquals($message, 'L\'avis de la consultation 2 a été pris en compte');
369    
370     //Deuxième jet pour autre message
371    
372     // Initialisation cURL
373     $message = $this->init_cURL($url, $request, $postfields);
374    
375     // On vérifie le retour de la session cURL
376     $this->assertEquals($message, 'Un retour d\'avis a déjà été rendu pour la consultation \'2\'.');
377     }
378    
379     /**
380     * Test le retour de message
381     */
382     public function testMessage() {
383    
384     // Lien à envoyer
385 softime 2008 $url = $this->base_url.'services/rest_entry.php/messages';
386 softime 1979 // Mode de la requête
387     $request = 'POST';
388     // Données à envoyer
389     $postfields = array(
390     'type' => 'Mise à jour de complétude ERP ACC',
391     'date' => '16/06/2014 14:12',
392     'emetteur' => 'John Doe',
393     'dossier_instruction' => 'PC0130551200001P0',
394     'contenu' => array(
395     'Complétude ERP ACC' => 'non',
396     'Motivation Complétude ERP ACC' => 'Lorem ipsum dolor sit amet...'),
397     );
398    
399     // Initialisation cURL
400     $message = $this->init_cURL($url, $request, $postfields);
401    
402     // On vérifie le retour de la session cURL
403     $this->assertEquals($message, 'Insertion du message \'Mise à jour de complétude ERP ACC\' OK.');
404    
405     // On change les postfields
406     $postfields = array(
407     'type' => 'Mise à jour de complétude ERP SECU',
408     'date' => '16/06/2014 14:12',
409     'emetteur' => 'John Doe',
410     'dossier_instruction' => 'PC0130551200001P0',
411     'contenu' => array(
412     'Complétude ERP SECU' => 'oui',
413     'Motivation Complétude ERP SECU' => 'Lorem ipsum dolor sit amet...'),
414     );
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, 'Insertion du message \'Mise à jour de complétude ERP SECU\' OK.');
421    
422     // On change les postfields
423     $postfields = array(
424     'type' => 'Mise à jour de qualification',
425     'date' => '16/06/2014 14:12',
426     'emetteur' => 'John Doe',
427     'dossier_instruction' => 'PC0130551200001P0',
428     'contenu' => array(
429     'Confirmation ERP' => 'oui',
430     'Type de dossier ERP' => 'Lorem ipsum dolor sit amet...',
431     'Catégorie de dossier ERP' => '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 qualification\' OK.');
439    
440     // On change les postfields
441     $postfields = array(
442     'type' => 'Dossier à enjeux ERP',
443     'date' => '16/06/2014 14:12',
444     'emetteur' => 'John Doe',
445     'dossier_instruction' => 'PC0130551200001P0',
446     'contenu' => array(
447     'Dossier à enjeux ERP' => 'oui',),
448     );
449    
450     // Initialisation cURL
451     $message = $this->init_cURL($url, $request, $postfields);
452    
453     // On vérifie le retour de la session cURL
454     $this->assertEquals($message, 'Insertion du message \'Dossier à enjeux ERP\' OK.');
455    
456     }
457    
458     /**
459     * Test la mise a jour de dossier d'autorisation
460     */
461     public function testDossierAutorisationMAJERP() {
462    
463     // Lien à envoyer
464 softime 2008 $url = $this->base_url.'services/rest_entry.php/dossier_autorisations/PC0130551200001';
465 softime 1979 // Mode de la requête
466     $request = 'PUT';
467     // Données à envoyer
468     $postfields = array(
469     'numero_erp' => '12345',
470     );
471    
472     // Initialisation cURL
473     $message = $this->init_cURL($url, $request, $postfields);
474    
475     // On vérifie le retour de la session cURL
476     $this->assertEquals($message, 'Numero ERP du batiment etait assigne au dossier d\'autorisation PC0130551200001');
477     }
478    
479     /**
480     * Test l'ERP ouvert
481     */
482     public function testDossierAutorisationERPOuvert() {
483    
484     // Lien à envoyer
485 softime 2008 $url = $this->base_url.'services/rest_entry.php/dossier_autorisations/PC0130551200001';
486 softime 1979 // Mode de la requête
487     $request = 'PUT';
488     // Données à envoyer
489     $postfields = array(
490     'erp_ouvert' => 'oui',
491     'date_arrete' => '20/04/2013',
492     );
493    
494     // Initialisation cURL
495     $message = $this->init_cURL($url, $request, $postfields);
496    
497     // On vérifie le retour de la session cURL
498     $this->assertEquals($message, 'Signature de l\'ouverture ERP au publique etait enregistre pour le dossier d\'autorisation PC0130551200001');
499     }
500    
501     /**
502     * Test l'arrêté d'un dossier DAT effectué
503     */
504     public function testDossierAutorisationDATArrete() {
505    
506     // Lien à envoyer
507 softime 2008 $url = $this->base_url.'services/rest_entry.php/dossier_autorisations/PC0130551200001';
508 softime 1979 // Mode de la requête
509     $request = 'PUT';
510     // Données à envoyer
511     $postfields = array(
512     'arrete_effectue' => 'oui',
513     'date_arrete' => '04/06/2014',
514     );
515    
516     // Initialisation cURL
517     $message = $this->init_cURL($url, $request, $postfields);
518    
519     /// On vérifie le retour de la session cURL
520     $this->assertEquals($message, 'Signature de l\'ouverture ERP etait enregistre pour le dossier d\'autorisation PC0130551200001');
521     }
522    
523     /**
524     * Test la méthode GET sur un dossier d'autorisation
525     */
526     public function testDossierAutorisationGET() {
527    
528     // Lien à envoyer
529 softime 2008 $url = $this->base_url.'services/rest_entry.php/dossier_autorisations/PC0130551200001';
530 softime 1979 // Mode de la requête
531     $request = 'GET';
532     // Données à envoyer
533     $postfields = '';
534    
535     // Initialisation cURL
536     $message = $this->init_cURL($url, $request, $postfields);
537    
538     // On vérifie le retour de la session cURL
539     $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": ""');
540     }
541    
542     }
543    
544     ?>

Properties

Name Value
svn:executable *

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26