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

Annotation of /trunk/tests/testDigitalizedDocument.php

Parent Directory Parent Directory | Revision Log Revision Log


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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26