GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Completed
Push — 2.2 ( f4c653...5ece81 )
by Vermeulen
02:18
created

Modules   A

Complexity

Total Complexity 12

Size/Duplication

Total Lines 237
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 5
Bugs 0 Features 2
Metric Value
wmc 12
c 5
b 0
f 2
lcom 1
cbo 1
dl 0
loc 237
rs 10
1
<?php
2
/**
3
 * Fichier de test pour une class
4
 */
5
6
namespace BFW\test\unit;
7
use \atoum;
8
9
require_once(__DIR__.'/../common.php');
10
11
/**
12
 * Test de la class Modules
13
 */
14
class Modules extends atoum
15
{
16
    /**
17
     * @var $class : Instance de la class Modules
18
     */
19
    protected $class;
20
21
    /**
22
     * @var $mock : Instance du mock pour la class Modules
23
     */
24
    protected $mock;
25
26
    /**
27
     * Instanciation de la class avant chaque méthode de test
28
     */
29
    public function beforeTestMethod($testMethod)
30
    {
31
        //$this->class = new \BFW\Modules();
32
        $this->mock  = new MockModules();
33
    }
34
35
    /**
36
     * Test du constructeur : Modules()
37
     */
38
    public function testModules()
39
    {
40
        $this->mock  = new MockModules();
41
        $this->object($this->mock->_kernel)->isInstanceOf('\BFW\Kernel');
42
    }
43
44
    /**
45
     * Test de la méthode newMod($name, $params=array())
46
     */
47
    public function testNewMod()
48
    {
49
        $this->mock->newMod('test');
50
        
51
        $this->array($this->mock->modList['test'])->isEqualTo(array(
52
            'name' => 'test',
53
            'time' => modulesLoadTime_EndInit,
54
            'require' => array(),
55
            'runFile' => 'inclus.php',
56
            'priority' => 0
57
        ));
58
        
59
        $this->mock->newMod('test2', array(
60
            'require' => 'test',
61
            'time'    => modulesLoadTime_Visiteur,
62
            'priority' => 1
63
        ));
64
        $this->array($this->mock->modList['test2'])->isEqualTo(array(
65
            'name' => 'test2',
66
            'time' => modulesLoadTime_Visiteur,
67
            'require' => array('test'),
68
            'runFile' => 'inclus.php',
69
            'priority' => 1
70
        ));
71
        
72
        $mock = $this->mock;
73
        $this->exception(function() use($mock)
74
        {
75
            $mock->newMod('test');
76
        })->message->contains('Le module test existe déjà.');
77
        
78
        $this->exception(function() use($mock)
79
        {
80
            $mock->newMod('testFail', 'test');
81
        })->message->contains('Les options du module testFail doivent être déclarer sous la forme d\'un array.');
82
    }
83
84
    /**
85
     * Test de la méthode exists($name)
86
     */
87
    public function testExists()
88
    {
89
        $this->mock->newMod('test');
90
        $this->boolean($this->mock->exists('test'))->isTrue();
91
        $this->boolean($this->mock->exists('test2'))->isFalse();
92
    }
93
94
    /**
95
     * Test de la méthode isLoad($name)
96
     */
97
    public function testIsLoad()
98
    {
99
        $this->mock->newMod('test');
100
        $this->boolean($this->mock->isLoad('test'))->isFalse();
101
        $this->boolean($this->mock->isLoad('test2'))->isFalse();
102
        
103
        $this->mock->loaded('test');
104
        $this->boolean($this->mock->isLoad('test'))->isTrue();
105
    }
106
107
    /**
108
     * Test de la méthode loaded($name)
109
     */
110
    public function testLoaded()
111
    {
112
        $this->mock->newMod('test');
113
        $this->mock->loaded('test');
114
        
115
        $this->array($this->mock->modLoad)->isEqualTo(array(0 => 'test'));
116
        
117
        $mock = $this->mock;
118
        $this->exception(function() use($mock)
119
        {
120
            $mock->loaded('test2');
121
        })->message->contains('Module test2 not exists.');
122
    }
123
124
    /**
125
     * Test de la méthode addPath($name, $path)
126
     */
127
    public function testAddPath()
128
    {
129
        $mock = $this->mock;
130
        $this->exception(function() use($mock)
131
        {
132
            $mock->addPath('test', 'path');
133
        })->message->contains('Le module test n\'existe pas.');
134
        
135
        $this->mock->newMod('test');
136
        $mock->addPath('test', 'path');
137
        $this->string($this->mock->modList['test']['path'])->isEqualTo('path');
138
    }
139
140
    /**
141
     * Test de la méthode listToLoad($timeToLoad)
142
     */
143
    public function testListToLoad()
144
    {
145
        $this->array($this->mock->listToLoad('time'))->isEqualTo(array());
146
        $this->mock->newMod('test');
147
        
148
        $this->array($this->mock->listToLoad(modulesLoadTime_EndInit))->isEqualTo(array('test'));
149
    }
150
151
    /**
152
     * Test de la méthode modToLoad($mod, &$arrayToLoad)
153
     */
154
    public function testModToLoad()
155
    {
156
        $arrayToLoad = array();
157
        $this->mock->newMod('test');
158
        
159
        //Test d'un module sans dépendance et non chargé
160
        $testModInfos = $this->mock->modList['test'];
161
        $this->boolean($this->mock->modToLoad($testModInfos, $arrayToLoad))->isTrue();
162
        
163
        //Test d'un module sans dépendance et déjà chargé
164
        $testModInfos = $this->mock->modList['test'];
165
        $this->boolean($this->mock->modToLoad($testModInfos, $arrayToLoad))->isTrue();
166
        
167
        //Test d'un module avec dépendance sans erreur
168
        $this->mock->newMod('test2', array('require' => 'test'));
169
        $test2ModInfos = $this->mock->modList['test'];
170
        $this->boolean($this->mock->modToLoad($test2ModInfos, $arrayToLoad))->isTrue();
171
        
172
        $mock = &$this->mock;
173
        
174
        //Test d'un module avec une dépendance qui n'existe pas dans la liste des modules
175
        $this->mock->newMod('test3', array('require' => 'notExist'));
176
        $this->exception(function() use($mock, $arrayToLoad)
177
        {
178
            $test3ModInfos = $mock->modList['test3'];
179
            $mock->modToLoad($test3ModInfos, $arrayToLoad);
180
        })->message->contains('La dépendance notExist du module test3 n\'a pas été trouvé.');
181
        
182
        //Test d'un module avec une dépendance qui existe mais qui n'est pas chargé.
183
        $this->mock->newMod('test4', array('time' => modulesLoadTime_EndInit));
184
        $this->mock->newMod('test5', array(
185
            'time'    => modulesLoadTime_Visiteur,
186
            'require' => 'test4'
187
        ));
188
    }
189
190
    /**
191
     * Test de la méthode listNotLoad($regen=false)
192
     */
193
    public function testListNotLoad()
194
    {
195
        //Aucun module existe, donc la liste est vide et automatiquement généré
196
        $this->array($this->mock->listNotLoad())->isEqualTo(array());
197
        
198
        $this->mock->newMod('test');
199
        
200
        //La liste est toujours vide car non regénéré
201
        $this->array($this->mock->listNotLoad())->isEqualTo(array());
202
        
203
        //La liste est regénéré
204
        $this->array($this->mock->listNotLoad(true))->isEqualTo(array(
205
            'test' => array(
206
                'name'    => 'test',
207
                'time'    => 'endInit',
208
                'require' => array(),
209
                'runFile' => 'inclus.php',
210
                'priority' => 0
211
            )
212
        ));
213
    }
214
215
    /**
216
     * Test de la méthode isModulesNotLoad()
217
     */
218
    public function testIsModulesNotLoad()
219
    {
220
        $this->boolean($this->mock->isModulesNotLoad())->isFalse();
221
        
222
        $this->mock->newMod('test');
223
        $this->boolean($this->mock->isModulesNotLoad())->isFalse(); //Cache
224
        
225
        $this->mock->listNotLoad(true); //Kill le cache
226
        $this->boolean($this->mock->isModulesNotLoad())->isTrue();
227
    }
228
229
    /**
230
     * Test de la méthode getModuleInfos($name)
231
     */
232
    public function testGetModuleInfos()
233
    {
234
        $this->mock->newMod('test');
235
        $this->array($this->mock->getModuleInfos('test'))->isEqualTo(array(
236
            'name'    => 'test',
237
            'time'    => 'endInit',
238
            'require' => array(),
239
            'runFile' => 'inclus.php',
240
            'priority' => 0
241
        ));
242
        
243
        $mock = $this->mock;
244
        $this->exception(function() use($mock)
245
        {
246
            $mock->getModuleInfos('test2');
247
        })->message->contains('Le module test2 n\'existe pas.');
248
    }
249
250
}
251
252
/**
253
 * Mock pour la classe Modules
254
 */
255
class MockModules extends \BFW\Modules
256
{
257
    /**
258
     * Accesseur get
259
     */
260
    public function __get($name) {return $this->$name;}
261
262
    /**
263
     * Test de la méthode modToLoad(&$mod, &$arrayToLoad, $waitToLoad)
264
     */
265
    public function modToLoad(&$mod, &$arrayToLoad, $waitToLoad=array())
266
    {
267
        return parent::modToLoad($mod, $arrayToLoad, $waitToLoad);
268
    }
269
}
270