-
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathConfigSectionConfigTest.php
89 lines (79 loc) · 2.33 KB
/
ConfigSectionConfigTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<?php
namespace Gt\Config\Test;
use Gt\Config\ConfigSection;
use BadMethodCallException;
class ConfigSectionConfigTest extends ConfigTestCase {
public function testGet() {
$data = [
"name" => "unit test",
"example" => "123",
];
$sut = new ConfigSection("example", $data);
self::assertNull($sut->get("nothing"));
self::assertEquals($data["name"], $sut->get("name"));
self::assertEquals($data["example"], $sut->get("example"));
}
public function testTypeSafeGetter() {
$data = [
"name" => "unit test",
"number" => "123",
"decimal" => "123.456",
"birthday" => "1988-04-05",
];
$sut = new ConfigSection("example", $data);
self::assertSame(123, $sut->getInt("number"));
self::assertSame(123, $sut->getInt("decimal"));
self::assertSame(123.456, $sut->getFloat("decimal"));
self::assertNull($sut->getInt("absolutely-nothing"));
self::assertNull($sut->getDateTime("nothing"));
$dateTime = $sut->getDateTime("birthday");
self::assertEquals("April 5th 1988", $dateTime->format("F jS Y"));
}
public function testArrayAccess() {
$data = [
"name" => "unit test",
"number" => "123",
"decimal" => "123.456",
"birthday" => "1988-04-05",
];
$sut = new ConfigSection("example", $data);
foreach($data as $key => $value) {
self::assertEquals($value, $sut->get($key));
}
}
public function testIterator() {
$data = [
"name" => "unit test",
"number" => "123",
"decimal" => "123.456",
"birthday" => "1988-04-05",
];
$sut = new ConfigSection("example", $data);
foreach($sut as $key => $value) {
self::assertEquals($value, $data[$key]);
}
}
public function testImmutableUnset() {
$sut = new ConfigSection("example", []);
self::expectException(BadMethodCallException::class);
unset($sut["something"]);
}
public function testImmutableSet() {
$sut = new ConfigSection("example", []);
self::expectException(BadMethodCallException::class);
$sut["something"] = "can not set";
}
public function testWith() {
$data = [
"name" => "unit test",
"number" => "123",
"decimal" => "123.456",
"birthday" => "1988-04-05",
];
$sutOriginal = new ConfigSection("example", $data);
$sut = $sutOriginal->with("added", "new value");
self::assertNotSame($sutOriginal, $sut);
self::assertNull($sutOriginal->get("added"));
self::assertEquals("new value", $sut->get("added"));
}
}