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

Contents of /trunk/tests/testGeneral.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 7685 - (show annotations)
Thu Jan 11 15:26:41 2018 UTC (7 years ago) by softime
File size: 14993 byte(s)
* Merge de la version 4.6.0

1 <?php
2 /**
3 * Ce fichier regroupe les tests unitaire général à l'application OpenADS
4 *
5 * @package openfoncier
6 * @version SVN : $Id: testGeneral.php 5673 2015-12-21 19:35:24Z nmeucci $
7 */
8
9 /**
10 * Cette classe permet de tester unitairement les fonctions de l'application.
11 */
12 class General extends PHPUnit_Framework_TestCase {
13
14 /**
15 * Méthode lancée en début de traitement
16 */
17 public function setUp() {
18
19 // Instancie la timezone
20 date_default_timezone_set('Europe/Paris');
21 echo ' = '.get_class().'.'.str_replace('test_', '', $this->getName())."\r\n";
22 }
23
24 public function onNotSuccessfulTest(Exception $e){
25 echo 'Line '.$e->getLine().' : '.$e->getMessage()."\r\n";
26 parent::onNotSuccessfulTest($e);
27 }
28
29 /**
30 * Méthode lancée en fin de traitement
31 */
32 public function tearDown() {
33
34 //
35 }
36
37 /**
38 * Test la fonction mois_date() de la classe Utils.
39 */
40 public function test_01_utils_mois_date() {
41 // Instance de la classe Utils
42 require_once "../obj/utils.class.php";
43 @session_start();
44 $_SESSION['collectivite'] = 1;
45 $_SESSION['login'] = "admin";
46 $_SERVER['REQUEST_URI'] = "";
47 $f = new utils("nohtml");
48 $f->disableLog();
49
50 // Avec des mois
51
52 // Pour les additions
53 // Initialisation des tableaux
54 $tab_date_dep = array();
55 $tab_delay = array();
56 $tab_date_fin = array();
57
58 // Tableau des date de départ
59 $tab_date_dep = array(
60 0 => "2013-12-31",
61 1 => "2014-01-31",
62 2 => "2014-01-01",
63 3 => "2014-01-31",
64 4 => "2015-12-31",
65 5 => "",
66 6 => "",
67 7 => "",
68 8 => "2015-12-31",
69 9 => "2015-12-31",
70 10 => "openADS",
71 11 => "openADS",
72 12 => "openADS",
73 );
74 // Tableau des delais
75 $tab_delay = array(
76 0 => "2",
77 1 => "5",
78 2 => "12",
79 3 => "27",
80 4 => "2",
81 5 => "2",
82 6 => "openads",
83 7 => "",
84 8 => "openADS",
85 9 => "",
86 10 => "2",
87 11 => "openads",
88 12 => "",
89 );
90 // Tableau des date résultat
91 $tab_date_fin = array(
92 0 => "2014-02-28",
93 1 => "2014-06-30",
94 2 => "2015-01-01",
95 3 => "2016-04-30",
96 4 => "2016-02-29",
97 5 => null,
98 6 => null,
99 7 => null,
100 8 => "2015-12-31",
101 9 => "2015-12-31",
102 10 => null,
103 11 => null,
104 12 => null,
105 );
106
107 // Pour chaque date
108 foreach ($tab_date_dep as $key => $date_dep) {
109 // Calcul la date résultat
110 $date_fin = $f->mois_date($date_dep, $tab_delay[$key], "+");
111 // Vérifie que la date résultat est correct
112 $this->assertEquals($date_fin, $tab_date_fin[$key]);
113 }
114
115 // Pour les soustractions
116 // Initialisation des tableaux
117 $tab_date_dep = array();
118 $tab_delay = array();
119 $tab_date_fin = array();
120
121 // Tableau des date de départ
122 $tab_date_dep = array(
123 0 => "2014-01-31",
124 );
125 // Tableau des delais
126 $tab_delay = array(
127 0 => "4",
128 );
129 // Tableau des date résultat
130 $tab_date_fin = array(
131 0 => "2013-09-30",
132 );
133
134 // Pour chaque date
135 foreach ($tab_date_dep as $key => $date_dep) {
136 // Calcul la date résultat
137 $date_fin = $f->mois_date($date_dep, $tab_delay[$key], "-");
138 // Vérifie que la date résultat est correct
139 $this->assertEquals($date_fin, $tab_date_fin[$key]);
140 }
141
142 // Avec des jours
143
144 // Pour les additions
145 // Initialisation des tableaux
146 $tab_date_dep = array();
147 $tab_delay = array();
148 $tab_date_fin = array();
149
150 // Tableau des date de départ
151 $tab_date_dep = array(
152 0 => "2013-12-31",
153 1 => "2014-01-31",
154 2 => "2014-01-01",
155 3 => "2014-01-31",
156 4 => "2015-12-31",
157 5 => "",
158 6 => "",
159 7 => "",
160 8 => "2015-12-31",
161 9 => "2015-12-31",
162 10 => "openADS",
163 11 => "openADS",
164 12 => "openADS",
165 );
166 // Tableau des delais
167 $tab_delay = array(
168 0 => "2",
169 1 => "5",
170 2 => "12",
171 3 => "27",
172 4 => "2",
173 5 => "2",
174 6 => "openads",
175 7 => "",
176 8 => "openADS",
177 9 => "",
178 10 => "2",
179 11 => "openads",
180 12 => "",
181 );
182 // Tableau des dates résultats
183 $tab_date_fin = array(
184 0 => "2014-01-02",
185 1 => "2014-02-05",
186 2 => "2014-01-13",
187 3 => "2014-02-27",
188 4 => "2016-01-02",
189 5 => null,
190 6 => null,
191 7 => null,
192 8 => "2015-12-31",
193 9 => "2015-12-31",
194 10 => null,
195 11 => null,
196 12 => null,
197 );
198
199 // Pour chaque date
200 foreach ($tab_date_dep as $key => $date_dep) {
201 // Calcul la date résultat
202 $date_fin = $f->mois_date($date_dep, $tab_delay[$key], "+", "jour");
203 // Vérifie que la date résultat est correct
204 $this->assertEquals($date_fin, $tab_date_fin[$key]);
205 }
206
207 // Pour les soustractions
208 // Initialisation des tableaux
209 $tab_date_dep = array();
210 $tab_delay = array();
211 $tab_date_fin = array();
212
213 // Tableau des date de départ
214 $tab_date_dep = array(
215 0 => "2014-01-31",
216 );
217 // Tableau des delais
218 $tab_delay = array(
219 0 => "4",
220 );
221 // Tableau des date résultat
222 $tab_date_fin = array(
223 0 => "2014-01-27",
224 );
225
226 // Pour chaque date
227 foreach ($tab_date_dep as $key => $date_dep) {
228 // Calcul la date résultat
229 $date_fin = $f->mois_date($date_dep, $tab_delay[$key], "-", "jour");
230 // Vérifie que la date résultat est correct
231 $this->assertEquals($date_fin, $tab_date_fin[$key]);
232 }
233
234 // Destruction de la classe Utils
235 $f->__destruct();
236 }
237
238
239 /**
240 * Vérification de la méthode permettant de selectionner le logo de la bonne
241 * collectivité.
242 */
243 function test_02_TNR_selection_du_logo_dans_les_editions() {
244 // Instance de la classe Utils
245 require_once "../obj/utils.class.php";
246 @session_start();
247 $_SESSION['collectivite'] = 1;
248 $_SESSION['login'] = "admin";
249 $_SERVER['REQUEST_URI'] = "";
250 $f = new utils("nohtml");
251 $GLOBALS['f'] = $f;
252 $f->disableLog();
253
254 $edition = $f->get_inst__om_edition();
255 // Vérification du logo de collectivité mono dans le cas où :
256 // - un logo multi actif est défini
257 // - un logo actif pour la collectivité est défini
258 $logo = $edition->get_logo_from_collectivite("logopdf.png", 2);
259 // XXX le double // dans le path est nécessaire
260 $logo_valid = array(
261 "file" => "../var/filestorage//88/8815/88154c6f68d3a0e1928c84fc0187993d",
262 "w" => 43.349333333333334,
263 "h" => 43.349333333333334,
264 "type" => "png",
265 );
266 // Le logo commune doit être retourné par la méthode
267 $this->assertEquals($logo, $logo_valid);
268
269 // Désactivation du logo de la commune
270 $val_logo["actif"] = 'f';
271 $f->db->autoExecute(DB_PREFIXE."om_logo", $val_logo, DB_AUTOQUERY_UPDATE, "om_logo=2");
272
273 // Vérification du logo de collectivité mono dans le cas où :
274 // - un logo multi actif est défini
275 // - un logo la collectivité est inactif
276 $logo = $edition->get_logo_from_collectivite("logopdf.png", 1);
277 // XXX le double // dans le path est nécessaire
278 $logo_valid = array(
279 "file" => "../var/filestorage//d2/d20a/d20a5c36d3b83464bab63035a7f61901",
280 "w" => 43.349333333333334,
281 "h" => 43.349333333333334,
282 "type" => "png",
283 );
284 // Le logo de la collectivité multi doit être retourné
285 $this->assertEquals($logo, $logo_valid);
286
287 // Désactivation du logo de la commune
288 $val_logo["actif"] = 'f';
289 $f->db->autoExecute(DB_PREFIXE."om_logo", $val_logo, DB_AUTOQUERY_UPDATE, "om_logo=6");
290
291 // Vérification du logo de collectivité mono dans le cas où aucun logo
292 // n'est activé
293 $logo = $edition->get_logo_from_collectivite("logopdf.png", 1);
294 $logo_valid = null;
295 // Un valeur null doit être retournée
296 $this->assertEquals($logo, $logo_valid);
297 // Destruction de la classe Utils
298 $f->__destruct();
299 }
300
301 /**
302 * Vérification de la méthode permettant de formater le corps du courriel
303 * notifié aux communes.
304 */
305 function test_03_instruction_formater_modele() {
306 // Instance de la classe Utils
307 require_once "../obj/utils.class.php";
308 @session_start();
309 $_SESSION['collectivite'] = 1;
310 $_SESSION['login'] = "admin";
311 $_SERVER['REQUEST_URI'] = "";
312 $f = new utils("nohtml");
313 $f->disableLog();
314 $GLOBALS["f"] = $f;
315 // template du modèle
316 $template = 'DI : <DOSSIER_INSTRUCTION>
317 LIEN : <URL_INSTRUCTION>
318 INSTRUCTION : <ID_INSTRUCTION>';
319 // résultat attendu
320 $di = 'PC01';
321 $inst = 7;
322 $url = 'http://localhost/openads/spg/direct_link.php?obj=dossier_instruction&action=3';
323 $url .= '&direct_field=dossier&direct_form=instruction&direct_action=3&direct_idx='.$inst;
324 $link = '<a href="'.$url.'">'.$url.'</a>';
325 $expected = 'DI : '.$di.'<br/>';
326 $expected .= 'LIEN : '.$link.'<br/>';
327 $expected .= 'INSTRUCTION : '.$inst;
328 // Instance de la classe instruction
329 require_once "../obj/instruction.class.php";
330 $instr = new instruction(']', $f->db, DEBUG);
331 // Traitement
332 $result = $instr->formater_modele($template, $di, $inst);
333 // Vérification du traitement
334 $this->assertEquals($expected, $result);
335 // Destruction de la classe Utils
336 $f->__destruct();
337 }
338
339
340 /**
341 * TNR du bug de champs de fusion [*_correspondant] dans la om_requete n°7 "dossier".
342 * Le test vérifie qu'une seule ligne est retournée par la requête et qu'elle contient
343 * bien le nom du pétitionnaire principal
344 */
345 function test_05_TNR_om_requete_dossier() {
346 // Instance de la classe Utils
347 require_once "../obj/utils.class.php";
348 @session_start();
349 $_SESSION['collectivite'] = 1;
350 $_SESSION['login'] = "admin";
351 $_SERVER['REQUEST_URI'] = "";
352 $f = new utils("nohtml");
353 $f->disableLog();
354 $GLOBALS["f"] = $f;
355
356 require_once "../obj/om_requete.class.php";
357 $om_requete = new om_requete(7);
358
359 // récupération de la requête SQL
360 $sql = $om_requete->getVal('requete');
361 // remplacement des &idx par la valeur du dossier
362 $sql = str_replace('&idx', "AT0130551300001P0", $sql);
363 // définition du schéma
364 $sql = str_replace('&DB_PREFIXE', DB_PREFIXE, $sql);
365 // exécution de la requête
366 $res = $f->db->query($sql);
367 $f->isDatabaseError($res);
368 $count = $res->numRows();
369 // La om_requete doit retourner une seule ligne
370 $this->assertEquals(1, $count);
371 // récupération du résultat de la om_requete
372 $values = &$res->fetchRow(DB_FETCHMODE_ASSOC);
373 // La valeur de la colonne nom_correspondant doit être le nom du pétitionnaire
374 // principal
375 $this->assertEquals("Dupont Jean", $values['nom_correspondant']);
376 // Destruction de la classe Utils
377 $f->__destruct();
378 }
379
380 /**
381 * TNR de la methode factorisé de création de dossier_message
382 */
383 function test_06_TNR_dossier_message() {
384 // Instanciation de tout les requis
385 require_once "../obj/utils.class.php";
386 @session_start();
387 $_SESSION['collectivite'] = 2;
388 $_SESSION['login'] = "admin";
389 $_SERVER['REQUEST_URI'] = "";
390 $f = new utils("nohtml");
391 $f->disableLog();
392 $GLOBALS["f"] = $f;
393 require_once "../obj/dossier_message.class.php";
394 $dossier_message_factory = new dossier_message(0, $f->db, 0);
395 $dossier_message_val = array();
396
397 $dossier_message_val['contenu'] = 'Test Success';
398 $dossier_message_val['dossier'] = 'AT0130551200001P0';
399 $dossier_message_val['type'] = _('Ajout de pièce(s)');
400 $dossier_message_val['emetteur'] = 'instr';
401 $dossier_message_val['login'] = 'instr';
402 $dossier_message_val['date_emission'] = date('Y-m-d H:i:s');
403 $add = $dossier_message_factory->add_notification_message($dossier_message_val);
404 $this->assertEquals(true, $add);
405 $this->assertEquals(true, isset($dossier_message_factory->valF[$dossier_message_factory->clePrimaire]));
406 $dossier_message = new dossier_message($dossier_message_factory->valF[$dossier_message_factory->clePrimaire], $f->db, 0);
407 $this->assertEquals($dossier_message_val['dossier'], $dossier_message->getVal('dossier'));
408 $this->assertEquals('t', $dossier_message->getVal('lu'));
409
410 $dossier_message_val['contenu'] = 'Test Duplicata';
411 $add = $dossier_message_factory->add_notification_message($dossier_message_val);
412 $this->assertEquals(true, $add);
413
414 $dossier_message_val['contenu'] = 'Test nouveau type même dossier';
415 $dossier_message_val['type'] = _('Autorisation contestée');
416 $add = $dossier_message_factory->add_notification_message($dossier_message_val);
417 $this->assertEquals(true, $add);
418
419 $dossier_message_val['contenu'] = 'Test message non lu';
420 $dossier_message_val['dossier'] = 'AZ0130551200001P0';
421 $dossier_message_val['emetteur'] = $f->get_connected_user_login_name();
422 $dossier_message_val['login'] = $_SESSION['login'];
423 $add = $dossier_message_factory->add_notification_message($dossier_message_val);
424 $this->assertEquals(true, $add);
425 $dossier_message = new dossier_message($dossier_message_factory->valF[$dossier_message_factory->clePrimaire], $f->db, 0);
426 $this->assertEquals('f', $dossier_message->getVal('lu'));
427
428 // Destruction de la classe Utils
429 $f->__destruct();
430 }
431
432
433 }
434
435 ?>

Properties

Name Value
svn:keywords "Id"

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26