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

Contents of /trunk/tests/testGeneral.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 8408 - (show annotations)
Mon Dec 3 19:41:11 2018 UTC (6 years, 1 month ago) by fmichon
File size: 15221 byte(s)
* Tests : Correction du "PHP Warning:  Declaration of XXX::onNotSuccessfulTest(Exception $e) should be compatible with PHPUnit\Framework\TestCase::onNotSuccessfulTest(Throwable $t)".

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(Throwable $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/app/index.php?module=form&direct_link=true&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 $instr = $f->get_inst__om_dbform(array(
330 "obj" => "instruction",
331 "idx" => "]",
332 ));
333 // Traitement
334 $result = $instr->formater_modele($template, $di, $inst);
335 // Vérification du traitement
336 $this->assertEquals($expected, $result);
337 // Destruction de la classe Utils
338 $f->__destruct();
339 }
340
341
342 /**
343 * TNR du bug de champs de fusion [*_correspondant] dans la om_requete n°7 "dossier".
344 * Le test vérifie qu'une seule ligne est retournée par la requête et qu'elle contient
345 * bien le nom du pétitionnaire principal
346 */
347 function test_05_TNR_om_requete_dossier() {
348 // Instance de la classe Utils
349 require_once "../obj/utils.class.php";
350 @session_start();
351 $_SESSION['collectivite'] = 1;
352 $_SESSION['login'] = "admin";
353 $_SERVER['REQUEST_URI'] = "";
354 $f = new utils("nohtml");
355 $f->disableLog();
356 $GLOBALS["f"] = $f;
357
358 $om_requete = $f->get_inst__om_dbform(array(
359 "obj" => "om_requete",
360 "idx" => 7,
361 ));
362
363 // récupération de la requête SQL
364 $sql = $om_requete->getVal('requete');
365 // remplacement des &idx par la valeur du dossier
366 $sql = str_replace('&idx', "AT0130551300001P0", $sql);
367 // définition du schéma
368 $sql = str_replace('&DB_PREFIXE', DB_PREFIXE, $sql);
369 // exécution de la requête
370 $res = $f->db->query($sql);
371 $f->isDatabaseError($res);
372 $count = $res->numRows();
373 // La om_requete doit retourner une seule ligne
374 $this->assertEquals(1, $count);
375 // récupération du résultat de la om_requete
376 $values = &$res->fetchRow(DB_FETCHMODE_ASSOC);
377 // La valeur de la colonne nom_correspondant doit être le nom du pétitionnaire
378 // principal
379 $this->assertEquals("Dupont Jean", $values['nom_correspondant']);
380 // Destruction de la classe Utils
381 $f->__destruct();
382 }
383
384 /**
385 * TNR de la methode factorisé de création de dossier_message
386 */
387 function test_06_TNR_dossier_message() {
388 // Instanciation de tout les requis
389 require_once "../obj/utils.class.php";
390 @session_start();
391 $_SESSION['collectivite'] = 2;
392 $_SESSION['login'] = "admin";
393 $_SERVER['REQUEST_URI'] = "";
394 $f = new utils("nohtml");
395 $f->disableLog();
396 $GLOBALS["f"] = $f;
397 $dossier_message_factory = $f->get_inst__om_dbform(array(
398 "obj" => "dossier_message",
399 "idx" => 0,
400 ));
401 $dossier_message_val = array();
402
403 $dossier_message_val['contenu'] = 'Test Success';
404 $dossier_message_val['dossier'] = 'AT0130551200001P0';
405 $dossier_message_val['type'] = _('Ajout de pièce(s)');
406 $dossier_message_val['emetteur'] = 'instr';
407 $dossier_message_val['login'] = 'instr';
408 $dossier_message_val['date_emission'] = date('Y-m-d H:i:s');
409 $add = $dossier_message_factory->add_notification_message($dossier_message_val);
410 $this->assertEquals(true, $add);
411 $this->assertEquals(true, isset($dossier_message_factory->valF[$dossier_message_factory->clePrimaire]));
412 $dossier_message = $f->get_inst__om_dbform(array(
413 "obj" => "dossier_message",
414 "idx" => $dossier_message_factory->valF[$dossier_message_factory->clePrimaire],
415 ));
416 $this->assertEquals($dossier_message_val['dossier'], $dossier_message->getVal('dossier'));
417 $this->assertEquals('t', $dossier_message->getVal('lu'));
418
419 $dossier_message_val['contenu'] = 'Test Duplicata';
420 $add = $dossier_message_factory->add_notification_message($dossier_message_val);
421 $this->assertEquals(true, $add);
422
423 $dossier_message_val['contenu'] = 'Test nouveau type même dossier';
424 $dossier_message_val['type'] = _('Autorisation contestée');
425 $add = $dossier_message_factory->add_notification_message($dossier_message_val);
426 $this->assertEquals(true, $add);
427
428 $dossier_message_val['contenu'] = 'Test message non lu';
429 $dossier_message_val['dossier'] = 'AZ0130551200001P0';
430 $dossier_message_val['emetteur'] = $f->get_connected_user_login_name();
431 $dossier_message_val['login'] = $_SESSION['login'];
432 $add = $dossier_message_factory->add_notification_message($dossier_message_val);
433 $this->assertEquals(true, $add);
434 $dossier_message = $f->get_inst__om_dbform(array(
435 "obj" => "dossier_message",
436 "idx" => $dossier_message_factory->valF[$dossier_message_factory->clePrimaire],
437 ));
438 $this->assertEquals('f', $dossier_message->getVal('lu'));
439
440 // Destruction de la classe Utils
441 $f->__destruct();
442 }
443
444
445 }
446
447 ?>

Properties

Name Value
svn:keywords "Id"

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26