Dietcube\Components\ArrayResourceTraitTest::testGetAndSet PHP Method

testGetAndSet() public method

public testGetAndSet ( )
    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'));
    }