public function testGetAndSet() { $data = ['config1' => 1, 'db' => ['dsn' => 'mysql:123', 'user' => 'aoi_miyazaki']]; $obj = new ConcreteResource2($data); $this->assertEquals(1, $obj->getResource('config1')); $this->assertSame($data, $obj->getResource(), 'get all'); $this->assertSame($data, $obj->getResourceData(), 'get all'); $this->assertEquals('aoi_miyazaki', $obj->getResource('db.user')); $this->assertSame(['dsn' => 'mysql:123', 'user' => 'aoi_miyazaki'], $obj->getResource('db')); $this->assertEquals('aoi-no-password', $obj->getResource('db.password', 'aoi-no-password'), 'default'); $this->assertEquals(null, $obj->getResource('db.user.name')); // set $obj->setResource('config1', 2); $this->assertEquals(2, $obj->getResource('config1')); $obj->setResource('db.user', 'aya_ueto'); $this->assertEquals('aya_ueto', $obj->getResource('db.user')); // new value $obj->setResource('hoge.fuga.piyo', 'hogera'); $this->assertEquals('hogera', $obj->getResource('hoge.fuga.piyo')); $this->assertSame(['piyo' => 'hogera'], $obj->getResource('hoge.fuga')); $this->assertSame(['fuga' => ['piyo' => 'hogera']], $obj->getResource('hoge')); // non array new value $obj->setResource('non_array.value', 100); $this->assertEquals(100, $obj->getResource('non_array.value')); // clear $obj->clearResource(); $this->assertSame([], $obj->getResourceData()); $this->assertEquals(null, $obj->getResource('config1')); }