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

Annotation of /trunk/tests/testGeneral.php

Parent Directory Parent Directory | Revision Log Revision Log


Revision 6929 - (hide annotations)
Thu Jun 15 16:57:15 2017 UTC (7 years, 7 months ago) by softime
File size: 15031 byte(s)
* Merge de la 4.2.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     $f->disableLog();
252    
253     require_once "../core/om_edition.class.php";
254     $edition = new edition();
255     $edition->f = $f;
256     // Vérification du logo de collectivité mono dans le cas où :
257     // - un logo multi actif est défini
258     // - un logo actif pour la collectivité est défini
259 nhaye 4174 $logo = $edition->get_logo_from_collectivite("logopdf.png", 2);
260 fmichon 4074 // XXX le double // dans le path est nécessaire
261 mbroquet 3730 $logo_valid = array(
262 fmichon 4073 "file" => "../var/filestorage//88/8815/88154c6f68d3a0e1928c84fc0187993d",
263 mbroquet 3730 "w" => 43.349333333333334,
264     "h" => 43.349333333333334,
265     "type" => "png",
266     );
267     // Le logo commune doit être retourné par la méthode
268     $this->assertEquals($logo, $logo_valid);
269    
270     // Désactivation du logo de la commune
271     $val_logo["actif"] = 'f';
272     $f->db->autoExecute(DB_PREFIXE."om_logo", $val_logo, DB_AUTOQUERY_UPDATE, "om_logo=2");
273    
274     // Vérification du logo de collectivité mono dans le cas où :
275     // - un logo multi actif est défini
276     // - un logo la collectivité est inactif
277     $logo = $edition->get_logo_from_collectivite("logopdf.png", 1);
278 fmichon 4074 // XXX le double // dans le path est nécessaire
279 mbroquet 3730 $logo_valid = array(
280 fmichon 4073 "file" => "../var/filestorage//d2/d20a/d20a5c36d3b83464bab63035a7f61901",
281 mbroquet 3730 "w" => 43.349333333333334,
282     "h" => 43.349333333333334,
283     "type" => "png",
284     );
285     // Le logo de la collectivité multi doit être retourné
286     $this->assertEquals($logo, $logo_valid);
287    
288     // Désactivation du logo de la commune
289     $val_logo["actif"] = 'f';
290     $f->db->autoExecute(DB_PREFIXE."om_logo", $val_logo, DB_AUTOQUERY_UPDATE, "om_logo=6");
291    
292     // Vérification du logo de collectivité mono dans le cas où aucun logo
293     // n'est activé
294     $logo = $edition->get_logo_from_collectivite("logopdf.png", 1);
295     $logo_valid = null;
296     // Un valeur null doit être retournée
297     $this->assertEquals($logo, $logo_valid);
298     // Destruction de la classe Utils
299     $f->__destruct();
300     }
301    
302 nmeucci 4108 /**
303     * Vérification de la méthode permettant de formater le corps du courriel
304     * notifié aux communes.
305     */
306     function test_03_instruction_formater_modele() {
307     // Instance de la classe Utils
308     require_once "../obj/utils.class.php";
309     @session_start();
310     $_SESSION['collectivite'] = 1;
311     $_SESSION['login'] = "admin";
312     $_SERVER['REQUEST_URI'] = "";
313     $f = new utils("nohtml");
314     $f->disableLog();
315     $GLOBALS["f"] = $f;
316     // template du modèle
317     $template = 'DI : <DOSSIER_INSTRUCTION>
318     LIEN : <URL_INSTRUCTION>
319     INSTRUCTION : <ID_INSTRUCTION>';
320     // résultat attendu
321     $di = 'PC01';
322     $inst = 7;
323     $url = 'http://localhost/openads/spg/direct_link.php?obj=dossier_instruction&action=3';
324     $url .= '&direct_field=dossier&direct_form=instruction&direct_action=3&direct_idx='.$inst;
325     $link = '<a href="'.$url.'">'.$url.'</a>';
326     $expected = 'DI : '.$di.'<br/>';
327     $expected .= 'LIEN : '.$link.'<br/>';
328     $expected .= 'INSTRUCTION : '.$inst;
329     // Instance de la classe instruction
330     require_once "../obj/instruction.class.php";
331     $instr = new instruction(']', $f->db, DEBUG);
332     // Traitement
333     $result = $instr->formater_modele($template, $di, $inst);
334     // Vérification du traitement
335     $this->assertEquals($expected, $result);
336     // Destruction de la classe Utils
337     $f->__destruct();
338     }
339 nmeucci 4112
340    
341 nhaye 4422 /**
342     * TNR du bug de champs de fusion [*_correspondant] dans la om_requete n°7 "dossier".
343     * Le test vérifie qu'une seule ligne est retournée par la requête et qu'elle contient
344     * bien le nom du pétitionnaire principal
345     */
346     function test_05_TNR_om_requete_dossier() {
347     // Instance de la classe Utils
348     require_once "../obj/utils.class.php";
349     @session_start();
350     $_SESSION['collectivite'] = 1;
351     $_SESSION['login'] = "admin";
352     $_SERVER['REQUEST_URI'] = "";
353     $f = new utils("nohtml");
354     $f->disableLog();
355     $GLOBALS["f"] = $f;
356    
357     require_once "../obj/om_requete.class.php";
358     $om_requete = new om_requete(7);
359    
360     // récupération de la requête SQL
361     $sql = $om_requete->getVal('requete');
362     // remplacement des &idx par la valeur du dossier
363     $sql = str_replace('&idx', "AT0130551300001P0", $sql);
364     // définition du schéma
365     $sql = str_replace('&DB_PREFIXE', DB_PREFIXE, $sql);
366     // exécution de la requête
367     $res = $f->db->query($sql);
368     $f->isDatabaseError($res);
369     $count = $res->numRows();
370     // La om_requete doit retourner une seule ligne
371     $this->assertEquals(1, $count);
372     // récupération du résultat de la om_requete
373     $values = &$res->fetchRow(DB_FETCHMODE_ASSOC);
374     // La valeur de la colonne nom_correspondant doit être le nom du pétitionnaire
375     // principal
376     $this->assertEquals("Dupont Jean", $values['nom_correspondant']);
377     // Destruction de la classe Utils
378     $f->__destruct();
379     }
380    
381 softime 6565 /**
382     * TNR de la methode factorisé de création de dossier_message
383     */
384     function test_06_TNR_dossier_message() {
385     // Instanciation de tout les requis
386     require_once "../obj/utils.class.php";
387     @session_start();
388     $_SESSION['collectivite'] = 2;
389     $_SESSION['login'] = "admin";
390     $_SERVER['REQUEST_URI'] = "";
391     $f = new utils("nohtml");
392     $f->disableLog();
393     $GLOBALS["f"] = $f;
394     require_once "../obj/dossier_message.class.php";
395     $dossier_message_factory = new dossier_message(0, $f->db, 0);
396     $dossier_message_val = array();
397 nhaye 4422
398 softime 6565 $dossier_message_val['contenu'] = 'Test Success';
399     $dossier_message_val['dossier'] = 'AT0130551200001P0';
400     $dossier_message_val['type'] = _('Ajout de pièce(s)');
401     $dossier_message_val['emetteur'] = 'instr';
402     $dossier_message_val['login'] = 'instr';
403     $dossier_message_val['date_emission'] = date('Y-m-d H:i:s');
404     $add = $dossier_message_factory->add_notification_message($dossier_message_val);
405     $this->assertEquals(true, $add);
406     $this->assertEquals(true, isset($dossier_message_factory->valF[$dossier_message_factory->clePrimaire]));
407     $dossier_message = new dossier_message($dossier_message_factory->valF[$dossier_message_factory->clePrimaire], $f->db, 0);
408     $this->assertEquals($dossier_message_val['dossier'], $dossier_message->getVal('dossier'));
409     $this->assertEquals('t', $dossier_message->getVal('lu'));
410    
411     $dossier_message_val['contenu'] = 'Test Duplicata';
412     $add = $dossier_message_factory->add_notification_message($dossier_message_val);
413     $this->assertEquals(true, $add);
414    
415     $dossier_message_val['contenu'] = 'Test nouveau type même dossier';
416     $dossier_message_val['type'] = _('Autorisation contestée');
417     $add = $dossier_message_factory->add_notification_message($dossier_message_val);
418     $this->assertEquals(true, $add);
419    
420     $dossier_message_val['contenu'] = 'Test message non lu';
421     $dossier_message_val['dossier'] = 'AZ0130551200001P0';
422     $dossier_message_val['emetteur'] = $f->get_connected_user_login_name();
423     $dossier_message_val['login'] = $_SESSION['login'];
424     $add = $dossier_message_factory->add_notification_message($dossier_message_val);
425     $this->assertEquals(true, $add);
426     $dossier_message = new dossier_message($dossier_message_factory->valF[$dossier_message_factory->clePrimaire], $f->db, 0);
427     $this->assertEquals('f', $dossier_message->getVal('lu'));
428    
429     // Destruction de la classe Utils
430     $f->__destruct();
431     }
432    
433    
434 mbroquet 3730 }
435    
436     ?>

Properties

Name Value
svn:keywords "Id"

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26