lithium\tests\cases\data\entity\DocumentTest::testUnsetNested PHP Method

testUnsetNested() public method

public testUnsetNested ( )
    public function testUnsetNested()
    {
        $data = array('a' => 1, 'b' => array('ba' => 21, 'bb' => 22), 'c' => array('ca' => 31, 'cb' => array('cba' => 321, 'cbb' => 322)), 'd' => array('da' => 41));
        $model = $this->_model;
        $doc = new Document(compact('model', 'data'));
        $expected = $data;
        $result = $doc->data();
        $this->assertEqual($expected, $result);
        unset($doc->c->cb->cba);
        unset($expected['c']['cb']['cba']);
        $result = $doc->data();
        $this->assertEqual($expected, $result);
        unset($doc->b->bb);
        unset($expected['b']['bb']);
        $result = $doc->data();
        $this->assertEqual($expected, $result);
        unset($doc->a);
        unset($expected['a']);
        $result = $doc->data();
        $this->assertEqual($expected, $result);
        unset($doc->d);
        unset($expected['d']);
        $result = $doc->data();
        $this->assertEqual($expected, $result);
        $exportedRoot = $doc->export();
        $this->assertEqual(array('a' => true, 'd' => true), $exportedRoot['remove']);
        $exportedB = $doc->b->export();
        $this->assertEqual(array('bb' => true), $exportedB['remove']);
        $exportedCCB = $doc->c->cb->export();
        $this->assertEqual(array('cba' => true), $exportedCCB['remove']);
    }