lithium\tests\cases\data\source\DatabaseTest::testSchema PHP Method

testSchema() public method

public testSchema ( )
    public function testSchema()
    {
        $model = $this->_model;
        $model::config();
        $modelName = '';
        $expected = array($modelName => array('id', 'author_id', 'title', 'created'));
        $result = $this->_db->schema(new Query(compact('model')));
        $this->assertEqual($expected, $result);
        $query = new Query(compact('model') + array('fields' => '*'));
        $result = $this->_db->schema($query);
        $this->assertEqual($expected, $result);
        $query = new Query(array('type' => 'read', 'model' => $this->_model, 'fields' => array('MockDatabaseComment'), 'with' => array('MockDatabaseComment')));
        $expected = array('' => array('id'), 'MockDatabaseComment' => array('id', 'post_id', 'author_id', 'body', 'created'));
        $result = $this->_db->schema($query);
        $this->assertEqual($expected, $result);
        $options = array('type' => 'read', 'model' => $this->_model, 'with' => 'MockDatabaseComment');
        $options['fields'] = array('id', 'title');
        $result = $this->_db->schema(new Query($options));
        $expected = array($modelName => $options['fields']);
        $this->assertEqual($expected, $result);
        $options['fields'] = array('MockDatabasePost.id', 'MockDatabasePost.title', 'MockDatabaseComment.body');
        $result = $this->_db->schema(new Query($options));
        $expected = array($modelName => array('id', 'title'), 'MockDatabaseComment' => array('body'));
        $this->assertEqual($expected, $result);
        $options['fields'] = array('MockDatabasePost' => array('id', 'title'), 'MockDatabaseComment' => array('body', 'created'));
        $result = $this->_db->schema(new Query($options));
        $expected = array($modelName => array('id', 'title'), 'MockDatabaseComment' => array('body', 'created'));
        $this->assertEqual($expected, $result);
        $options['fields'] = array('MockDatabasePost', 'MockDatabaseComment');
        $result = $this->_db->schema(new Query($options));
        $expected = array($modelName => array('id', 'author_id', 'title', 'created'), 'MockDatabaseComment' => array('id', 'post_id', 'author_id', 'body', 'created'));
        $this->assertEqual($expected, $result);
    }
DatabaseTest