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

Contents of /trunk/tests/testDigitalizedDocument_common.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 14064 - (show annotations)
Thu Feb 16 22:52:47 2023 UTC (23 months, 1 week ago) by softime
File size: 29805 byte(s)
chore(branch): fusion de la branche d'intégration 5.16.0-develop dans le trunk

1 <?php
2 /**
3 * Ce script contient la définition de la classe 'DigitalizedDocumentCommon'.
4 *
5 * @package openads
6 * @version SVN : $Id$
7 */
8
9 require_once "../tests/resources/omtestcase.class.php";
10 require_once "../obj/digitalizedDocument.class.php";
11
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 et PC0130551200002P0 du jeu de données de
22 * base, ainsi que les dossiers sans P0 PA0130551200001 et DP0130551200001
23 * les dossiers et document présent dans binary_files/test_digitalizedDocument
24 */
25 abstract class DigitalizedDocumentCommon extends OMTestCase {
26
27 /**
28 * Fonction lancée en début de classe
29 */
30 public static function common_setUpBeforeClass() {
31
32 // Création des dossiers PC0130551200001.P0 et PC0130551200002 dans le
33 // dossier de numérisation
34 mkdir('../var/digitalization/Todo/PC0130551200001.P0/');
35 chmod('../var/digitalization/Todo/PC0130551200001.P0/', 0777);
36 mkdir('../var/digitalization/Todo/PC0130551200002.P0/');
37 chmod('../var/digitalization/Todo/PC0130551200002.P0/', 0777);
38 // Récupération du document
39 copy('binary_files/20091106AUTPCP.pdf', '../var/digitalization/Todo/PC0130551200001.P0/20091106AUTPCP.pdf');
40 copy('binary_files/20091106AUTPCP-1.pdf', '../var/digitalization/Todo/PC0130551200001.P0/20091106AUTPCP-1.pdf');
41 copy('binary_files/20121212PC31_1.pdf', '../var/digitalization/Todo/PC0130551200001.P0/20121212PC31_1.pdf');
42 copy('binary_files/20121212PC31_1-1.pdf', '../var/digitalization/Todo/PC0130551200001.P0/20121212PC31_1-1.pdf');
43 copy('binary_files/20130207F6.pdf', '../var/digitalization/Todo/PC0130551200001.P0/20130207F6.pdf');
44 // Création des dossiers sans le suffixe P0
45 mkdir('../var/digitalization/Todo/PA0130551200001/');
46 chmod('../var/digitalization/Todo/PA0130551200001/', 0777);
47 mkdir('../var/digitalization/Todo/DP0130551200001/');
48 chmod('../var/digitalization/Todo/DP0130551200001/', 0777);
49 // Récupération du document
50 copy('binary_files/20091106AUTPCP.pdf', '../var/digitalization/Todo/PA0130551200001/20091106AUTPCP.pdf');
51 copy('binary_files/20091106AUTPCP-1.pdf', '../var/digitalization/Todo/PA0130551200001/20091106AUTPCP-1.pdf');
52 copy('binary_files/20121212PC31_1.pdf', '../var/digitalization/Todo/PA0130551200001/20121212PC31_1.pdf');
53 copy('binary_files/20121212PC31_1-1.pdf', '../var/digitalization/Todo/PA0130551200001/20121212PC31_1-1.pdf');
54 copy('binary_files/20130207F6.pdf', '../var/digitalization/Todo/PA0130551200001/20130207F6.pdf');
55 }
56
57 /**
58 * Fonction lancée en fin de classe
59 */
60 public static function common_tearDownAfterClass() {
61 // Suppression du document 20091106AUTPCP.pdf
62 unlink('../var/digitalization/Todo/PC0130551200001.P0/20091106AUTPCP.pdf');
63 unlink('../var/digitalization/Todo/PC0130551200001.P0/20091106AUTPCP-1.pdf');
64 unlink('../var/digitalization/Todo/PA0130551200001/20091106AUTPCP.pdf');
65 unlink('../var/digitalization/Todo/PA0130551200001/20091106AUTPCP-1.pdf');
66
67 // Suppression des dossiers PC0130551200001.P0 et PC0130551200002.P0
68 if(file_exists('../var/digitalization/Todo/PC0130551200001.P0')) {
69 rmdir('../var/digitalization/Todo/PC0130551200001.P0');
70 }
71 if(file_exists('../var/digitalization/Todo/PC0130551200002.P0')) {
72 rmdir('../var/digitalization/Todo/PC0130551200002.P0');
73 }
74 // Suppression des dossiers sans P0
75 if(file_exists('../var/digitalization/Todo/PA0130551200001')) {
76 rmdir('../var/digitalization/Todo/PA0130551200001');
77 }
78 if(file_exists('../var/digitalization/Todo/DP0130551200001')) {
79 rmdir('../var/digitalization/Todo/DP0130551200001');
80 }
81 }
82
83 /**
84 * Méthode lancée en fin de traitement
85 */
86 public function common_tearDown() {
87 parent::common_tearDown();
88 //
89 $this->clean_session();
90 }
91
92 /**
93 * Est-ce que l'uid passé en paramètre est lié à un enregistrement *document_numerise* ?
94 *
95 * @param string $uid Identifiant d'un fichier dans le système de stockage.
96 *
97 * @return boolean
98 */
99 private function checkLinkFile($f, $uid) {
100 $qres = $f->get_one_result_from_db_query(
101 sprintf(
102 'SELECT
103 document_numerise
104 FROM
105 %1$sdocument_numerise
106 WHERE
107 uid = \'%2$s\'',
108 DB_PREFIXE,
109 $f->db->escapeSimple($uid)
110 ),
111 array(
112 "origin" => __METHOD__,
113 )
114 );
115 if ($qres["result"]) {
116 return true;
117 }
118 return false;
119 }
120
121 /**
122 * Retourne l'identifant du fichier dans le système de stockage lié à l'enregistrement *document_numerise* passé en paramètre.
123 *
124 * @param integer $document_numerise Identifiant de l'enregistrement *document_numerise*.
125 *
126 * @return string|null
127 */
128 private function get_uid_by_id($f, $document_numerise) {
129 $qres = $f->get_one_result_from_db_query(
130 sprintf(
131 'SELECT
132 uid
133 FROM
134 %1$sdocument_numerise
135 WHERE
136 document_numerise=%2$d',
137 DB_PREFIXE,
138 intval($document_numerise)
139 ),
140 array(
141 "origin" => __METHOD__,
142 )
143 );
144 return $qres["result"];
145 }
146
147 /**
148 * Test la fonction listFiles
149 */
150 public function testListFiles() {
151 // Instanciation de la classe *om_application*
152 $f = $this->get_inst_om_application("admin", "admin");
153 $f->disableLog();
154 $digitalizedDocument = new DigitalizedDocument($f);
155 //Nom possible de dossier
156 $path = "../var/digitalization/Todo/PC0130551200001.P0";
157 $path_no_p0 = "../var/digitalization/Todo/PA0130551200001";
158
159 //Retour de la fonction listFiles
160 $listFiles = $digitalizedDocument->listFiles($path);
161 $listFiles_no_p0 = $digitalizedDocument->listFiles($path_no_p0);
162 //On vérifie les documents retourné
163 $this->assertContains("20091106AUTPCP-1.pdf", $listFiles);
164 $this->assertContains("20091106AUTPCP.pdf", $listFiles);
165 $this->assertContains("20121212PC31_1.pdf", $listFiles);
166 $this->assertContains("20121212PC31_1-1.pdf", $listFiles);
167 $this->assertContains("20130207F6.pdf", $listFiles);
168 // Même chose pour les dossiers sans P0
169 $this->assertContains("20091106AUTPCP-1.pdf", $listFiles_no_p0);
170 $this->assertContains("20091106AUTPCP.pdf", $listFiles_no_p0);
171 $this->assertContains("20121212PC31_1.pdf", $listFiles_no_p0);
172 $this->assertContains("20121212PC31_1-1.pdf", $listFiles_no_p0);
173 $this->assertContains("20130207F6.pdf", $listFiles_no_p0);
174
175 //Nom de dossier vide
176 $path = "../var/digitalization/Todo/PC0130551200002.P0";
177 $path_no_p0 = "../var/digitalization/Todo/DP0130551200001";
178 //Retour de la fontion listFiles
179 $listFiles = $digitalizedDocument->listFiles($path);
180 $listFiles_no_p0 = $digitalizedDocument->listFiles($path_no_p0);
181 //On vérifie que le tableau retourné est vide
182 $this->assertEquals($listFiles, null);
183 $this->assertEquals($listFiles_no_p0, null);
184 $digitalizedDocument->__destruct();
185 // Destruction de la classe *om_application*
186 $f->__destruct();
187 }
188
189 /*
190 * Test la fonction extractMetadataFromFilename
191 */
192 public function testExtractMetadataFromFilename() {
193 // Instanciation de la classe *om_application*
194 $f = $this->get_inst_om_application("admin", "admin");
195 $f->disableLog();
196 $digitalizedDocument = new DigitalizedDocument($f);
197 //Nom possible de document
198 $filename = "20091106AUTPCP.pdf";
199 //Retour de la fonction extractMetadataFromFilename
200 $extractMetadataFromFilename = $digitalizedDocument->extractMetadataFromFilename($filename);
201 //On vérifie les données retournées
202 $this->assertEquals($extractMetadataFromFilename["title"], "AUTPCP");
203 $this->assertEquals($extractMetadataFromFilename["dateEvenementDocument"], "06/11/2009");
204
205 //Nom possible de document avec version
206 $filename = "20130420ART-1.pdf";
207 //Retour de la fonction extractMetadataFromFilename
208 $extractMetadataFromFilename = $digitalizedDocument->extractMetadataFromFilename($filename);
209 //On vérifie les données retournées
210 $this->assertEquals($extractMetadataFromFilename["title"], "ART");
211 $this->assertEquals($extractMetadataFromFilename["dateEvenementDocument"], "20/04/2013");
212
213 //Nom possible de document avec code de nomenclature externe
214 $filename = "20121212PC31_1.pdf";
215 //Retour de la fonction extractMetadataFromFilename
216 $extractMetadataFromFilename = $digitalizedDocument->extractMetadataFromFilename($filename);
217 //On vérifie les données retournées
218 $this->assertEquals($extractMetadataFromFilename["title"], "PC31_1");
219 $this->assertEquals($extractMetadataFromFilename["dateEvenementDocument"], "12/12/2012");
220
221 //Nom possible de document avec code de nomenclature externe et version
222 $filename = "20121212PC31_1-1.pdf";
223 //Retour de la fonction extractMetadataFromFilename
224 $extractMetadataFromFilename = $digitalizedDocument->extractMetadataFromFilename($filename);
225 //On vérifie les données retournées
226 $this->assertEquals($extractMetadataFromFilename["title"], "PC31_1");
227 $this->assertEquals($extractMetadataFromFilename["dateEvenementDocument"], "12/12/2012");
228
229 //Nom erroné de document
230 $filename = "20591212.pdf";
231 //Retour de la fonction extractMetadataFromFilename
232 $extractMetadataFromFilename = $digitalizedDocument->extractMetadataFromFilename($filename);
233 //On vérifie que le tableau retourné est vide
234 $this->assertEquals($extractMetadataFromFilename, null);
235 $digitalizedDocument->__destruct();
236 // Destruction de la classe *om_application*
237 $f->__destruct();
238 }
239
240 /**
241 * Test la fonction extractMetadataToFilestorage
242 */
243 public function testExtractMetadataToFilestorage() {
244 // Instanciation de la classe *om_application*
245 $f = $this->get_inst_om_application("admin", "admin");
246 $f->disableLog();
247 $digitalizedDocument = new DigitalizedDocument($f);
248 //Nom possible de dossier
249 $path = "../var/digitalization/Todo/PC0130551200001.P0";
250 $path_no_p0 = "../var/digitalization/Todo/PA0130551200001";
251 //Nom possible de document
252 $filename = "20091106AUTPCP.pdf";
253 //Retour de la fonction extractMetadataToFilestorage
254 $extractMetadataToFilestorage = $digitalizedDocument->extractMetadataToFilestorage($path, $filename);
255 $extractMetadataToFilestorage_no_p0 = $digitalizedDocument->extractMetadataToFilestorage($path_no_p0, $filename);
256 //On vérifie les données retournées
257 $this->assertEquals($extractMetadataToFilestorage['filename'], '20091106AUTPCP.pdf');
258 $this->assertEquals($extractMetadataToFilestorage['size'], '17435');
259 $this->assertEquals($extractMetadataToFilestorage['mimetype'], 'application/pdf');
260 // Pour le dossier sans P0
261 $this->assertEquals($extractMetadataToFilestorage_no_p0['filename'], '20091106AUTPCP.pdf');
262 $this->assertEquals($extractMetadataToFilestorage_no_p0['size'], '17435');
263 $this->assertEquals($extractMetadataToFilestorage_no_p0['mimetype'], 'application/pdf');
264
265 //Nom possible de document avec une nomenclature externe
266 $filename = "20121212PC31_1.pdf";
267 //Retour de la fonction extractMetadataToFilestorage
268 $extractMetadataToFilestorage = $digitalizedDocument->extractMetadataToFilestorage($path, $filename);
269 $extractMetadataToFilestorage_no_p0 = $digitalizedDocument->extractMetadataToFilestorage($path_no_p0, $filename);
270 //On vérifie les données retournées
271 $this->assertEquals($extractMetadataToFilestorage['filename'], '20121212PC31_1.pdf');
272 $this->assertEquals($extractMetadataToFilestorage['size'], '17435');
273 $this->assertEquals($extractMetadataToFilestorage['mimetype'], 'application/pdf');
274 // Pour le dossier sans P0
275 $this->assertEquals($extractMetadataToFilestorage_no_p0['filename'], '20121212PC31_1.pdf');
276 $this->assertEquals($extractMetadataToFilestorage_no_p0['size'], '17435');
277 $this->assertEquals($extractMetadataToFilestorage_no_p0['mimetype'], 'application/pdf');
278
279 //Chemin document erroné
280 $path = "";
281 $path_no_p0 = "";
282 //Nom possible de document
283 $filename = "20091106AUTPCP.pdf";
284 //Retour de la fonction extractMetadataToFilestorage
285 $extractMetadataToFilestorage = $digitalizedDocument->extractMetadataToFilestorage($path, $filename);
286 $extractMetadataToFilestorage_no_p0 = $digitalizedDocument->extractMetadataToFilestorage($path_no_p0, $filename);
287 //On vérifie que le retour est null
288 $this->assertEquals($extractMetadataToFilestorage, null);
289 $this->assertEquals($extractMetadataToFilestorage_no_p0, null);
290 $digitalizedDocument->__destruct();
291 // Destruction de la classe *om_application*
292 $f->__destruct();
293 }
294
295 /**
296 * Test la fonction createFileTemporary
297 */
298 public function testCreateFileTemporary() {
299 // Instanciation de la classe *om_application*
300 $f = $this->get_inst_om_application("admin", "admin");
301 $f->disableLog();
302 $digitalizedDocument = new DigitalizedDocument($f);
303 // XXX hack temporaire : la commande suivante permet de ne pas avoir d'erreurs de
304 // permissions système dues à l'enchaînement des tests *testREST.php* et
305 // *testDigitalizedDocument.php*
306 exec("sudo chmod 777 -R ../var > /dev/null 2>&1");
307
308 //Nom possible d'un répertoire
309 $foldername = "PC0130551200001.P0";
310 $foldername_no_p0 = "PA0130551200001";
311 //Nom possible de dossier
312 $path = "../var/digitalization/Todo/PC0130551200001.P0";
313 $path_no_p0 = "../var/digitalization/Todo/PA0130551200001";
314 //Nom possible de document
315 $filename = "20091106AUTPCP.pdf";
316 //Construit les métadonnées
317 $metadata = array();
318 //Données récupérées pour le filestorage
319 $metadata = $digitalizedDocument->extractMetadataToFilestorage($path, $filename);
320 $metadata_no_p0 = $digitalizedDocument->extractMetadataToFilestorage($path_no_p0, $filename);
321 //Recupère le contenu du fichier
322 $file_content = file_get_contents($path.'/'.$filename);
323 $file_content_no_p0 = file_get_contents($path.'/'.$filename);
324
325 //Retour de la fonction createFile
326 $createFile = $digitalizedDocument->createFileTemporary($file_content, $metadata);
327 $createFile_no_p0 = $digitalizedDocument->createFileTemporary($file_content_no_p0, $metadata_no_p0);
328 //On vérifie que l'action s'est bien déroulée
329 $file_exists_filestorage = $digitalizedDocument->filestorage->get_temporary($createFile);
330 $file_exists_filestorage_no_p0 = $digitalizedDocument->filestorage->get_temporary($createFile_no_p0);
331 $this->assertTrue($file_exists_filestorage != null);
332 $this->assertTrue($file_exists_filestorage_no_p0 != null);
333 $digitalizedDocument->__destruct();
334 // Destruction de la classe *om_application*
335 $f->__destruct();
336 }
337
338 /**
339 * Test la fonction createDocumentNumerise
340 */
341 public function testCreateDocumentNumerise() {
342 // Instanciation de la classe *om_application*
343 $f = $this->get_inst_om_application("admin", "admin");
344 $f->disableLog();
345 $digitalizedDocument = new DigitalizedDocument($f);
346 //Nom possible d'un répertoire
347 $foldername = "PC0130551200001.P0";
348 $foldername_no_p0 = "PA0130551200001";
349 //Identifiant du dossier
350 $dossier = "PC0130551200001P0";
351 $dossier_no_p0 = "PA0130551200001";
352 //Nom possible de dossier
353 $path = "../var/digitalization/Todo/PC0130551200001.P0";
354 $path_no_p0 = "../var/digitalization/Todo/PA0130551200001";
355 //Nom du document
356 $filename = "20091106AUTPCP.pdf";
357 //Création du fichier
358 $newfile = "20091106RIPC05.pdf";
359 copy($path.'/'.$filename, $path.'/'.$newfile);
360 copy($path_no_p0.'/'.$filename, $path_no_p0.'/'.$newfile);
361 //Instance document_numerise
362 require_once "../obj/document_numerise.class.php";
363 $document_numerise = new document_numerise("]", $f->db, NULL);
364
365 //Construit les métadonnées
366 $metadata = array();
367 $metadata_no_p0 = array();
368 //Données récupérées pour le filestorage
369 $metadata = $digitalizedDocument->extractMetadataToFilestorage($path, $newfile);
370 $metadata_no_p0 = $digitalizedDocument->extractMetadataToFilestorage($path_no_p0, $newfile);
371
372 //Recupère le contenu du fichier
373 $file_content = file_get_contents($path.'/'.$newfile);
374 $file_content_no_p0 = file_get_contents($path_no_p0.'/'.$newfile);
375
376 //Créer le fichier temporaire
377 $uid = $digitalizedDocument->createFileTemporary($file_content, $metadata);
378 $uid_no_p0 = $digitalizedDocument->createFileTemporary($file_content_no_p0, $metadata_no_p0);
379
380 //Retour de la fonction createFileStorage
381 $createDocumentNumerise = $digitalizedDocument->createDocumentNumerise($document_numerise, $uid, $dossier, $newfile, $f->db, NULL);
382 $createDocumentNumerise_no_p0 = $digitalizedDocument->createDocumentNumerise($document_numerise, $uid_no_p0, $dossier_no_p0, $newfile, $f->db, NULL);
383
384 //Supprime le fichier laissé dans le dossier Todo
385 unlink($path.'/'.$newfile);
386 unlink($path_no_p0.'/'.$newfile);
387
388 //On vérifie que le fichier a bien été créé dans le filestorage
389 $uid = $this->get_uid_by_id($f, $createDocumentNumerise);
390 $uid_no_p0 = $this->get_uid_by_id($f, $createDocumentNumerise_no_p0);
391
392 $file_exists_filestorage = $digitalizedDocument->filestorage->get($uid);
393 $file_exists_filestorage_no_p0 = $digitalizedDocument->filestorage->get($uid_no_p0);
394
395 $this->assertTrue($file_exists_filestorage != null);
396 $this->assertTrue($file_exists_filestorage_no_p0 != null);
397
398 //Uid pas présent dans la bdd
399 $uid = uniqid();
400 $uid_no_p0 = uniqid();
401 //On vérifie que false est bien retourné
402 $this->assertEquals($this->checkLinkFile($f, $uid), false);
403 $this->assertEquals($this->checkLinkFile($f, $uid_no_p0), false);
404 $digitalizedDocument->__destruct();
405 // Destruction de la classe *om_application*
406 $f->__destruct();
407 }
408
409 /**
410 * Test la fonction moveDocumentNumerise
411 */
412 public function testMoveDocumentNumerise() {
413 // Instanciation de la classe *om_application*
414 $f = $this->get_inst_om_application("admin", "admin");
415 $f->disableLog();
416 $digitalizedDocument = new DigitalizedDocument($f);
417 //Dossier source
418 $pathSrc = "../var/digitalization/Todo/PC0130551200001.P0";
419 $pathSrc_no_p0 = "../var/digitalization/Todo/PA0130551200001";
420 //Dossier de destination
421 $pathDes = "../var/digitalization/Done/PC0130551200001.P0";
422 $pathDes_no_p0 = "../var/digitalization/Done/PA0130551200001";
423 //Nom du fichier
424 $filename = "20091106AUTPCP.pdf";
425 //Retour de la fonction moveDocumentNumerise
426 $moveFile = $digitalizedDocument->moveDocumentNumerise($pathSrc, $pathDes, $filename);
427 $moveFile_no_p0 = $digitalizedDocument->moveDocumentNumerise($pathSrc_no_p0, $pathDes_no_p0, $filename);
428 //On vérifie que l'action s'est bien déroulée
429 //Le document doit être présent dans la destination
430 $file_exists_destination = file_exists($pathDes.'/'.$filename);
431 $file_exists_destination_no_p0 = file_exists($pathDes_no_p0.'/'.$filename);
432 $this->assertEquals($file_exists_destination, true);
433 $this->assertEquals($file_exists_destination_no_p0, true);
434 //Le document ne doit plus être présent dans la source
435 $file_exists_source = file_exists($pathSrc.'/'.$filename);
436 $file_exists_source_no_p0 = file_exists($pathSrc_no_p0.'/'.$filename);
437 $this->assertEquals($file_exists_source, false);
438 $this->assertEquals($file_exists_source_no_p0, false);
439
440 //Remet le fichier dans todo pour les autres tests
441 rename($pathDes.'/'.$filename, $pathSrc.'/'.$filename);
442 rename($pathDes_no_p0.'/'.$filename, $pathSrc_no_p0.'/'.$filename);
443 $digitalizedDocument->__destruct();
444 // Destruction de la classe *om_application*
445 $f->__destruct();
446 }
447
448 /**
449 * Test la fonction purgeFiles
450 */
451 public function testPurgeFiles() {
452 // Instanciation de la classe *om_application*
453 $f = $this->get_inst_om_application("admin", "admin");
454 $f->disableLog();
455 $digitalizedDocument = new DigitalizedDocument($f);
456 //Dossier source
457 $pathSrc = "../var/digitalization/Todo/PC0130551200001.P0";
458 $pathSrc_no_p0 = "../var/digitalization/Todo/PA0130551200001";
459 //Dossier de destination
460 $pathDes = "../var/digitalization/Done/PC0130551200001.P0";
461 $pathDes_no_p0 = "../var/digitalization/Done/PA0130551200001";
462 //Création dossier
463 if (!file_exists($pathDes)) {
464 mkdir("../var/digitalization/Done/PC0130551200001.P0");
465 }
466 if (!file_exists($pathDes_no_p0)) {
467 mkdir("../var/digitalization/Done/PA0130551200001");
468 }
469 //Nom du fichier
470 $filename = "20091106AUTPCP.pdf";
471 //Met le fichier dans Done
472 copy($pathSrc.'/'.$filename, $pathDes.'/'.$filename);
473 copy($pathSrc_no_p0.'/'.$filename, $pathDes_no_p0.'/'.$filename);
474
475 //fichier
476 $file = $pathDes.'/'.$filename;
477 $file_no_p0 = $pathDes_no_p0.'/'.$filename;
478 //Date de l'import du document
479 $dateImport = "2012-01-01";
480 //Nombre jour
481 $nbDay = 60;
482 //Retour de la fonction purge
483 $purgeFiles = $digitalizedDocument->purgeFiles($file, $dateImport, $nbDay);
484 //On vérifie que l'action s'est bien déroulée
485 $this->assertEquals($purgeFiles, true);
486
487 //Création du fichier
488 $newfile = "20091106RIPC05.pdf";
489 copy($pathSrc.'/'.$filename, $pathDes.'/'.$newfile);
490 copy($pathSrc_no_p0.'/'.$filename, $pathDes_no_p0.'/'.$newfile);
491 //fichier
492 $file = $pathDes.'/'.$newfile;
493 $file_no_p0 = $pathDes_no_p0.'/'.$newfile;
494 //Retour de la fonction purge sans les paramètres de date
495 $purgeFiles = $digitalizedDocument->purgeFiles($file);
496 $purgeFiles_no_p0 = $digitalizedDocument->purgeFiles($file_no_p0);
497 //On vérifie que l'action s'est bien déroulée
498 $this->assertEquals($purgeFiles, true);
499 $this->assertEquals($purgeFiles_no_p0, true);
500
501 //Création du fichier
502 $newfile = "20091106DGPC03.pdf";
503 copy($pathSrc.'/'.$filename, $pathDes.'/'.$newfile);
504 copy($pathSrc_no_p0.'/'.$filename, $pathDes_no_p0.'/'.$newfile);
505
506 //fichier
507 $file = $pathDes.'/'.$newfile;
508 $file_no_p0 = $pathDes_no_p0.'/'.$newfile;
509 //Date de l'import du document
510 $dateImport = date('d-m-Y');
511 //Nombre jour
512 $nbDay = 60;
513 //Retour de la fonction purge
514 $purgeFiles = $digitalizedDocument->purgeFiles($file, $dateImport, $nbDay);
515 $purgeFiles_no_p0 = $digitalizedDocument->purgeFiles($file_no_p0, $dateImport, $nbDay);
516
517 //On vérifie que l'action s'est bien déroulée
518 $this->assertEquals($purgeFiles, false);
519 $this->assertEquals($purgeFiles_no_p0, false);
520
521 //Supprime le fichier laissé dans le dossier Done
522 unlink($pathDes.'/'.$newfile);
523 unlink($pathDes_no_p0.'/'.$newfile);
524 $digitalizedDocument->__destruct();
525 // Destruction de la classe *om_application*
526 $f->__destruct();
527 }
528
529 /**
530 * Test la fonction run_import
531 */
532 public function test_run_import() {
533 // Instanciation de la classe *om_application*
534 $f = $this->get_inst_om_application("admin", "admin");
535 $f->disableLog();
536 $digitalizedDocument = new DigitalizedDocument($f);
537 //Nom de dossier
538 $pathSrc = "../var/digitalization/Todo/PC0130551200001.P0";
539 $pathSrc_no_p0 = "../var/digitalization/Todo/PA0130551200001";
540 //Nom dossier destination
541 $pathDes = "../var/digitalization/Done/PC0130551200001.P0";
542 $pathDes_no_p0 = "../var/digitalization/Done/PA0130551200001";
543 //Renomme le fichier pdf
544 $path = "../var/digitalization/Todo/PC0130551200001.P0";
545 $listFiles = $digitalizedDocument->listFiles($pathSrc);
546 $listFiles_no_p0 = $digitalizedDocument->listFiles($pathSrc_no_p0);
547 //On vérifie les documents retourné
548 rename($pathSrc.'/'."20091106AUTPCP.pdf", $pathSrc.'/'."20091106NDL.pdf");
549 rename($pathSrc.'/'."20091106AUTPCP-1.pdf", $pathSrc.'/'."20091106NDL-1.pdf");
550 rename($pathSrc_no_p0.'/'."20091106AUTPCP.pdf", $pathSrc_no_p0.'/'."20091106NDL.pdf");
551 rename($pathSrc_no_p0.'/'."20091106AUTPCP-1.pdf", $pathSrc_no_p0.'/'."20091106NDL-1.pdf");
552
553 //Retour de la fonction run_import
554 $run_import = $digitalizedDocument->run_import($pathSrc, $pathDes);
555 $run_import_no_p0 = $digitalizedDocument->run_import($pathSrc_no_p0, $pathDes_no_p0);
556 //On vérifie que l'action s'est bien déroulée
557 $this->assertEquals($run_import, true);
558 $this->assertEquals($run_import_no_p0, true);
559 $this->assertEquals(count($digitalizedDocument->filenameError), 0);
560
561 //Replace les fichiers dans le fichier source
562 copy($pathDes.'/'."20091106NDL.pdf", $pathSrc.'/'."20091106AUTPCP.pdf");
563 copy($pathDes.'/'."20091106NDL-1.pdf", $pathSrc.'/'."20091106AUTPCP-1.pdf");
564 copy($pathDes_no_p0.'/'."20091106NDL.pdf", $pathSrc_no_p0.'/'."20091106AUTPCP.pdf");
565 copy($pathDes_no_p0.'/'."20091106NDL-1.pdf", $pathSrc_no_p0.'/'."20091106AUTPCP-1.pdf");
566 $digitalizedDocument->__destruct();
567 // Destruction de la classe *om_application*
568 $f->__destruct();
569 }
570
571 /**
572 * Test la fonction run_purge
573 */
574 public function test_run_purge() {
575 // Instanciation de la classe *om_application*
576 $f = $this->get_inst_om_application("admin", "admin");
577 $f->disableLog();
578 $digitalizedDocument = new DigitalizedDocument($f);
579 //
580 copy('binary_files/20091106AUTPCP.pdf', '../var/digitalization/Todo/PC0130551200001.P0/20091106AUTPCP.pdf');
581 copy('binary_files/20091106AUTPCP-1.pdf', '../var/digitalization/Todo/PC0130551200001.P0/20091106AUTPCP-1.pdf');
582 copy('binary_files/20091106AUTPCP.pdf', '../var/digitalization/Todo/PA0130551200001/20091106AUTPCP.pdf');
583 copy('binary_files/20091106AUTPCP-1.pdf', '../var/digitalization/Todo/PA0130551200001/20091106AUTPCP-1.pdf');
584 //Dossier source
585 $pathSrc = "../var/digitalization/Todo/PC0130551200001.P0";
586 $pathSrc_no_p0 = "../var/digitalization/Todo/PA0130551200001";
587 //Dossier de destination
588 $pathDes = "../var/digitalization/Done/PC0130551200001.P0";
589 $pathDes_no_p0 = "../var/digitalization/Done/PA0130551200001";
590 //Création dossier
591 if (!file_exists($pathDes)) {
592 mkdir("../var/digitalization/Done/PC0130551200001.P0");
593 }
594 if (!file_exists($pathDes_no_p0)) {
595 mkdir("../var/digitalization/Done/PA0130551200001");
596 }
597 //Nom du fichier
598 $filename = "20091106AUTPCP.pdf";
599 //Met le fichier 20091106AUTPCP dans Done
600 copy($pathSrc.'/'.$filename, $pathDes.'/'.$filename);
601 copy($pathSrc_no_p0.'/'.$filename, $pathDes_no_p0.'/'.$filename);
602 //Création du fichier 20091106RIPC05
603 $newfile = "20091106RIPC05.pdf";
604 copy($pathSrc.'/'.$filename, $pathDes.'/'.$newfile);
605 copy($pathSrc_no_p0.'/'.$filename, $pathDes_no_p0.'/'.$newfile);
606 //Création du fichier 20091106DGPC03
607 $newfile = "20091106DGPC03.pdf";
608 copy($pathSrc.'/'.$filename, $pathDes.'/'.$newfile);
609 copy($pathSrc_no_p0.'/'.$filename, $pathDes_no_p0.'/'.$newfile);
610
611 //Retour de la fonction run_purge sans date
612 $run_purge = $digitalizedDocument->run_purge($pathDes);
613 $run_purge_no_p0 = $digitalizedDocument->run_purge($pathDes_no_p0);
614
615 //On vérifie que l'action s'est bien déroulée
616 $this->assertEquals($run_purge, true);
617 $this->assertEquals($run_purge_no_p0, true);
618 $digitalizedDocument->__destruct();
619 // Destruction de la classe *om_application*
620 $f->__destruct();
621 }
622 }

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26