Наследование: use trait ArrayResourceTrait
Пример #1
0
 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'));
 }