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

Annotation of /trunk/tests/testDigitalizedDocument.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1860 - (hide annotations)
Tue May 7 11:58:17 2013 UTC (11 years, 8 months ago) by fmichon
File size: 18500 byte(s)
Modification du constructeur de digitalizedDocument pour ne pas instancier la classe utils et modifcation des tests en conséquence. Il faut noter l'ajout du fichier bootstrap.php à appeler avec l'option --bootstrap lors de l'exécution des tests.

1 softime 1830 <?php
2     /**
3     * Ce fichier regroupe les tests unitaire sur la classe DigitalizedDocument
4     *
5     * @package openads
6     * @version SVN : $Id$
7     */
8    
9 softime 1835 require_once('../obj/digitalizedDocument.class.php');
10 fmichon 1860 //
11     require_once "../obj/utils.class.php";
12 softime 1830
13     /**
14     * Cette classe permet de faire des tests unitaires sur la classe DigitalizedDocument
15     *
16     * La constante DEBUG doit être définis sur DEGUG_MODE ou PRODUCTION_MODE
17     *
18     * Lors de l'envoi de la commande ajouter --stderr
19 softime 1851 *
20     * Jeu de données utilisé :
21     * Le dossier d'instruction PC0130551200001P0 présent dans la bdd,
22     * les dossiers et document présent dans binaire/test_digitalizedDocument
23 softime 1830 */
24     class DigitalizedDocumentTest extends PHPUnit_Framework_TestCase {
25    
26 fmichon 1860 var $digitalizedDocument = NULL;
27 softime 1830
28     /**
29     * Fonction lancée en debut de classe
30     */
31 fmichon 1860 public function setUp() {
32     //
33     echo $this->getName()."\n";
34     // Setter les variables de $_SESSION pour la connexion avec BD
35     $_SESSION['collectivite'] = 1;
36     // login doit etre mis a une valeur qui n'est pas une chaine vide, et
37     // le $_SESSION['justlogin'] NE DOIT PAS ETRE set pour que l'execution
38     // ne s'arrete pas dans la fonction isAuthenticated() de l'om_application
39     $_SESSION['login'] = "admin";
40    
41     // Genere une connexion a la base de donnees
42     $f = new utils("nohtml");
43    
44 softime 1830 //On instancie la classe DigitalizedDocument
45 fmichon 1860 $this->digitalizedDocument = new DigitalizedDocument($f);
46 softime 1830 $_SERVER['REQUEST_URI'] = "";
47 fmichon 1860
48     echo "settup -end\n";
49 softime 1830 }
50    
51     /**
52     * Fonction lancée en fin de classe
53     */
54 fmichon 1860 public function tearDown() {
55     //
56     echo "teardown -start\n";
57 softime 1830 //On détruit l'instance de la classe DigitalizedDocument
58 fmichon 1860 $this->digitalizedDocument->__destruct();
59     //
60     echo "teardown -end\n";
61 softime 1830 }
62    
63 softime 1851 /**
64     * Fonction permettant de verifier l'ajout dans la base de données
65     */
66     private function checkLinkFile($uid) {
67    
68     //Requête qui vérifie dans la bdd si le lien existe
69     $sql = "SELECT document_numerise
70     FROM ".DB_PREFIXE."document_numerise
71     WHERE uid = '".$uid."'";
72 fmichon 1860 $document_numerise = $this->digitalizedDocument->f->db->getOne($sql);
73     $this->digitalizedDocument->f->addToLog("tests/testDigitalizedDocument.php : db->getOne(".$sql.")", VERBOSE_MODE);
74     $this->digitalizedDocument->f->isDatabaseError($document_numerise);
75 softime 1851
76     //Si le lien a été trouvé on retourne vrai
77     if ($document_numerise) {
78    
79     return true;
80    
81     }
82    
83     //sinon on retourne false
84     return false;
85     }
86    
87 softime 1830 /*
88     * Test la fonction analyseFolder
89     */
90     public function testAnalyseFolder() {
91    
92     //Nom possible d'un répertoire
93     $foldername = "PC0130551200001.P0";
94     //Retour de la fonction analyseFolder
95 fmichon 1860 $analyseFolder = $this->digitalizedDocument->analyseFolder($foldername);
96 softime 1830 //On vérifie les données retournée dans l'objet
97     $this->assertEquals($analyseFolder->dossier, 'PC0130551200001P0');
98    
99     //Nom erroné d'un repertoire
100     $foldername = "AAA014121A.AZ7";
101     //Retour de la fonction analyseFolder
102 fmichon 1860 $analyseFolder = $this->digitalizedDocument->analyseFolder($foldername);
103 softime 1830 //On vérifie que le retour est un objet vide
104     $this->assertEquals($analyseFolder, null);
105     }
106    
107     /**
108     * Test la fonction listFiles
109     */
110     public function testListFiles() {
111    
112     //Nom possible de dossier
113 softime 1851 $path = "binaire/test_digitalizedDocument/Transfert GED/Todo/PC0130551200001.P0";
114 softime 1830 //Retour de la fonction listFiles
115 fmichon 1860 $listFiles = $this->digitalizedDocument->listFiles($path);
116 softime 1830 //On vérifie les documents retourné
117     $this->assertEquals($listFiles[0], "20091106AUTPCP.pdf");
118    
119     //Nom de dossier vide
120 softime 1851 $path = "binaire/test_digitalizedDocument/Transfert GED/Todo/PC0130551200002.P0";
121 softime 1830 //Retour de la fontion listFiles
122 fmichon 1860 $listFiles = $this->digitalizedDocument->listFiles($path);
123 softime 1830 //On vérifie que le tableau retourné est vide
124     $this->assertEquals($listFiles, null);
125     }
126    
127     /*
128     * Test la fonction extractMetadataFromFilename
129     */
130     public function testExtractMetadataFromFilename() {
131 fmichon 1860
132 softime 1830 //Nom possible de document
133     $filename = "20091106AUTPCP.pdf";
134     //Retour de la fonction extractMetadataFromFilename
135 fmichon 1860 $extractMetadataFromFilename = $this->digitalizedDocument->extractMetadataFromFilename($filename);
136 softime 1830 //On vérifie les données retournées
137 softime 1835 $this->assertEquals($extractMetadataFromFilename["type_doc"], "AUTPCP");
138     $this->assertEquals($extractMetadataFromFilename["date_evenement"], "06/11/2009");
139 fmichon 1860
140 softime 1830 //Nom possible de document avec version
141     $filename = "20130420ART-1.pdf";
142     //Retour de la fonction extractMetadataFromFilename
143 fmichon 1860 $extractMetadataFromFilename = $this->digitalizedDocument->extractMetadataFromFilename($filename);
144 softime 1830 //On vérifie les données retournées
145 softime 1835 $this->assertEquals($extractMetadataFromFilename["type_doc"], "ART");
146     $this->assertEquals($extractMetadataFromFilename["date_evenement"], "20/04/2013");
147 fmichon 1860
148 softime 1830 //Nom erroné de document
149     $filename = "20591212.pdf";
150     //Retour de la fonction extractMetadataFromFilename
151 fmichon 1860 $extractMetadataFromFilename = $this->digitalizedDocument->extractMetadataFromFilename($filename);
152 softime 1830 //On vérifie que le tableau retourné est vide
153     $this->assertEquals($extractMetadataFromFilename, null);
154 fmichon 1860
155 softime 1830 }
156    
157     /**
158     * Test la fonction extractMetadataFromApp
159     */
160     public function testExtractMetadataFromApp() {
161    
162     //Code possible de type de document
163     $code = 'AUTPCP';
164     //Retour de la fonction extractMetadataFromApp
165 fmichon 1860 $extractMetadataFromApp = $this->digitalizedDocument->extractMetadataFromApp($code);
166 softime 1830 //On vérifie les données retournée dans l'objet
167     $this->assertEquals($extractMetadataFromApp, 'autres pièces composant le dossier (A3/A4)');
168    
169     //Code erroné de type de document
170     $code = 'ZZPOP';
171     //Retour de la fonction extractMetadataFromApp
172 fmichon 1860 $extractMetadataFromApp = $this->digitalizedDocument->extractMetadataFromApp($code);
173 softime 1830 //On vérifie que le retour est null
174     $this->assertEquals($extractMetadataFromApp, null);
175    
176     }
177    
178     /**
179     * Test la fonction extractMetadataToFilestorage
180     */
181     public function testExtractMetadataToFilestorage() {
182    
183     //Nom possible de dossier
184 softime 1851 $path = "binaire/test_digitalizedDocument/Transfert GED/Todo/PC0130551200001.P0";
185 softime 1830 //Nom possible de document
186     $filename = "20091106AUTPCP.pdf";
187     //Retour de la fonction extractMetadataToFilestorage
188 fmichon 1860 $extractMetadataToFilestorage = $this->digitalizedDocument->extractMetadataToFilestorage($path, $filename);
189 softime 1830 //On vérifie les données retournées
190     $this->assertEquals($extractMetadataToFilestorage['filename'], '20091106AUTPCP.pdf');
191 softime 1835 $this->assertEquals($extractMetadataToFilestorage['size'], '17435');
192     $this->assertEquals($extractMetadataToFilestorage['mimetype'], 'application/pdf');
193 softime 1830
194     //Chemin document erroné
195     $path = "";
196     //Nom possible de document
197     $filename = "20091106AUTPCP.pdf";
198     //Retour de la fonction extractMetadataToFilestorage
199 fmichon 1860 $extractMetadataToFilestorage = $this->digitalizedDocument->extractMetadataToFilestorage($path, $filename);
200 softime 1835 //On vérifie que le retour est null
201 softime 1830 $this->assertEquals($extractMetadataToFilestorage, null);
202    
203     }
204    
205     /**
206     * Test de la fonction setMetadata
207     */
208     public function testSetMetadata() {
209    
210     //Nom possible d'un répertoire
211     $foldername = "PC0130551200001.P0";
212     //Nom possible de dossier
213 softime 1851 $path = "binaire/test_digitalizedDocument/Transfert GED/Todo/PC0130551200001.P0";
214 softime 1830 //Nom possible de document avec version
215     $filename = "20091106AUTPCP.pdf";
216     //Retour de la fonction analyseFolder
217 fmichon 1860 $dossier_instruction = $this->digitalizedDocument->analyseFolder($foldername);
218 softime 1830 //Retour de la fonction setMetadata
219 fmichon 1860 $setMetadata = $this->digitalizedDocument->setMetadata($dossier_instruction, $path, $filename);
220 softime 1830 //On vérifie les données retournées
221 softime 1835 $this->assertEquals($setMetadata["dossier"], "PC0130551200001P0");
222     $this->assertEquals($setMetadata["dossier_autorisation"], "PC0130551200001");
223     $this->assertEquals($setMetadata["date_demande_initiale"], "2012/12");
224     $this->assertEquals($setMetadata["dossier_instruction_type"], "P");
225     $this->assertEquals($setMetadata["statut"], "En cours");
226     $this->assertEquals($setMetadata["dossier_autorisation_type"], "PC");
227     $this->assertEquals($setMetadata["groupe"], "ADS");
228     $this->assertEquals($setMetadata["code_produit"], "OpenADS");
229 softime 1830 $this->assertEquals($setMetadata["type_doc"], "autres pièces composant le dossier (A3/A4)");
230 softime 1835 $this->assertEquals($setMetadata["date_evenement"], "06/11/2009");
231     $this->assertEquals($setMetadata["filename"], "20091106AUTPCP.pdf");
232     $this->assertEquals($setMetadata["size"], "17435");
233     $this->assertEquals($setMetadata["mimetype"], "application/pdf");
234 softime 1830
235     //Nom possible d'un répertoire
236     $foldername = "PC0130551200001.P0";
237     //Nom possible de dossier
238 softime 1851 $path = "binaire/test_digitalizedDocument/Transfert GED/Todo/PC0130551200001.P0";
239 softime 1835 //Nom possible de document
240 softime 1830 $filename = "20091106AUTPCP.pdf";
241     //dossier_instruction erroné
242     $dossier_instruction = "";
243     //Retour de la fonction setMetadata
244 fmichon 1860 $setMetadata = $this->digitalizedDocument->setMetadata($dossier_instruction, $path, $filename);
245 softime 1835 //On vérifie que le résultat retourné est null
246 softime 1830 $this->assertEquals($setMetadata, null);
247    
248     }
249 fmichon 1860
250 softime 1830 /**
251     * Test la fonction createFile
252     */
253     public function testCreateFile() {
254 fmichon 1860
255 softime 1830 //Nom possible d'un répertoire
256     $foldername = "PC0130551200001.P0";
257     //Nom possible de dossier
258 softime 1851 $path = "binaire/test_digitalizedDocument/Transfert GED/Todo/PC0130551200001.P0";
259 softime 1835 //Nom possible de document
260 softime 1830 $filename = "20091106AUTPCP.pdf";
261     //Retour de la fonction analyseFolder
262 fmichon 1860 $dossier_instruction = $this->digitalizedDocument->analyseFolder($foldername);
263 softime 1830 //Contenu du fichier
264     $file_content = file_get_contents($path.'/'.$filename);
265     //Metadonnées du document
266 fmichon 1860 $metadata = $this->digitalizedDocument->setMetadata($dossier_instruction, $path, $filename);
267    
268 softime 1830 //Retour de la fonction createFile
269 fmichon 1860 $createFile = $this->digitalizedDocument->createFile($file_content, $metadata);
270 softime 1830 //On vérifie que l'action s'est bien déroulée
271 fmichon 1860 $file_exists_filestorage = $this->digitalizedDocument->filestorage->get($uid);
272 softime 1851 $this->assertTrue($file_exists_filestorage != null);
273 fmichon 1860
274 softime 1830 }
275    
276     /*
277     * Test la fonction deleteFile
278     */
279     public function testDeleteFile() {
280 fmichon 1860
281 softime 1830 //Création d'un fichier dans le filestorage
282     //Nom possible d'un répertoire
283     $foldername = "PC0130551200001.P0";
284     //Nom possible de dossier
285 softime 1851 $path = "binaire/test_digitalizedDocument/Transfert GED/Todo/PC0130551200001.P0";
286 softime 1830 //Nom possible de document avec version
287     $filename = "20091106AUTPCP.pdf";
288     //Retour de la fonction analyseFolder
289 fmichon 1860 $dossier_instruction = $this->digitalizedDocument->analyseFolder($foldername);
290 softime 1830 //Contenu du fichier
291     $file_content = file_get_contents($path.'/'.$filename);
292     //Metadonnées du document
293 fmichon 1860 $metadata = $this->digitalizedDocument->setMetadata($dossier_instruction, $path, $filename);
294 softime 1830 //Retour de la fonction createFile
295 fmichon 1860 $uid = $this->digitalizedDocument->createFile($file_content, $metadata);
296    
297 softime 1830 //Retour de la fonction deleteFile
298 fmichon 1860 $deleteFile = $this->digitalizedDocument->deleteFile($uid);
299 softime 1830 //On vérifie que l'action s'est bien déroulée
300 fmichon 1860 $file_exists_filestorage = $this->digitalizedDocument->filestorage->get($uid);
301 softime 1851 $this->assertEquals($file_exists_filestorage, null);
302 fmichon 1860
303 softime 1830 }
304    
305     /**
306     * Test la fonction linkFile
307     */
308     public function testLinkFile() {
309 fmichon 1860
310 softime 1830 //Uid d'un fichier
311     $uid = uniqid();
312     //Clé primaire du dossier d'instruction
313     $id_instruction = "PC0130551200001P0";
314     //Retour de la fonction linkFile
315 fmichon 1860 $this->digitalizedDocument->linkFile($uid, $id_instruction, $this->digitalizedDocument->f->db, NULL);
316 softime 1830 //On vérifie que l'action s'est bien déroulée
317 softime 1851 $this->assertEquals($this->checkLinkFile($uid), true);
318 fmichon 1860
319 softime 1830 //Uid pas présent dans la bdd
320     $uid = uniqid();
321 softime 1835 //On vérifie que false est bien retourné
322 softime 1851 $this->assertEquals($this->checkLinkFile($uid), false);
323 fmichon 1860
324 softime 1830 }
325    
326     /**
327     * Test la fonction moveFile
328     */
329     public function testMoveFile() {
330    
331     //Dossier source
332 softime 1851 $pathSrc = "binaire/test_digitalizedDocument/Transfert GED/Todo/PC0130551200001.P0";
333 softime 1830 //Dossier de destination
334 softime 1851 $pathDes = "binaire/test_digitalizedDocument/Transfert GED/Done/PC0130551200001.P0";
335 softime 1830 //Nom du fichier
336     $filename = "20091106AUTPCP.pdf";
337 softime 1851 //Retour de la fonction moveFile
338 fmichon 1860 $moveFile = $this->digitalizedDocument->moveFile($pathSrc, $pathDes, $filename);
339 softime 1830 //On vérifie que l'action s'est bien déroulée
340 softime 1851 //Le document doit être présent dans la destination
341     $file_exists_destination = file_exists($pathDes.'/'.$filename);
342     $this->assertEquals($file_exists_destination, true);
343     //Le document ne doit plus être présent dans la source
344     $file_exists_source = file_exists($pathSrc.'/'.$filename);
345     $this->assertEquals($file_exists_source, false);
346 softime 1830
347     //Remet le fichier dans todo pour les autres tests
348 softime 1835 rename($pathDes.'/'.$filename, $pathSrc.'/'.$filename);
349 softime 1830
350     }
351    
352     /**
353     * Test la fonction purgeFiles
354     */
355     public function testPurgeFiles() {
356    
357     //Dossier source
358 softime 1851 $pathSrc = "binaire/test_digitalizedDocument/Transfert GED/Todo/PC0130551200001.P0";
359 softime 1830 //Dossier de destination
360 softime 1851 $pathDes = "binaire/test_digitalizedDocument/Transfert GED/Done/PC0130551200001.P0";
361 softime 1830 //Création dossier
362     if (!file_exists($pathDes)) {
363 softime 1851 mkdir("binaire/test_digitalizedDocument/Transfert GED/Done/PC0130551200001.P0");
364 softime 1830 }
365     //Nom du fichier
366     $filename = "20091106AUTPCP.pdf";
367     //Met le fichier dans Done
368 softime 1835 copy($pathSrc.'/'.$filename, $pathDes.'/'.$filename);
369 softime 1830
370     //fichier
371     $file = $pathDes.'/'.$filename;
372     //Date de l'import du document
373     $dateImport = "2012-01-01";
374     //Nombre jour
375     $nbDay = 60;
376     //Retour de la fonction purge
377 fmichon 1860 $purgeFiles = $this->digitalizedDocument->purgeFiles($file, $dateImport, $nbDay);
378 softime 1830 //On vérifie que l'action s'est bien déroulée
379     $this->assertEquals($purgeFiles, true);
380    
381     //Création du fichier
382     $newfile = "20091106RIPC05.pdf";
383 softime 1835 copy($pathSrc.'/'.$filename, $pathDes.'/'.$newfile);
384 softime 1830 //fichier
385     $file = $pathDes.'/'.$newfile;
386     //Retour de la fonction purge sans les paramètres de date
387 fmichon 1860 $purgeFiles = $this->digitalizedDocument->purgeFiles($file);
388 softime 1830 //On vérifie que l'action s'est bien déroulée
389     $this->assertEquals($purgeFiles, true);
390    
391     //Création du fichier
392     $newfile = "20091106DGPC03.pdf";
393 softime 1835 copy($pathSrc.'/'.$filename, $pathDes.'/'.$newfile);
394 softime 1830 //fichier
395     $file = $pathDes.'/'.$newfile;
396     //Date de l'import du document
397     $dateImport = date('d-m-Y');
398     //Nombre jour
399     $nbDay = 60;
400     //Retour de la fonction purge
401 fmichon 1860 $purgeFiles = $this->digitalizedDocument->purgeFiles($file, $dateImport, $nbDay);
402 softime 1830 //On vérifie que l'action s'est bien déroulée
403     $this->assertEquals($purgeFiles, false);
404    
405     //Supprime le fichier laissé dans le dossier Done
406 softime 1835 unlink($pathDes.'/'.$newfile);
407 softime 1830
408     }
409    
410     /**
411     * Test la fonction run_import
412     */
413     public function test_run_import() {
414 fmichon 1860
415 softime 1830 //Nom de dossier
416 softime 1851 $pathSrc = "binaire/test_digitalizedDocument/Transfert GED/Todo/PC0130551200001.P0";
417 softime 1830 //Nom dossier destination
418 softime 1851 $pathDes = "binaire/test_digitalizedDocument/Transfert GED/Done/PC0130551200001.P0";
419 softime 1830 //Déclarations paramètre
420 fmichon 1860 $db = $this->digitalizedDocument->f->db;
421 softime 1830 $DEBUG = NULL;
422     //Retour de la fonction run_import
423 fmichon 1860 $run_import = $this->digitalizedDocument->run_import($pathSrc, $pathDes, $db, $DEBUG);
424 softime 1830 //On vérifie que l'action s'est bien déroulée
425     $this->assertEquals($run_import, true);
426    
427     //Replace le fichier dans le fichier source
428 softime 1835 rename($pathDes.'/'."20091106AUTPCP.pdf", $pathSrc.'/'."20091106AUTPCP.pdf");
429    
430 softime 1830
431     }
432    
433     /**
434     * Test la fonction run_purge
435     */
436     public function test_run_purge() {
437    
438     //Dossier source
439 softime 1851 $pathSrc = "binaire/test_digitalizedDocument/Transfert GED/Todo/PC0130551200001.P0";
440 softime 1830 //Dossier de destination
441 softime 1851 $pathDes = "binaire/test_digitalizedDocument/Transfert GED/Done/PC0130551200001.P0";
442 softime 1830 //Création dossier
443     if (!file_exists($pathDes)) {
444 softime 1851 mkdir("binaire/test_digitalizedDocument/Transfert GED/Done/PC0130551200001.P0");
445 softime 1830 }
446     //Nom du fichier
447     $filename = "20091106AUTPCP.pdf";
448     //Met le fichier 20091106AUTPCP dans Done
449 softime 1835 copy($pathSrc.'/'.$filename, $pathDes.'/'.$filename);
450 softime 1830 //Création du fichier 20091106RIPC05
451     $newfile = "20091106RIPC05.pdf";
452 softime 1835 copy($pathSrc.'/'.$filename, $pathDes.'/'.$newfile);
453 softime 1830 //Création du fichier 20091106DGPC03
454     $newfile = "20091106DGPC03.pdf";
455 softime 1835 copy($pathSrc.'/'.$filename, $pathDes.'/'.$newfile);
456 softime 1830
457     //Nombre jour
458     $nbDay = 60;
459     //Retour de la fonction run_purge
460 fmichon 1860 $run_purge = $this->digitalizedDocument->run_purge($pathDes, $nbDay);
461 softime 1830 //On vérifie que l'action s'est bien déroulée
462     $this->assertEquals($run_purge, true);
463    
464     }
465    
466     }
467    
468     ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26