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

Annotation of /trunk/tests/testDigitalizedDocument.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1973 - (hide annotations)
Fri May 31 11:09:40 2013 UTC (11 years, 8 months ago) by softime
File size: 15215 byte(s)
Modification du nom de dossier de Transfert GED en Transfert_GED

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 1929 /**
78     * Recupère uid par rapport à l'identifiant
79 softime 1830 */
80 softime 1929 private function get_uid_by_id($document_numerise) {
81 softime 1830
82 softime 1929 //Requête qui vérifie dans la bdd si le lien existe
83     $sql = "SELECT uid
84     FROM ".DB_PREFIXE."document_numerise
85     WHERE document_numerise = '".$document_numerise."'";
86     $uid = $this->digitalizedDocument->f->db->getOne($sql);
87     $this->digitalizedDocument->f->addToLog("tests/testDigitalizedDocument.php : db->getOne(".$sql.")", VERBOSE_MODE);
88     $this->digitalizedDocument->f->isDatabaseError($uid);
89    
90     //
91     return $uid;
92    
93 softime 1830 }
94    
95     /**
96     * Test la fonction listFiles
97     */
98     public function testListFiles() {
99    
100     //Nom possible de dossier
101 softime 1973 $path = "binary_files/test_digitalizedDocument/Transfert_GED/Todo/PC0130551200001.P0";
102 softime 1830 //Retour de la fonction listFiles
103 fmichon 1860 $listFiles = $this->digitalizedDocument->listFiles($path);
104 softime 1830 //On vérifie les documents retourné
105     $this->assertEquals($listFiles[0], "20091106AUTPCP.pdf");
106    
107     //Nom de dossier vide
108 softime 1973 $path = "binary_files/test_digitalizedDocument/Transfert_GED/Todo/PC0130551200002.P0";
109 softime 1830 //Retour de la fontion listFiles
110 fmichon 1860 $listFiles = $this->digitalizedDocument->listFiles($path);
111 softime 1830 //On vérifie que le tableau retourné est vide
112     $this->assertEquals($listFiles, null);
113     }
114    
115     /*
116     * Test la fonction extractMetadataFromFilename
117     */
118     public function testExtractMetadataFromFilename() {
119 fmichon 1860
120 softime 1830 //Nom possible de document
121     $filename = "20091106AUTPCP.pdf";
122     //Retour de la fonction extractMetadataFromFilename
123 fmichon 1860 $extractMetadataFromFilename = $this->digitalizedDocument->extractMetadataFromFilename($filename);
124 softime 1830 //On vérifie les données retournées
125 softime 1835 $this->assertEquals($extractMetadataFromFilename["type_doc"], "AUTPCP");
126     $this->assertEquals($extractMetadataFromFilename["date_evenement"], "06/11/2009");
127 fmichon 1860
128 softime 1830 //Nom possible de document avec version
129     $filename = "20130420ART-1.pdf";
130     //Retour de la fonction extractMetadataFromFilename
131 fmichon 1860 $extractMetadataFromFilename = $this->digitalizedDocument->extractMetadataFromFilename($filename);
132 softime 1830 //On vérifie les données retournées
133 softime 1835 $this->assertEquals($extractMetadataFromFilename["type_doc"], "ART");
134     $this->assertEquals($extractMetadataFromFilename["date_evenement"], "20/04/2013");
135 fmichon 1860
136 softime 1830 //Nom erroné de document
137     $filename = "20591212.pdf";
138     //Retour de la fonction extractMetadataFromFilename
139 fmichon 1860 $extractMetadataFromFilename = $this->digitalizedDocument->extractMetadataFromFilename($filename);
140 softime 1830 //On vérifie que le tableau retourné est vide
141     $this->assertEquals($extractMetadataFromFilename, null);
142 fmichon 1860
143 softime 1830 }
144    
145     /**
146     * Test la fonction extractMetadataToFilestorage
147     */
148     public function testExtractMetadataToFilestorage() {
149    
150     //Nom possible de dossier
151 softime 1973 $path = "binary_files/test_digitalizedDocument/Transfert_GED/Todo/PC0130551200001.P0";
152 softime 1830 //Nom possible de document
153     $filename = "20091106AUTPCP.pdf";
154     //Retour de la fonction extractMetadataToFilestorage
155 fmichon 1860 $extractMetadataToFilestorage = $this->digitalizedDocument->extractMetadataToFilestorage($path, $filename);
156 softime 1830 //On vérifie les données retournées
157     $this->assertEquals($extractMetadataToFilestorage['filename'], '20091106AUTPCP.pdf');
158 softime 1835 $this->assertEquals($extractMetadataToFilestorage['size'], '17435');
159     $this->assertEquals($extractMetadataToFilestorage['mimetype'], 'application/pdf');
160 softime 1830
161     //Chemin document erroné
162     $path = "";
163     //Nom possible de document
164     $filename = "20091106AUTPCP.pdf";
165     //Retour de la fonction extractMetadataToFilestorage
166 fmichon 1860 $extractMetadataToFilestorage = $this->digitalizedDocument->extractMetadataToFilestorage($path, $filename);
167 softime 1835 //On vérifie que le retour est null
168 softime 1830 $this->assertEquals($extractMetadataToFilestorage, null);
169    
170     }
171 fmichon 1860
172 softime 1830 /**
173 softime 1929 * Test la fonction createFileTemporary
174 softime 1830 */
175 softime 1929 public function testCreateFileTemporary() {
176 fmichon 1860
177 softime 1830 //Nom possible d'un répertoire
178     $foldername = "PC0130551200001.P0";
179     //Nom possible de dossier
180 softime 1973 $path = "binary_files/test_digitalizedDocument/Transfert_GED/Todo/PC0130551200001.P0";
181 softime 1835 //Nom possible de document
182 softime 1830 $filename = "20091106AUTPCP.pdf";
183 softime 1929 //Construit les métadonnées
184     $metadata = array();
185     //Données récupérées pour le filestorage
186     $metadata = $this->digitalizedDocument->extractMetadataToFilestorage($path, $filename);
187     //Recupère le contenu du fichier
188 softime 1830 $file_content = file_get_contents($path.'/'.$filename);
189 fmichon 1860
190 softime 1830 //Retour de la fonction createFile
191 softime 1929 $createFile = $this->digitalizedDocument->createFileTemporary($file_content, $metadata);
192 softime 1830 //On vérifie que l'action s'est bien déroulée
193 softime 1892 $file_exists_filestorage = $this->digitalizedDocument->filestorage->get_temporary($createFile);
194 softime 1851 $this->assertTrue($file_exists_filestorage != null);
195 fmichon 1860
196 softime 1830 }
197    
198     /**
199 softime 1929 * Test la fonction createDocumentNumerise
200 softime 1830 */
201 softime 1929 public function testCreateDocumentNumerise() {
202 fmichon 1860
203 softime 1892 //Nom possible d'un répertoire
204     $foldername = "PC0130551200001.P0";
205 softime 1929 //Identifiant du dossier
206     $dossier = "PC0130551200001P0";
207 softime 1892 //Nom possible de dossier
208 softime 1973 $path = "binary_files/test_digitalizedDocument/Transfert_GED/Todo/PC0130551200001.P0";
209 softime 1892 //Nom du document
210     $filename = "20091106AUTPCP.pdf";
211     //Création du fichier
212     $newfile = "20091106RIPC05.pdf";
213     copy($path.'/'.$filename, $path.'/'.$newfile);
214 softime 1929
215     //Instance document_numerise
216     require_once "../obj/document_numerise.class.php";
217     $document_numerise = new document_numerise("]", $this->digitalizedDocument->f->db, NULL);
218 softime 1892
219 softime 1929 //Construit les métadonnées
220     $metadata = array();
221     //Données récupérées pour le filestorage
222     $metadata = $this->digitalizedDocument->extractMetadataToFilestorage($path, $newfile);
223    
224     //Recupère le contenu du fichier
225     $file_content = file_get_contents($path.'/'.$newfile);
226    
227     //Créer le fichier temporaire
228     $uid = $this->digitalizedDocument->createFileTemporary($file_content, $metadata);
229    
230 softime 1892 //Retour de la fonction createFileStorage
231 softime 1929 $createDocumentNumerise = $this->digitalizedDocument->createDocumentNumerise($document_numerise, $uid, $dossier, $newfile, $this->digitalizedDocument->f->db, NULL);
232 softime 1892
233     //Supprime le fichier laissé dans le dossier Todo
234     unlink($path.'/'.$newfile);
235 softime 1929
236     //On vérifie que le fichier a bien été créé dans le filestorage
237     $uid = $this->get_uid_by_id($createDocumentNumerise);
238     $file_exists_filestorage = $this->digitalizedDocument->filestorage->get($uid);
239     $this->assertTrue($file_exists_filestorage != null);
240 fmichon 1860
241 softime 1830 //Uid pas présent dans la bdd
242     $uid = uniqid();
243 softime 1835 //On vérifie que false est bien retourné
244 softime 1851 $this->assertEquals($this->checkLinkFile($uid), false);
245 fmichon 1860
246 softime 1830 }
247    
248     /**
249 softime 1929 * Test la fonction moveDocumentNumerise
250 softime 1830 */
251 softime 1929 public function testMoveDocumentNumerise() {
252 softime 1830
253     //Dossier source
254 softime 1973 $pathSrc = "binary_files/test_digitalizedDocument/Transfert_GED/Todo/PC0130551200001.P0";
255 softime 1830 //Dossier de destination
256 softime 1973 $pathDes = "binary_files/test_digitalizedDocument/Transfert_GED/Done/PC0130551200001.P0";
257 softime 1830 //Nom du fichier
258     $filename = "20091106AUTPCP.pdf";
259 softime 1929 //Retour de la fonction moveDocumentNumerise
260     $moveFile = $this->digitalizedDocument->moveDocumentNumerise($pathSrc, $pathDes, $filename);
261 softime 1830 //On vérifie que l'action s'est bien déroulée
262 softime 1851 //Le document doit être présent dans la destination
263     $file_exists_destination = file_exists($pathDes.'/'.$filename);
264     $this->assertEquals($file_exists_destination, true);
265     //Le document ne doit plus être présent dans la source
266     $file_exists_source = file_exists($pathSrc.'/'.$filename);
267     $this->assertEquals($file_exists_source, false);
268 softime 1830
269     //Remet le fichier dans todo pour les autres tests
270 softime 1835 rename($pathDes.'/'.$filename, $pathSrc.'/'.$filename);
271 softime 1830
272     }
273    
274     /**
275     * Test la fonction purgeFiles
276     */
277     public function testPurgeFiles() {
278    
279     //Dossier source
280 softime 1973 $pathSrc = "binary_files/test_digitalizedDocument/Transfert_GED/Todo/PC0130551200001.P0";
281 softime 1830 //Dossier de destination
282 softime 1973 $pathDes = "binary_files/test_digitalizedDocument/Transfert_GED/Done/PC0130551200001.P0";
283 softime 1830 //Création dossier
284     if (!file_exists($pathDes)) {
285 softime 1973 mkdir("binary_files/test_digitalizedDocument/Transfert_GED/Done/PC0130551200001.P0");
286 softime 1830 }
287     //Nom du fichier
288     $filename = "20091106AUTPCP.pdf";
289     //Met le fichier dans Done
290 softime 1835 copy($pathSrc.'/'.$filename, $pathDes.'/'.$filename);
291 softime 1830
292     //fichier
293     $file = $pathDes.'/'.$filename;
294     //Date de l'import du document
295     $dateImport = "2012-01-01";
296     //Nombre jour
297     $nbDay = 60;
298     //Retour de la fonction purge
299 fmichon 1860 $purgeFiles = $this->digitalizedDocument->purgeFiles($file, $dateImport, $nbDay);
300 softime 1830 //On vérifie que l'action s'est bien déroulée
301     $this->assertEquals($purgeFiles, true);
302    
303     //Création du fichier
304     $newfile = "20091106RIPC05.pdf";
305 softime 1835 copy($pathSrc.'/'.$filename, $pathDes.'/'.$newfile);
306 softime 1830 //fichier
307     $file = $pathDes.'/'.$newfile;
308     //Retour de la fonction purge sans les paramètres de date
309 fmichon 1860 $purgeFiles = $this->digitalizedDocument->purgeFiles($file);
310 softime 1830 //On vérifie que l'action s'est bien déroulée
311     $this->assertEquals($purgeFiles, true);
312    
313     //Création du fichier
314     $newfile = "20091106DGPC03.pdf";
315 softime 1835 copy($pathSrc.'/'.$filename, $pathDes.'/'.$newfile);
316 softime 1830 //fichier
317     $file = $pathDes.'/'.$newfile;
318     //Date de l'import du document
319     $dateImport = date('d-m-Y');
320     //Nombre jour
321     $nbDay = 60;
322     //Retour de la fonction purge
323 fmichon 1860 $purgeFiles = $this->digitalizedDocument->purgeFiles($file, $dateImport, $nbDay);
324 softime 1830 //On vérifie que l'action s'est bien déroulée
325     $this->assertEquals($purgeFiles, false);
326    
327     //Supprime le fichier laissé dans le dossier Done
328 softime 1835 unlink($pathDes.'/'.$newfile);
329 softime 1830
330     }
331    
332     /**
333     * Test la fonction run_import
334     */
335     public function test_run_import() {
336 fmichon 1860
337 softime 1830 //Nom de dossier
338 softime 1973 $pathSrc = "binary_files/test_digitalizedDocument/Transfert_GED/Todo/PC0130551200001.P0";
339 softime 1830 //Nom dossier destination
340 softime 1973 $pathDes = "binary_files/test_digitalizedDocument/Transfert_GED/Done/PC0130551200001.P0";
341 softime 1830 //Déclarations paramètre
342 fmichon 1860 $db = $this->digitalizedDocument->f->db;
343 softime 1830 $DEBUG = NULL;
344     //Retour de la fonction run_import
345 fmichon 1860 $run_import = $this->digitalizedDocument->run_import($pathSrc, $pathDes, $db, $DEBUG);
346 softime 1830 //On vérifie que l'action s'est bien déroulée
347     $this->assertEquals($run_import, true);
348    
349     //Replace le fichier dans le fichier source
350 softime 1835 rename($pathDes.'/'."20091106AUTPCP.pdf", $pathSrc.'/'."20091106AUTPCP.pdf");
351    
352 softime 1830
353     }
354    
355     /**
356     * Test la fonction run_purge
357     */
358     public function test_run_purge() {
359    
360     //Dossier source
361 softime 1973 $pathSrc = "binary_files/test_digitalizedDocument/Transfert_GED/Todo/PC0130551200001.P0";
362 softime 1830 //Dossier de destination
363 softime 1973 $pathDes = "binary_files/test_digitalizedDocument/Transfert_GED/Done/PC0130551200001.P0";
364 softime 1830 //Création dossier
365     if (!file_exists($pathDes)) {
366 softime 1973 mkdir("binary_files/test_digitalizedDocument/Transfert_GED/Done/PC0130551200001.P0");
367 softime 1830 }
368     //Nom du fichier
369     $filename = "20091106AUTPCP.pdf";
370     //Met le fichier 20091106AUTPCP dans Done
371 softime 1835 copy($pathSrc.'/'.$filename, $pathDes.'/'.$filename);
372 softime 1830 //Création du fichier 20091106RIPC05
373     $newfile = "20091106RIPC05.pdf";
374 softime 1835 copy($pathSrc.'/'.$filename, $pathDes.'/'.$newfile);
375 softime 1830 //Création du fichier 20091106DGPC03
376     $newfile = "20091106DGPC03.pdf";
377 softime 1835 copy($pathSrc.'/'.$filename, $pathDes.'/'.$newfile);
378 softime 1830
379 softime 1892 //Retour de la fonction run_purge sans date
380     $run_purge = $this->digitalizedDocument->run_purge($pathDes);
381 softime 1830 //On vérifie que l'action s'est bien déroulée
382     $this->assertEquals($run_purge, true);
383    
384     }
385    
386     }
387    
388     ?>

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26