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

Annotation of /trunk/tests/testDigitalizedDocument.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1861 - (hide annotations)
Tue May 7 12:00:35 2013 UTC (11 years, 8 months ago) by fmichon
File size: 18295 byte(s)
Suppression des echo de debug.

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26