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

Contents of /trunk/tests/testDigitalizedDocument.php

Parent Directory Parent Directory | Revision Log Revision Log


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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26