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

Annotation of /trunk/tests/testDigitalizedDocument.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1830 - (hide annotations)
Fri May 3 16:09:05 2013 UTC (11 years, 9 months ago) by softime
File size: 18913 byte(s)
Ajout de la class digitalizedDocument permettant la gestion des document numérisés + ajout des test unaitaires de cette classe

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     require_once('/home/sofien/public_html/openads/trunk/app/digitalizedDocument.class.php');
10    
11     require_once('/home/sofien/public_html/openads/trunk/obj/utils.class.php');
12    
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     */
20     class DigitalizedDocumentTest extends PHPUnit_Framework_TestCase {
21    
22     protected static $digitalizedDocument = NULL;
23    
24     // protected function setUp() {
25     // //On instancie la classe DigitalizedDocument
26     // //self::$digitalizedDocument = new DigitalizedDocument();
27     // unset(self::$digitalizedDocument->f);
28     // self::$digitalizedDocument->f = new utils("nohtml");
29    
30     // }
31    
32     /**
33     * Fonction lancée en debut de classe
34     */
35     public static function setUpBeforeClass() {
36     //On instancie la classe DigitalizedDocument
37     self::$digitalizedDocument = new DigitalizedDocument();
38     $_SERVER['REQUEST_URI'] = "";
39     }
40    
41     // protected function tearDown() {
42     // //session_destroy();
43     // //On détruit l'instance de la classe DigitalizedDocument
44     // //self::$digitalizedDocument->__destruct();
45     // unset(self::$digitalizedDocument->f->DB_PREFIX);
46     // }
47    
48     /**
49     * Fonction lancée en fin de classe
50     */
51     public static function tearDownAfterClass() {
52     //On détruit l'instance de la classe DigitalizedDocument
53     self::$digitalizedDocument->__destruct();
54     }
55    
56     /**
57     * Fonction permettant de déplacer un document
58     */
59     private function replaceDocument($pathSrc, $pathDes, $filename) {
60     //Déplace le document
61     rename($pathSrc.'/'.$filename, $pathDes.'/'.$filename);
62    
63     }
64    
65     /**
66     * Fonction permettant de copier un document
67     */
68     private function copyDocument($pathSrc, $pathDes, $filename, $newfile) {
69     //Copi le document
70     copy($pathSrc.'/'.$filename, $pathDes.'/'.$newfile);
71     }
72    
73     /**
74     * Fonction permettant de supprimer un document
75     */
76     private function deleteDocument($path, $filename) {
77     //Supprime le document
78     unlink($path.'/'.$filename);
79     }
80    
81     /*
82     * Test la fonction analyseFolder
83     */
84     public function testAnalyseFolder() {
85    
86     //Nom possible d'un répertoire
87     $foldername = "PC0130551200001.P0";
88     //Retour de la fonction analyseFolder
89     $analyseFolder = self::$digitalizedDocument->analyseFolder($foldername);
90     //On vérifie que le retour n'est pas un objet vide
91     $this->assertTrue($analyseFolder != null);
92     //On vérifie les données retournée dans l'objet
93     $this->assertEquals($analyseFolder->dossier, 'PC0130551200001P0');
94    
95     //Nom erroné d'un repertoire
96     $foldername = "AAA014121A.AZ7";
97     //Retour de la fonction analyseFolder
98     $analyseFolder = self::$digitalizedDocument->analyseFolder($foldername);
99     //On vérifie que le retour est un objet vide
100     $this->assertEquals($analyseFolder, null);
101     }
102    
103     /**
104     * Test la fonction listFiles
105     */
106     public function testListFiles() {
107    
108     //Nom possible de dossier
109     $path = "/home/sofien/test_digitalizedDocument/Transfert GED/Todo/PC0130551200001.P0";
110     //Retour de la fonction listFiles
111     $listFiles = self::$digitalizedDocument->listFiles($path);
112     //On vérifie que le tableau retourné n'est pas vide
113     $this->assertTrue($listFiles != null);
114     //On vérifie les documents retourné
115     $this->assertEquals($listFiles[0], "20091106AUTPCP.pdf");
116    
117     //Nom de dossier vide
118     $path = "/home/sofien/test_digitalizedDocument/Transfert GED/Todo/PC0130551200002.P0";
119     //Retour de la fontion listFiles
120     $listFiles = self::$digitalizedDocument->listFiles($path);
121     //On vérifie que le tableau retourné est vide
122     $this->assertEquals($listFiles, null);
123     }
124    
125     /*
126     * Test la fonction extractMetadataFromFilename
127     */
128     public function testExtractMetadataFromFilename() {
129    
130     //Nom possible de document
131     $filename = "20091106AUTPCP.pdf";
132     //Retour de la fonction extractMetadataFromFilename
133     $extractMetadataFromFilename = self::$digitalizedDocument->extractMetadataFromFilename($filename);
134     //On vérifie que le tableau retourné n'est pas vide
135     $this->assertTrue($extractMetadataFromFilename != null);
136     //On vérifie les données retournées
137     $this->assertEquals($extractMetadataFromFilename["date"], "06/11/2009");
138    
139     //Nom possible de document avec version
140     $filename = "20130420ART-1.pdf";
141     //Retour de la fonction extractMetadataFromFilename
142     $extractMetadataFromFilename = self::$digitalizedDocument->extractMetadataFromFilename($filename);
143     //On vérifie que le tableau retourné n'est pas vide
144     $this->assertTrue($extractMetadataFromFilename != null);
145     //On vérifie les données retournées
146     $this->assertEquals($extractMetadataFromFilename["date"], "20/04/2013");
147    
148     //Nom erroné de document
149     $filename = "20591212.pdf";
150     //Retour de la fonction extractMetadataFromFilename
151     $extractMetadataFromFilename = self::$digitalizedDocument->extractMetadataFromFilename($filename);
152     //On vérifie que le tableau retourné est vide
153     $this->assertEquals($extractMetadataFromFilename, null);
154    
155     }
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     $extractMetadataFromApp = self::$digitalizedDocument->extractMetadataFromApp($code);
166     //On vérifie que le retour n'est pas un objet vide
167     $this->assertTrue($extractMetadataFromApp != null);
168     //On vérifie les données retournée dans l'objet
169     $this->assertEquals($extractMetadataFromApp, 'autres pièces composant le dossier (A3/A4)');
170    
171     //Code erroné de type de document
172     $code = 'ZZPOP';
173     //Retour de la fonction extractMetadataFromApp
174     $extractMetadataFromApp = self::$digitalizedDocument->extractMetadataFromApp($code);
175     //On vérifie que le retour est null
176     $this->assertEquals($extractMetadataFromApp, null);
177    
178     }
179    
180     /**
181     * Test la fonction extractMetadataToFilestorage
182     */
183     public function testExtractMetadataToFilestorage() {
184    
185     //Nom possible de dossier
186     $path = "/home/sofien/test_digitalizedDocument/Transfert GED/Todo/PC0130551200001.P0";
187     //Nom possible de document
188     $filename = "20091106AUTPCP.pdf";
189     //Retour de la fonction extractMetadataToFilestorage
190     $extractMetadataToFilestorage = self::$digitalizedDocument->extractMetadataToFilestorage($path, $filename);
191     //On vérifie que le retour n'est pas un objet vide
192     $this->assertTrue($extractMetadataToFilestorage != null);
193     //On vérifie les données retournées
194     $this->assertEquals($extractMetadataToFilestorage['filename'], '20091106AUTPCP.pdf');
195    
196     //Chemin document erroné
197     $path = "";
198     //Nom possible de document
199     $filename = "20091106AUTPCP.pdf";
200     //Retour de la fonction extractMetadataToFilestorage
201     $extractMetadataToFilestorage = self::$digitalizedDocument->extractMetadataToFilestorage($path, $filename);
202     //On vérifie que le retour n'est pas un objet vide
203     $this->assertEquals($extractMetadataToFilestorage, null);
204    
205     }
206    
207     /**
208     * Test de la fonction setMetadata
209     */
210     public function testSetMetadata() {
211    
212     //Nom possible d'un répertoire
213     $foldername = "PC0130551200001.P0";
214     //Nom possible de dossier
215     $path = "/home/sofien/test_digitalizedDocument/Transfert GED/Todo/PC0130551200001.P0";
216     //Nom possible de document avec version
217     $filename = "20091106AUTPCP.pdf";
218     //Retour de la fonction analyseFolder
219     $dossier_instruction = self::$digitalizedDocument->analyseFolder($foldername);
220     //Retour de la fonction setMetadata
221     $setMetadata = self::$digitalizedDocument->setMetadata($dossier_instruction, $path, $filename);
222     //On vérifie que le tableau retourné n'est pas vide
223     $this->assertTrue($setMetadata != null);
224     //On vérifie les données retournées
225     $this->assertEquals($setMetadata["type_doc"], "autres pièces composant le dossier (A3/A4)");
226    
227     //Nom possible d'un répertoire
228     $foldername = "PC0130551200001.P0";
229     //Nom possible de dossier
230     $path = "/home/sofien/test_digitalizedDocument/Transfert GED/Todo/PC0130551200001.P0";
231     //Nom possible de document avec version
232     $filename = "20091106AUTPCP.pdf";
233     //dossier_instruction erroné
234     $dossier_instruction = "";
235     //Retour de la fonction setMetadata
236     $setMetadata = self::$digitalizedDocument->setMetadata($dossier_instruction, $path, $filename);
237     //On vérifie que le tableau retourné n'est pas vide
238     $this->assertEquals($setMetadata, null);
239    
240     }
241    
242     /**
243     * Test la fonction createFile
244     */
245     public function testCreateFile() {
246    
247     //Nom possible d'un répertoire
248     $foldername = "PC0130551200001.P0";
249     //Nom possible de dossier
250     $path = "/home/sofien/test_digitalizedDocument/Transfert GED/Todo/PC0130551200001.P0";
251     //Nom possible de document avec version
252     $filename = "20091106AUTPCP.pdf";
253     //Retour de la fonction analyseFolder
254     $dossier_instruction = self::$digitalizedDocument->analyseFolder($foldername);
255     //Contenu du fichier
256     $file_content = file_get_contents($path.'/'.$filename);
257     //Metadonnées du document
258     $metadata = self::$digitalizedDocument->setMetadata($dossier_instruction, $path, $filename);
259    
260     //instance de filestorage à null
261     self::$digitalizedDocument->filestorage = NULL;
262    
263     //Retour de la fonction createFile
264     $createFile = self::$digitalizedDocument->createFile($file_content, $metadata);
265     //On vérifie que l'action s'est bien déroulée
266     $this->assertEquals($createFile, null);
267    
268     //Remet instance de filestorage
269     self::$digitalizedDocument->filestorage = self::$digitalizedDocument->f->storage;
270    
271     //Retour de la fonction createFile
272     $createFile = self::$digitalizedDocument->createFile($file_content, $metadata);
273     //On vérifie que l'action s'est bien déroulée
274     $this->assertTrue($createFile != null);
275    
276     }
277    
278     /*
279     * Test la fonction deleteFile
280     */
281     public function testDeleteFile() {
282    
283     //Création d'un fichier dans le filestorage
284     //Nom possible d'un répertoire
285     $foldername = "PC0130551200001.P0";
286     //Nom possible de dossier
287     $path = "/home/sofien/test_digitalizedDocument/Transfert GED/Todo/PC0130551200001.P0";
288     //Nom possible de document avec version
289     $filename = "20091106AUTPCP.pdf";
290     //Retour de la fonction analyseFolder
291     $dossier_instruction = self::$digitalizedDocument->analyseFolder($foldername);
292     //Contenu du fichier
293     $file_content = file_get_contents($path.'/'.$filename);
294     //Metadonnées du document
295     $metadata = self::$digitalizedDocument->setMetadata($dossier_instruction, $path, $filename);
296     //Retour de la fonction createFile
297     $uid = self::$digitalizedDocument->createFile($file_content, $metadata);
298    
299     //instance de filestorage à null
300     self::$digitalizedDocument->filestorage = NULL;
301    
302     //Retour de la fonction deleteFile
303     $deleteFile = self::$digitalizedDocument->deleteFile($uid);
304     //On vérifie que l'action s'est bien déroulée
305     $this->assertEquals($deleteFile, null);
306    
307     //Remet instance de filestorage
308     self::$digitalizedDocument->filestorage = self::$digitalizedDocument->f->storage;
309    
310     //Retour de la fonction deleteFile
311     $deleteFile = self::$digitalizedDocument->deleteFile($uid);
312     //On vérifie que l'action s'est bien déroulée
313     $this->assertTrue($deleteFile != null);
314    
315     }
316    
317     /**
318     * Test la fonction linkFile
319     */
320     public function testLinkFile() {
321    
322     //Uid d'un fichier
323     $uid = uniqid();
324     //Clé primaire du dossier d'instruction
325     $id_instruction = "PC0130551200001P0";
326     //Retour de la fonction linkFile
327     self::$digitalizedDocument->linkFile($uid, $id_instruction, self::$digitalizedDocument->f->db, NULL);
328     //On vérifie que l'action s'est bien déroulée
329     $this->assertEquals(self::$digitalizedDocument->checkLinkFile($uid), true);
330    
331     //Uid pas présent dans la bdd
332     $uid = uniqid();
333     //On vérifie que l'action s'est bien déroulée
334     $this->assertEquals(self::$digitalizedDocument->checkLinkFile($uid), false);
335    
336     }
337    
338     /**
339     * Test la fonction moveFile
340     */
341     public function testMoveFile() {
342    
343     //Dossier source
344     $pathSrc = "/home/sofien/test_digitalizedDocument/Transfert GED/Todo/PC0130551200001.P0";
345     //Dossier de destination
346     $pathDes = "/home/sofien/test_digitalizedDocument/Transfert GED/Done/PC0130551200001.P0";
347     //Nom du fichier
348     $filename = "20091106AUTPCP.pdf";
349     //Rertour de la fonction moveFile
350     $moveFile = self::$digitalizedDocument->moveFile($pathSrc, $pathDes, $filename);
351     //On vérifie que l'action s'est bien déroulée
352     $this->assertTrue($moveFile != null);
353    
354     // //Dossier source
355     // $pathSrc = "/home/sofien/test_digitalizedDocument/Transfert GED/Todo/PC0130551200001.P0";
356     // //Dossier de destination
357     // $pathDes = "/home/sofien/test_digitalizedDocument/Transfert GED/Done/PC0130551200001.P0";
358     // //Nom du fichier inexistant
359     // $filename = "swfgdfhsg.pdf";
360     // //On vérifie que l'action s'est bien déroulée
361     // $this->assertEquals(self::$digitalizedDocument->moveFile($pathSrc, $pathDes, $filename), 'Aucun fichier ou dossier de ce type');
362    
363     //Remet le fichier dans todo pour les autres tests
364     $this->replaceDocument($pathDes, $pathSrc, $filename);
365    
366     }
367    
368     /**
369     * Test la fonction purgeFiles
370     */
371     public function testPurgeFiles() {
372    
373     //Dossier source
374     $pathSrc = "/home/sofien/test_digitalizedDocument/Transfert GED/Todo/PC0130551200001.P0";
375     //Dossier de destination
376     $pathDes = "/home/sofien/test_digitalizedDocument/Transfert GED/Done/PC0130551200001.P0";
377     //Création dossier
378     if (!file_exists($pathDes)) {
379     mkdir("/home/sofien/test_digitalizedDocument/Transfert GED/Done/PC0130551200001.P0");
380     }
381     //Nom du fichier
382     $filename = "20091106AUTPCP.pdf";
383     //Met le fichier dans Done
384     $this->copyDocument($pathSrc, $pathDes, $filename, $filename);
385    
386     //fichier
387     $file = $pathDes.'/'.$filename;
388     //Date de l'import du document
389     $dateImport = "2012-01-01";
390     //Nombre jour
391     $nbDay = 60;
392     //Retour de la fonction purge
393     $purgeFiles = self::$digitalizedDocument->purgeFiles($file, $dateImport, $nbDay);
394     //On vérifie que l'action s'est bien déroulée
395     $this->assertEquals($purgeFiles, true);
396    
397     //Création du fichier
398     $newfile = "20091106RIPC05.pdf";
399     $this->copyDocument($pathSrc, $pathDes, $filename, $newfile);
400     //fichier
401     $file = $pathDes.'/'.$newfile;
402     //Retour de la fonction purge sans les paramètres de date
403     $purgeFiles = self::$digitalizedDocument->purgeFiles($file);
404     //On vérifie que l'action s'est bien déroulée
405     $this->assertEquals($purgeFiles, true);
406    
407     //Création du fichier
408     $newfile = "20091106DGPC03.pdf";
409     $this->copyDocument($pathSrc, $pathDes, $filename, $newfile);
410     //fichier
411     $file = $pathDes.'/'.$newfile;
412     //Date de l'import du document
413     $dateImport = date('d-m-Y');
414     //Nombre jour
415     $nbDay = 60;
416     //Retour de la fonction purge
417     $purgeFiles = self::$digitalizedDocument->purgeFiles($file, $dateImport, $nbDay);
418     //On vérifie que l'action s'est bien déroulée
419     $this->assertEquals($purgeFiles, false);
420    
421     //Supprime le fichier laissé dans le dossier Done
422     $this->deleteDocument($pathDes, $newfile);
423    
424     }
425    
426     /**
427     * Test la fonction run_import
428     */
429     public function test_run_import() {
430    
431     //Nom de dossier
432     $pathSrc = "/home/sofien/test_digitalizedDocument/Transfert GED/Todo/PC0130551200001.P0";
433     //Nom dossier destination
434     $pathDes = "/home/sofien/test_digitalizedDocument/Transfert GED/Done/PC0130551200001.P0";
435     //Déclarations paramètre
436     $db = self::$digitalizedDocument->f->db;
437     $DEBUG = NULL;
438     //Retour de la fonction run_import
439     $run_import = self::$digitalizedDocument->run_import($pathSrc, $pathDes, $db, $DEBUG);
440     //On vérifie que l'action s'est bien déroulée
441     $this->assertEquals($run_import, true);
442    
443     //Replace le fichier dans le fichier source
444     $this->replaceDocument($pathDes, $pathSrc, "20091106AUTPCP.pdf");
445    
446     }
447    
448     /**
449     * Test la fonction run_purge
450     */
451     public function test_run_purge() {
452    
453     //Dossier source
454     $pathSrc = "/home/sofien/test_digitalizedDocument/Transfert GED/Todo/PC0130551200001.P0";
455     //Dossier de destination
456     $pathDes = "/home/sofien/test_digitalizedDocument/Transfert GED/Done/PC0130551200001.P0";
457     //Création dossier
458     if (!file_exists($pathDes)) {
459     mkdir("/home/sofien/test_digitalizedDocument/Transfert GED/Done/PC0130551200001.P0");
460     }
461     //Nom du fichier
462     $filename = "20091106AUTPCP.pdf";
463     //Met le fichier 20091106AUTPCP dans Done
464     $this->copyDocument($pathSrc, $pathDes, $filename, $filename);
465     //Création du fichier 20091106RIPC05
466     $newfile = "20091106RIPC05.pdf";
467     $this->copyDocument($pathSrc, $pathDes, $filename, $newfile);
468     //Création du fichier 20091106DGPC03
469     $newfile = "20091106DGPC03.pdf";
470     $this->copyDocument($pathSrc, $pathDes, $filename, $newfile);
471    
472     //Nombre jour
473     $nbDay = 60;
474     //Retour de la fonction run_purge
475     $run_purge = self::$digitalizedDocument->run_purge($pathDes, $nbDay);
476     //On vérifie que l'action s'est bien déroulée
477     $this->assertEquals($run_purge, true);
478    
479     }
480    
481     }
482    
483     ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26