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 |
?> |