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

Annotation of /trunk/tests/testGeneral.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 8408 - (hide 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 mbroquet 3730 <?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 fmichon 8397 class General extends PHPUnit\Framework\TestCase {
13 mbroquet 3730
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 fmichon 8408 public function onNotSuccessfulTest(Throwable $e){
25 mbroquet 3730 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 softime 7685 $GLOBALS['f'] = $f;
252 mbroquet 3730 $f->disableLog();
253    
254 softime 7685 $edition = $f->get_inst__om_edition();
255 mbroquet 3730 // 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 nhaye 4174 $logo = $edition->get_logo_from_collectivite("logopdf.png", 2);
259 fmichon 4074 // XXX le double // dans le path est nécessaire
260 mbroquet 3730 $logo_valid = array(
261 fmichon 4073 "file" => "../var/filestorage//88/8815/88154c6f68d3a0e1928c84fc0187993d",
262 mbroquet 3730 "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 fmichon 4074 // XXX le double // dans le path est nécessaire
278 mbroquet 3730 $logo_valid = array(
279 fmichon 4073 "file" => "../var/filestorage//d2/d20a/d20a5c36d3b83464bab63035a7f61901",
280 mbroquet 3730 "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 nmeucci 4108 /**
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 softime 7996 $url = 'http://localhost/openads/app/index.php?module=form&direct_link=true&obj=dossier_instruction&action=3';
323 nmeucci 4108 $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 softime 7996 $instr = $f->get_inst__om_dbform(array(
330     "obj" => "instruction",
331     "idx" => "]",
332     ));
333 nmeucci 4108 // 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 nmeucci 4112
341    
342 nhaye 4422 /**
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 softime 7996 $om_requete = $f->get_inst__om_dbform(array(
359     "obj" => "om_requete",
360     "idx" => 7,
361     ));
362 nhaye 4422
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 softime 6565 /**
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 softime 7996 $dossier_message_factory = $f->get_inst__om_dbform(array(
398     "obj" => "dossier_message",
399     "idx" => 0,
400     ));
401 softime 6565 $dossier_message_val = array();
402 nhaye 4422
403 softime 6565 $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 softime 7996 $dossier_message = $f->get_inst__om_dbform(array(
413     "obj" => "dossier_message",
414     "idx" => $dossier_message_factory->valF[$dossier_message_factory->clePrimaire],
415     ));
416 softime 6565 $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 softime 7996 $dossier_message = $f->get_inst__om_dbform(array(
435     "obj" => "dossier_message",
436     "idx" => $dossier_message_factory->valF[$dossier_message_factory->clePrimaire],
437     ));
438 softime 6565 $this->assertEquals('f', $dossier_message->getVal('lu'));
439    
440     // Destruction de la classe Utils
441     $f->__destruct();
442     }
443    
444    
445 mbroquet 3730 }
446    
447     ?>

Properties

Name Value
svn:keywords "Id"

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26