-
- public function testSetArray() {
- $config = ["foo" => "bar", "arr" => [1,2,3]];
- $object = new Config($config);
- $object["foo"] = [$object->foo, "baz"];
- $object["arr"][] = 4;
-
- $this->assertEquals(["bar", "baz"], $object["foo"]->toArray());
- $this->assertEquals([1,2,3,4], $object["arr"]->toArray());
-
- $this->assertEquals(["foo"=>["bar","baz"], "arr"=>[1,2,3,4]], $object->toArray());
- }
-
- public function testApply() {
- $config = [
- "level1" => [
- "level2" => [
- "level3" => "123"
- ],
- "level2-1" => [
- "level3-1" => "321"
- ]
- ]
- ];
- $object = new Config($config);
- $this->assertEquals("123", $object->level1["level2"]->level3);
- $reverse = function ($v){return strrev($v);};
- $object->apply([
- "level1" => [
- "level2" => [
- "level3" => $reverse
- ],
- "level2-1" => [
- "level3-1" => $reverse
- ]
- ]
- ]);
- $compare = [
- "level1" => [
- "level2" => [
- "level3" => "321"
- ],
- "level2-1" => [
- "level3-1" => "123"
- ]
- ]
- ];
- $this->assertEquals($compare, $object->toArray());
-
- $object->apply(function() {
- return null;
- });
- $this->assertEquals(["level1" => null], $object->toArray());
- }
-
- public function testIterator() {
- $config = [
- "level1-0" => [
- "level2-0" => "1-0.2-0",
- "level2-1" => "1-0.2-1",
- "level2-2" => [
- "level3" => "1-0.2-2.3"
- ]
- ],
- "level1-1" => [
- 1,2,3
- ]
- ];
- $object = new Config($config);
- $array = [];
- foreach (new \RecursiveIteratorIterator($object) as $key => $val) {
- $array[$key] = $val;
- }
- $compare = [
- 'level2-0' => '1-0.2-0',
- 'level2-1' => '1-0.2-1',
- 'level3' => '1-0.2-2.3',
- 1, 2, 3
- ];
- $this->assertEquals($compare, $array);
- }