@@ -46,12 +46,13 @@ public function testConstructorWithValidConfig()
4646 /**
4747 * @testdox BaseServerConfig should return a boolean when asked whether UserSubDomains are Enabled
4848 * @covers ::getUserSubDomainsEnabled
49+ * @covers ::castToBool
4950 * @dataProvider provideBooleans
5051 */
51- public function testGetUserSubDomainsEnabled ($ expected )
52+ public function testGetUserSubDomainsEnabled ($ value , $ expected )
5253 {
5354 $ configMock = $ this ->createMock (IConfig::class);
54- $ configMock ->method ('getAppValue ' )->willReturn ($ expected );
55+ $ configMock ->method ('getAppValue ' )->willReturn ($ value );
5556
5657 $ baseServerConfig = new BaseServerConfig ($ configMock );
5758 $ actual = $ baseServerConfig ->getUserSubDomainsEnabled ();
@@ -80,10 +81,11 @@ public function testGetUserSubDomainsEnabledFromAppConfig()
8081 /**
8182 * @testdox BaseServerConfig should set value in AppConfig when asked to set UserSubDomainsEnabled
8283 * @covers ::setUserSubDomainsEnabled
84+ * @covers ::castToBool
8385 *
8486 * @dataProvider provideBooleans
8587 */
86- public function testSetUserSubDomainsEnabled ($ expected )
88+ public function testSetUserSubDomainsEnabled ($ value , $ expected )
8789 {
8890 $ configMock = $ this ->createMock (IConfig::class);
8991 $ configMock ->expects ($ this ->atLeast (1 ))
@@ -92,7 +94,7 @@ public function testSetUserSubDomainsEnabled($expected)
9294 ;
9395
9496 $ baseServerConfig = new BaseServerConfig ($ configMock );
95- $ baseServerConfig ->setUserSubDomainsEnabled ($ expected );
97+ $ baseServerConfig ->setUserSubDomainsEnabled ($ value );
9698 }
9799
98100 /**
@@ -142,8 +144,32 @@ public function testGetClientRegistrationForNonExistingClient()
142144 public function provideBooleans ()
143145 {
144146 return [
145- 'false ' => [false ],
146- 'true ' => [true ],
147+ // Only 'boolean', 'NULL', 'integer', 'string' are allowed
148+ // @TODO: Add test for type that trigger a TypeError:
149+ // - array
150+ // - callable
151+ // - float
152+ // - object
153+ // - resource
154+ // @TODO: Add test for values that trigger a TypeError
155+ // 'integer:-1' => ['value'=> -1],
156+ // 'integer:2' => ['value'=> 2],
157+ // 'string:-1' => ['value'=> '-1'],
158+ // 'string:2' => ['value'=> '2'],
159+ // 'string:foo' => ['value'=> 'foo'],
160+ // 'string:NULL' => ['value'=> 'NULL'],
161+ 'boolean:false ' => ['value ' => false , 'expected ' => false ],
162+ 'boolean:true ' => ['value ' => true , 'expected ' => true ],
163+ 'integer:0 ' => ['value ' => 0 , 'expected ' => false ],
164+ 'integer:1 ' => ['value ' => 1 , 'expected ' => true ],
165+ 'NULL ' => ['value ' => null , 'expected ' => false ],
166+ 'string:0 ' => ['value ' => '0 ' , 'expected ' => false ],
167+ 'string:1 ' => ['value ' => '1 ' , 'expected ' => true ],
168+ 'string:empty ' => ['value ' => '' , 'expected ' => false ],
169+ 'string:false ' => ['value ' => 'false ' , 'expected ' => false ],
170+ 'string:FALSE ' => ['value ' => 'FALSE ' , 'expected ' => false ],
171+ 'string:true ' => ['value ' => 'true ' , 'expected ' => true ],
172+ 'string:TRUE ' => ['value ' => 'TRUE ' , 'expected ' => true ],
147173 ];
148174 }
149175}
0 commit comments