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

Annotation of /trunk/tests/testGeneral.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 7685 - (hide 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 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     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 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     $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 nmeucci 4112
339    
340 nhaye 4422 /**
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 softime 6565 /**
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 nhaye 4422
397 softime 6565 $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 mbroquet 3730 }
434    
435     ?>

Properties

Name Value
svn:keywords "Id"

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26