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

Contents of /trunk/tests/testDigitalizedDocument.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1864 - (show annotations)
Wed May 15 08:07:48 2013 UTC (11 years, 8 months ago) by softime
File size: 18392 byte(s)
Suppression des fichiers séparés pour le test de digitalizedDocument et de son testSuite + dossier binaire renommé binary_files + modification des tests de digitalizedDocument

1 <?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('../obj/digitalizedDocument.class.php');
10 //
11 require_once "../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 --bootstrap bootstrap.php
19 *
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 binary_files/test_digitalizedDocument
23 */
24 class DigitalizedDocumentTest extends PHPUnit_Framework_TestCase {
25
26 var $digitalizedDocument = NULL;
27
28 /**
29 * Fonction lancée en debut de classe
30 */
31 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 //On instancie la classe DigitalizedDocument
41 $this->digitalizedDocument = new DigitalizedDocument($f);
42 }
43
44 /**
45 * Fonction lancée en fin de classe
46 */
47 public function tearDown() {
48 //On détruit l'instance de la classe DigitalizedDocument
49 $this->digitalizedDocument->__destruct();
50 }
51
52 /**
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 $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
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 /*
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 $analyseFolder = $this->digitalizedDocument->analyseFolder($foldername);
85 //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 $analyseFolder = $this->digitalizedDocument->analyseFolder($foldername);
92 //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 $path = "binary_files/test_digitalizedDocument/Transfert GED/Todo/PC0130551200001.P0";
103 //Retour de la fonction listFiles
104 $listFiles = $this->digitalizedDocument->listFiles($path);
105 //On vérifie les documents retourné
106 $this->assertEquals($listFiles[0], "20091106AUTPCP.pdf");
107
108 //Nom de dossier vide
109 $path = "binary_files/test_digitalizedDocument/Transfert GED/Todo/PC0130551200002.P0";
110 //Retour de la fontion listFiles
111 $listFiles = $this->digitalizedDocument->listFiles($path);
112 //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
121 //Nom possible de document
122 $filename = "20091106AUTPCP.pdf";
123 //Retour de la fonction extractMetadataFromFilename
124 $extractMetadataFromFilename = $this->digitalizedDocument->extractMetadataFromFilename($filename);
125 //On vérifie les données retournées
126 $this->assertEquals($extractMetadataFromFilename["type_doc"], "AUTPCP");
127 $this->assertEquals($extractMetadataFromFilename["date_evenement"], "06/11/2009");
128
129 //Nom possible de document avec version
130 $filename = "20130420ART-1.pdf";
131 //Retour de la fonction extractMetadataFromFilename
132 $extractMetadataFromFilename = $this->digitalizedDocument->extractMetadataFromFilename($filename);
133 //On vérifie les données retournées
134 $this->assertEquals($extractMetadataFromFilename["type_doc"], "ART");
135 $this->assertEquals($extractMetadataFromFilename["date_evenement"], "20/04/2013");
136
137 //Nom erroné de document
138 $filename = "20591212.pdf";
139 //Retour de la fonction extractMetadataFromFilename
140 $extractMetadataFromFilename = $this->digitalizedDocument->extractMetadataFromFilename($filename);
141 //On vérifie que le tableau retourné est vide
142 $this->assertEquals($extractMetadataFromFilename, null);
143
144 }
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 $extractMetadataFromApp = $this->digitalizedDocument->extractMetadataFromApp($code);
155 //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 $extractMetadataFromApp = $this->digitalizedDocument->extractMetadataFromApp($code);
162 //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 $path = "binary_files/test_digitalizedDocument/Transfert GED/Todo/PC0130551200001.P0";
174 //Nom possible de document
175 $filename = "20091106AUTPCP.pdf";
176 //Retour de la fonction extractMetadataToFilestorage
177 $extractMetadataToFilestorage = $this->digitalizedDocument->extractMetadataToFilestorage($path, $filename);
178 //On vérifie les données retournées
179 $this->assertEquals($extractMetadataToFilestorage['filename'], '20091106AUTPCP.pdf');
180 $this->assertEquals($extractMetadataToFilestorage['size'], '17435');
181 $this->assertEquals($extractMetadataToFilestorage['mimetype'], 'application/pdf');
182
183 //Chemin document erroné
184 $path = "";
185 //Nom possible de document
186 $filename = "20091106AUTPCP.pdf";
187 //Retour de la fonction extractMetadataToFilestorage
188 $extractMetadataToFilestorage = $this->digitalizedDocument->extractMetadataToFilestorage($path, $filename);
189 //On vérifie que le retour est null
190 $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 $path = "binary_files/test_digitalizedDocument/Transfert GED/Todo/PC0130551200001.P0";
203 //Nom possible de document avec version
204 $filename = "20091106AUTPCP.pdf";
205 //Retour de la fonction analyseFolder
206 $dossier_instruction = $this->digitalizedDocument->analyseFolder($foldername);
207 //Retour de la fonction setMetadata
208 $setMetadata = $this->digitalizedDocument->setMetadata($dossier_instruction, $path, $filename);
209 //On vérifie les données retournées
210 $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 $this->assertEquals($setMetadata["type_doc"], "autres pièces composant le dossier (A3/A4)");
219 $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
224 //Nom possible d'un répertoire
225 $foldername = "PC0130551200001.P0";
226 //Nom possible de dossier
227 $path = "binary_files/test_digitalizedDocument/Transfert GED/Todo/PC0130551200001.P0";
228 //Nom possible de document
229 $filename = "20091106AUTPCP.pdf";
230 //dossier_instruction erroné
231 $dossier_instruction = "";
232 //Retour de la fonction setMetadata
233 $setMetadata = $this->digitalizedDocument->setMetadata($dossier_instruction, $path, $filename);
234 //On vérifie que le résultat retourné est null
235 $this->assertEquals($setMetadata, null);
236
237 }
238
239 /**
240 * Test la fonction createFile
241 */
242 public function testCreateFile() {
243
244 //Nom possible d'un répertoire
245 $foldername = "PC0130551200001.P0";
246 //Nom possible de dossier
247 $path = "binary_files/test_digitalizedDocument/Transfert GED/Todo/PC0130551200001.P0";
248 //Nom possible de document
249 $filename = "20091106AUTPCP.pdf";
250 //Retour de la fonction analyseFolder
251 $dossier_instruction = $this->digitalizedDocument->analyseFolder($foldername);
252 //Contenu du fichier
253 $file_content = file_get_contents($path.'/'.$filename);
254 //Metadonnées du document
255 $metadata = $this->digitalizedDocument->setMetadata($dossier_instruction, $path, $filename);
256
257 //Retour de la fonction createFile
258 $createFile = $this->digitalizedDocument->createFile($file_content, $metadata);
259 //On vérifie que l'action s'est bien déroulée
260 $file_exists_filestorage = $this->digitalizedDocument->filestorage->get($createFile);
261 $this->assertTrue($file_exists_filestorage != null);
262
263 }
264
265 /*
266 * Test la fonction deleteFile
267 */
268 public function testDeleteFile() {
269
270 //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 $path = "binary_files/test_digitalizedDocument/Transfert GED/Todo/PC0130551200001.P0";
275 //Nom possible de document avec version
276 $filename = "20091106AUTPCP.pdf";
277 //Retour de la fonction analyseFolder
278 $dossier_instruction = $this->digitalizedDocument->analyseFolder($foldername);
279 //Contenu du fichier
280 $file_content = file_get_contents($path.'/'.$filename);
281 //Metadonnées du document
282 $metadata = $this->digitalizedDocument->setMetadata($dossier_instruction, $path, $filename);
283 //Retour de la fonction createFile
284 $uid = $this->digitalizedDocument->createFile($file_content, $metadata);
285
286 //Retour de la fonction deleteFile
287 $deleteFile = $this->digitalizedDocument->deleteFile($uid);
288 //On vérifie que l'action s'est bien déroulée
289 $file_exists_filestorage = $this->digitalizedDocument->filestorage->get($uid);
290 $this->assertEquals($file_exists_filestorage, null);
291
292 }
293
294 /**
295 * Test la fonction linkFile
296 */
297 public function testLinkFile() {
298
299 //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 $this->digitalizedDocument->linkFile($uid, $id_instruction, $this->digitalizedDocument->f->db, NULL);
305 //On vérifie que l'action s'est bien déroulée
306 $this->assertEquals($this->checkLinkFile($uid), true);
307
308 //Uid pas présent dans la bdd
309 $uid = uniqid();
310 //On vérifie que false est bien retourné
311 $this->assertEquals($this->checkLinkFile($uid), false);
312
313 }
314
315 /**
316 * Test la fonction moveFile
317 */
318 public function testMoveFile() {
319
320 //Dossier source
321 $pathSrc = "binary_files/test_digitalizedDocument/Transfert GED/Todo/PC0130551200001.P0";
322 //Dossier de destination
323 $pathDes = "binary_files/test_digitalizedDocument/Transfert GED/Done/PC0130551200001.P0";
324 //Nom du fichier
325 $filename = "20091106AUTPCP.pdf";
326 //Retour de la fonction moveFile
327 $moveFile = $this->digitalizedDocument->moveFile($pathSrc, $pathDes, $filename);
328 //On vérifie que l'action s'est bien déroulée
329 //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
336 //Remet le fichier dans todo pour les autres tests
337 rename($pathDes.'/'.$filename, $pathSrc.'/'.$filename);
338
339 }
340
341 /**
342 * Test la fonction purgeFiles
343 */
344 public function testPurgeFiles() {
345
346 //Dossier source
347 $pathSrc = "binary_files/test_digitalizedDocument/Transfert GED/Todo/PC0130551200001.P0";
348 //Dossier de destination
349 $pathDes = "binary_files/test_digitalizedDocument/Transfert GED/Done/PC0130551200001.P0";
350 //Création dossier
351 if (!file_exists($pathDes)) {
352 mkdir("binary_files/test_digitalizedDocument/Transfert GED/Done/PC0130551200001.P0");
353 }
354 //Nom du fichier
355 $filename = "20091106AUTPCP.pdf";
356 //Met le fichier dans Done
357 copy($pathSrc.'/'.$filename, $pathDes.'/'.$filename);
358
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 $purgeFiles = $this->digitalizedDocument->purgeFiles($file, $dateImport, $nbDay);
367 //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 copy($pathSrc.'/'.$filename, $pathDes.'/'.$newfile);
373 //fichier
374 $file = $pathDes.'/'.$newfile;
375 //Retour de la fonction purge sans les paramètres de date
376 $purgeFiles = $this->digitalizedDocument->purgeFiles($file);
377 //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 copy($pathSrc.'/'.$filename, $pathDes.'/'.$newfile);
383 //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 $purgeFiles = $this->digitalizedDocument->purgeFiles($file, $dateImport, $nbDay);
391 //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 unlink($pathDes.'/'.$newfile);
396
397 }
398
399 /**
400 * Test la fonction run_import
401 */
402 public function test_run_import() {
403
404 //Nom de dossier
405 $pathSrc = "binary_files/test_digitalizedDocument/Transfert GED/Todo/PC0130551200001.P0";
406 //Nom dossier destination
407 $pathDes = "binary_files/test_digitalizedDocument/Transfert GED/Done/PC0130551200001.P0";
408 //Déclarations paramètre
409 $db = $this->digitalizedDocument->f->db;
410 $DEBUG = NULL;
411 //Retour de la fonction run_import
412 $run_import = $this->digitalizedDocument->run_import($pathSrc, $pathDes, $db, $DEBUG);
413 //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 rename($pathDes.'/'."20091106AUTPCP.pdf", $pathSrc.'/'."20091106AUTPCP.pdf");
418
419
420 }
421
422 /**
423 * Test la fonction run_purge
424 */
425 public function test_run_purge() {
426
427 //Dossier source
428 $pathSrc = "binary_files/test_digitalizedDocument/Transfert GED/Todo/PC0130551200001.P0";
429 //Dossier de destination
430 $pathDes = "binary_files/test_digitalizedDocument/Transfert GED/Done/PC0130551200001.P0";
431 //Création dossier
432 if (!file_exists($pathDes)) {
433 mkdir("binary_files/test_digitalizedDocument/Transfert GED/Done/PC0130551200001.P0");
434 }
435 //Nom du fichier
436 $filename = "20091106AUTPCP.pdf";
437 //Met le fichier 20091106AUTPCP dans Done
438 copy($pathSrc.'/'.$filename, $pathDes.'/'.$filename);
439 //Création du fichier 20091106RIPC05
440 $newfile = "20091106RIPC05.pdf";
441 copy($pathSrc.'/'.$filename, $pathDes.'/'.$newfile);
442 //Création du fichier 20091106DGPC03
443 $newfile = "20091106DGPC03.pdf";
444 copy($pathSrc.'/'.$filename, $pathDes.'/'.$newfile);
445
446 //Nombre jour
447 $nbDay = 60;
448 //Retour de la fonction run_purge
449 $run_purge = $this->digitalizedDocument->run_purge($pathDes, $nbDay);
450 //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