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

Annotation of /trunk/tests/testDigitalizedDocument.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2577 - (hide annotations)
Wed Dec 4 14:38:22 2013 UTC (11 years, 2 months ago) by softime
File size: 16107 byte(s)
Modification de la gestion des fichiers pour les tests testREST, testPieces et testDigitalizedDocument

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 softime 2577 * Fonction lancée en début de classe
30 softime 1830 */
31 softime 2577 public static function setUpBeforeClass() {
32     // Création des dossiers PC0130551200001.P0 et PC0130551200002 dans le
33     // dossier de numérisation
34     mkdir('../trs/numerisation/Todo/PC0130551200001.P0/');
35     chmod('../trs/numerisation/Todo/PC0130551200001.P0/', 0777);
36     mkdir('../trs/numerisation/Todo/PC0130551200002.P0/');
37     chmod('../trs/numerisation/Todo/PC0130551200002.P0/', 0777);
38     // Récupération du document
39     copy('binary_files/20091106AUTPCP.pdf', '../trs/numerisation/Todo/PC0130551200001.P0/20091106AUTPCP.pdf');
40     }
41    
42     /**
43     * Fonction lancée en fin de classe
44     */
45     public static function tearDownAfterClass() {
46     // Suppression du document 20091106AUTPCP.pdf
47     unlink('../trs/numerisation/Todo/PC0130551200001.P0/20091106AUTPCP.pdf');
48     // Suppression des dossiers PC0130551200001.P0 et PC0130551200002.P0
49     rmdir('../trs/numerisation/Todo/PC0130551200001.P0');
50     rmdir('../trs/numerisation/Todo/PC0130551200002.P0');
51     rmdir('../trs/numerisation/Done/PC0130551200001.P0');
52     }
53    
54     /**
55     * Fonction lancée en debut de chaque test
56     */
57 fmichon 1860 public function setUp() {
58 softime 2577 // Instancie la timezone
59     date_default_timezone_set('Europe/Paris');
60 fmichon 1860 // Setter les variables de $_SESSION pour la connexion avec BD
61     $_SESSION['collectivite'] = 1;
62     // login doit etre mis a une valeur qui n'est pas une chaine vide, et
63     // le $_SESSION['justlogin'] NE DOIT PAS ETRE set pour que l'execution
64     // ne s'arrete pas dans la fonction isAuthenticated() de l'om_application
65     $_SESSION['login'] = "admin";
66     // Genere une connexion a la base de donnees
67     $f = new utils("nohtml");
68 softime 1830 //On instancie la classe DigitalizedDocument
69 softime 1892 $_SERVER['REQUEST_URI'] = "";
70 fmichon 1860 $this->digitalizedDocument = new DigitalizedDocument($f);
71 softime 1830 }
72    
73     /**
74 softime 2577 * Fonction lancée en fin de chaque test
75 softime 1830 */
76 softime 1892 public function tearDown() {
77 softime 1830 //On détruit l'instance de la classe DigitalizedDocument
78 fmichon 1860 $this->digitalizedDocument->__destruct();
79 softime 1830 }
80    
81 softime 1851 /**
82     * Fonction permettant de verifier l'ajout dans la base de données
83     */
84     private function checkLinkFile($uid) {
85    
86     //Requête qui vérifie dans la bdd si le lien existe
87     $sql = "SELECT document_numerise
88     FROM ".DB_PREFIXE."document_numerise
89     WHERE uid = '".$uid."'";
90 fmichon 1860 $document_numerise = $this->digitalizedDocument->f->db->getOne($sql);
91     $this->digitalizedDocument->f->addToLog("tests/testDigitalizedDocument.php : db->getOne(".$sql.")", VERBOSE_MODE);
92     $this->digitalizedDocument->f->isDatabaseError($document_numerise);
93 softime 1851
94     //Si le lien a été trouvé on retourne vrai
95     if ($document_numerise) {
96    
97     return true;
98    
99     }
100    
101     //sinon on retourne false
102     return false;
103     }
104    
105 softime 1929 /**
106     * Recupère uid par rapport à l'identifiant
107 softime 1830 */
108 softime 1929 private function get_uid_by_id($document_numerise) {
109 softime 1830
110 softime 1929 //Requête qui vérifie dans la bdd si le lien existe
111     $sql = "SELECT uid
112     FROM ".DB_PREFIXE."document_numerise
113     WHERE document_numerise = '".$document_numerise."'";
114     $uid = $this->digitalizedDocument->f->db->getOne($sql);
115     $this->digitalizedDocument->f->addToLog("tests/testDigitalizedDocument.php : db->getOne(".$sql.")", VERBOSE_MODE);
116     $this->digitalizedDocument->f->isDatabaseError($uid);
117    
118     //
119     return $uid;
120    
121 softime 1830 }
122    
123     /**
124     * Test la fonction listFiles
125     */
126     public function testListFiles() {
127    
128     //Nom possible de dossier
129 softime 2577 $path = "../trs/numerisation/Todo/PC0130551200001.P0";
130 softime 1830 //Retour de la fonction listFiles
131 fmichon 1860 $listFiles = $this->digitalizedDocument->listFiles($path);
132 softime 1830 //On vérifie les documents retourné
133     $this->assertEquals($listFiles[0], "20091106AUTPCP.pdf");
134    
135     //Nom de dossier vide
136 softime 2577 $path = "../trs/numerisation/Todo/PC0130551200002.P0";
137 softime 1830 //Retour de la fontion listFiles
138 fmichon 1860 $listFiles = $this->digitalizedDocument->listFiles($path);
139 softime 1830 //On vérifie que le tableau retourné est vide
140     $this->assertEquals($listFiles, null);
141     }
142    
143     /*
144     * Test la fonction extractMetadataFromFilename
145     */
146     public function testExtractMetadataFromFilename() {
147 fmichon 1860
148 softime 1830 //Nom possible de document
149     $filename = "20091106AUTPCP.pdf";
150     //Retour de la fonction extractMetadataFromFilename
151 fmichon 1860 $extractMetadataFromFilename = $this->digitalizedDocument->extractMetadataFromFilename($filename);
152 softime 1830 //On vérifie les données retournées
153 softime 2016 $this->assertEquals($extractMetadataFromFilename["title"], "AUTPCP");
154     $this->assertEquals($extractMetadataFromFilename["dateEvenementDocument"], "06/11/2009");
155 fmichon 1860
156 softime 1830 //Nom possible de document avec version
157     $filename = "20130420ART-1.pdf";
158     //Retour de la fonction extractMetadataFromFilename
159 fmichon 1860 $extractMetadataFromFilename = $this->digitalizedDocument->extractMetadataFromFilename($filename);
160 softime 1830 //On vérifie les données retournées
161 softime 2016 $this->assertEquals($extractMetadataFromFilename["title"], "ART");
162     $this->assertEquals($extractMetadataFromFilename["dateEvenementDocument"], "20/04/2013");
163 fmichon 1860
164 softime 1830 //Nom erroné de document
165     $filename = "20591212.pdf";
166     //Retour de la fonction extractMetadataFromFilename
167 fmichon 1860 $extractMetadataFromFilename = $this->digitalizedDocument->extractMetadataFromFilename($filename);
168 softime 1830 //On vérifie que le tableau retourné est vide
169     $this->assertEquals($extractMetadataFromFilename, null);
170 fmichon 1860
171 softime 1830 }
172    
173     /**
174     * Test la fonction extractMetadataToFilestorage
175     */
176     public function testExtractMetadataToFilestorage() {
177    
178     //Nom possible de dossier
179 softime 2577 $path = "../trs/numerisation/Todo/PC0130551200001.P0";
180 softime 1830 //Nom possible de document
181     $filename = "20091106AUTPCP.pdf";
182     //Retour de la fonction extractMetadataToFilestorage
183 fmichon 1860 $extractMetadataToFilestorage = $this->digitalizedDocument->extractMetadataToFilestorage($path, $filename);
184 softime 1830 //On vérifie les données retournées
185     $this->assertEquals($extractMetadataToFilestorage['filename'], '20091106AUTPCP.pdf');
186 softime 1835 $this->assertEquals($extractMetadataToFilestorage['size'], '17435');
187     $this->assertEquals($extractMetadataToFilestorage['mimetype'], 'application/pdf');
188 softime 1830
189     //Chemin document erroné
190     $path = "";
191     //Nom possible de document
192     $filename = "20091106AUTPCP.pdf";
193     //Retour de la fonction extractMetadataToFilestorage
194 fmichon 1860 $extractMetadataToFilestorage = $this->digitalizedDocument->extractMetadataToFilestorage($path, $filename);
195 softime 1835 //On vérifie que le retour est null
196 softime 1830 $this->assertEquals($extractMetadataToFilestorage, null);
197    
198     }
199 fmichon 1860
200 softime 1830 /**
201 softime 1929 * Test la fonction createFileTemporary
202 softime 1830 */
203 softime 1929 public function testCreateFileTemporary() {
204 fmichon 1860
205 softime 1830 //Nom possible d'un répertoire
206     $foldername = "PC0130551200001.P0";
207     //Nom possible de dossier
208 softime 2577 $path = "../trs/numerisation/Todo/PC0130551200001.P0";
209 softime 1835 //Nom possible de document
210 softime 1830 $filename = "20091106AUTPCP.pdf";
211 softime 1929 //Construit les métadonnées
212     $metadata = array();
213     //Données récupérées pour le filestorage
214     $metadata = $this->digitalizedDocument->extractMetadataToFilestorage($path, $filename);
215     //Recupère le contenu du fichier
216 softime 1830 $file_content = file_get_contents($path.'/'.$filename);
217 fmichon 1860
218 softime 1830 //Retour de la fonction createFile
219 softime 1929 $createFile = $this->digitalizedDocument->createFileTemporary($file_content, $metadata);
220 softime 1830 //On vérifie que l'action s'est bien déroulée
221 softime 1892 $file_exists_filestorage = $this->digitalizedDocument->filestorage->get_temporary($createFile);
222 softime 1851 $this->assertTrue($file_exists_filestorage != null);
223 fmichon 1860
224 softime 1830 }
225    
226     /**
227 softime 1929 * Test la fonction createDocumentNumerise
228 softime 1830 */
229 softime 1929 public function testCreateDocumentNumerise() {
230 fmichon 1860
231 softime 1892 //Nom possible d'un répertoire
232     $foldername = "PC0130551200001.P0";
233 softime 1929 //Identifiant du dossier
234     $dossier = "PC0130551200001P0";
235 softime 1892 //Nom possible de dossier
236 softime 2577 $path = "../trs/numerisation/Todo/PC0130551200001.P0";
237 softime 1892 //Nom du document
238     $filename = "20091106AUTPCP.pdf";
239     //Création du fichier
240     $newfile = "20091106RIPC05.pdf";
241     copy($path.'/'.$filename, $path.'/'.$newfile);
242 softime 1929
243     //Instance document_numerise
244     require_once "../obj/document_numerise.class.php";
245     $document_numerise = new document_numerise("]", $this->digitalizedDocument->f->db, NULL);
246 softime 1892
247 softime 1929 //Construit les métadonnées
248     $metadata = array();
249     //Données récupérées pour le filestorage
250     $metadata = $this->digitalizedDocument->extractMetadataToFilestorage($path, $newfile);
251    
252     //Recupère le contenu du fichier
253     $file_content = file_get_contents($path.'/'.$newfile);
254    
255     //Créer le fichier temporaire
256     $uid = $this->digitalizedDocument->createFileTemporary($file_content, $metadata);
257    
258 softime 1892 //Retour de la fonction createFileStorage
259 softime 1929 $createDocumentNumerise = $this->digitalizedDocument->createDocumentNumerise($document_numerise, $uid, $dossier, $newfile, $this->digitalizedDocument->f->db, NULL);
260 softime 1892
261     //Supprime le fichier laissé dans le dossier Todo
262     unlink($path.'/'.$newfile);
263 softime 1929
264     //On vérifie que le fichier a bien été créé dans le filestorage
265     $uid = $this->get_uid_by_id($createDocumentNumerise);
266     $file_exists_filestorage = $this->digitalizedDocument->filestorage->get($uid);
267     $this->assertTrue($file_exists_filestorage != null);
268 fmichon 1860
269 softime 1830 //Uid pas présent dans la bdd
270     $uid = uniqid();
271 softime 1835 //On vérifie que false est bien retourné
272 softime 1851 $this->assertEquals($this->checkLinkFile($uid), false);
273 fmichon 1860
274 softime 1830 }
275    
276     /**
277 softime 1929 * Test la fonction moveDocumentNumerise
278 softime 1830 */
279 softime 1929 public function testMoveDocumentNumerise() {
280 softime 1830
281     //Dossier source
282 softime 2577 $pathSrc = "../trs/numerisation/Todo/PC0130551200001.P0";
283 softime 1830 //Dossier de destination
284 softime 2577 $pathDes = "../trs/numerisation/Done/PC0130551200001.P0";
285 softime 1830 //Nom du fichier
286     $filename = "20091106AUTPCP.pdf";
287 softime 1929 //Retour de la fonction moveDocumentNumerise
288     $moveFile = $this->digitalizedDocument->moveDocumentNumerise($pathSrc, $pathDes, $filename);
289 softime 1830 //On vérifie que l'action s'est bien déroulée
290 softime 1851 //Le document doit être présent dans la destination
291     $file_exists_destination = file_exists($pathDes.'/'.$filename);
292     $this->assertEquals($file_exists_destination, true);
293     //Le document ne doit plus être présent dans la source
294     $file_exists_source = file_exists($pathSrc.'/'.$filename);
295     $this->assertEquals($file_exists_source, false);
296 softime 1830
297     //Remet le fichier dans todo pour les autres tests
298 softime 1835 rename($pathDes.'/'.$filename, $pathSrc.'/'.$filename);
299 softime 1830
300     }
301    
302     /**
303     * Test la fonction purgeFiles
304     */
305     public function testPurgeFiles() {
306    
307     //Dossier source
308 softime 2577 $pathSrc = "../trs/numerisation/Todo/PC0130551200001.P0";
309 softime 1830 //Dossier de destination
310 softime 2577 $pathDes = "../trs/numerisation/Done/PC0130551200001.P0";
311 softime 1830 //Création dossier
312     if (!file_exists($pathDes)) {
313 softime 2577 mkdir("../trs/numerisation/Done/PC0130551200001.P0");
314 softime 1830 }
315     //Nom du fichier
316     $filename = "20091106AUTPCP.pdf";
317     //Met le fichier dans Done
318 softime 1835 copy($pathSrc.'/'.$filename, $pathDes.'/'.$filename);
319 softime 1830
320     //fichier
321     $file = $pathDes.'/'.$filename;
322     //Date de l'import du document
323     $dateImport = "2012-01-01";
324     //Nombre jour
325     $nbDay = 60;
326     //Retour de la fonction purge
327 fmichon 1860 $purgeFiles = $this->digitalizedDocument->purgeFiles($file, $dateImport, $nbDay);
328 softime 1830 //On vérifie que l'action s'est bien déroulée
329     $this->assertEquals($purgeFiles, true);
330    
331     //Création du fichier
332     $newfile = "20091106RIPC05.pdf";
333 softime 1835 copy($pathSrc.'/'.$filename, $pathDes.'/'.$newfile);
334 softime 1830 //fichier
335     $file = $pathDes.'/'.$newfile;
336     //Retour de la fonction purge sans les paramètres de date
337 fmichon 1860 $purgeFiles = $this->digitalizedDocument->purgeFiles($file);
338 softime 1830 //On vérifie que l'action s'est bien déroulée
339     $this->assertEquals($purgeFiles, true);
340    
341     //Création du fichier
342     $newfile = "20091106DGPC03.pdf";
343 softime 1835 copy($pathSrc.'/'.$filename, $pathDes.'/'.$newfile);
344 softime 1830 //fichier
345     $file = $pathDes.'/'.$newfile;
346     //Date de l'import du document
347     $dateImport = date('d-m-Y');
348     //Nombre jour
349     $nbDay = 60;
350     //Retour de la fonction purge
351 fmichon 1860 $purgeFiles = $this->digitalizedDocument->purgeFiles($file, $dateImport, $nbDay);
352 softime 1830 //On vérifie que l'action s'est bien déroulée
353     $this->assertEquals($purgeFiles, false);
354    
355     //Supprime le fichier laissé dans le dossier Done
356 softime 1835 unlink($pathDes.'/'.$newfile);
357 softime 1830
358     }
359    
360     /**
361     * Test la fonction run_import
362     */
363     public function test_run_import() {
364 softime 2262
365 softime 1830 //Nom de dossier
366 softime 2577 $pathSrc = "../trs/numerisation/Todo/PC0130551200001.P0";
367 softime 1830 //Nom dossier destination
368 softime 2577 $pathDes = "../trs/numerisation/Done/PC0130551200001.P0";
369 softime 2262 //Renomme le fichier pdf
370     rename($pathSrc.'/'."20091106AUTPCP.pdf", $pathSrc.'/'."20091106NDL.pdf");
371 softime 1830 //Déclarations paramètre
372 fmichon 1860 $db = $this->digitalizedDocument->f->db;
373 softime 1830 $DEBUG = NULL;
374     //Retour de la fonction run_import
375 fmichon 1860 $run_import = $this->digitalizedDocument->run_import($pathSrc, $pathDes, $db, $DEBUG);
376 softime 1830 //On vérifie que l'action s'est bien déroulée
377     $this->assertEquals($run_import, true);
378    
379     //Replace le fichier dans le fichier source
380 softime 2262 copy($pathDes.'/'."20091106NDL.pdf", $pathSrc.'/'."20091106AUTPCP.pdf");
381 softime 1835
382 softime 1830
383     }
384    
385     /**
386     * Test la fonction run_purge
387     */
388     public function test_run_purge() {
389    
390     //Dossier source
391 softime 2577 $pathSrc = "../trs/numerisation/Todo/PC0130551200001.P0";
392 softime 1830 //Dossier de destination
393 softime 2577 $pathDes = "../trs/numerisation/Done/PC0130551200001.P0";
394 softime 1830 //Création dossier
395     if (!file_exists($pathDes)) {
396 softime 2577 mkdir("../trs/numerisation/Done/PC0130551200001.P0");
397 softime 1830 }
398     //Nom du fichier
399     $filename = "20091106AUTPCP.pdf";
400     //Met le fichier 20091106AUTPCP dans Done
401 softime 1835 copy($pathSrc.'/'.$filename, $pathDes.'/'.$filename);
402 softime 1830 //Création du fichier 20091106RIPC05
403     $newfile = "20091106RIPC05.pdf";
404 softime 1835 copy($pathSrc.'/'.$filename, $pathDes.'/'.$newfile);
405 softime 1830 //Création du fichier 20091106DGPC03
406     $newfile = "20091106DGPC03.pdf";
407 softime 1835 copy($pathSrc.'/'.$filename, $pathDes.'/'.$newfile);
408 softime 1830
409 softime 1892 //Retour de la fonction run_purge sans date
410     $run_purge = $this->digitalizedDocument->run_purge($pathDes);
411 softime 1830 //On vérifie que l'action s'est bien déroulée
412     $this->assertEquals($run_purge, true);
413    
414     }
415    
416     }
417    
418     ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26