lithium\tests\cases\data\source\MongoDbTest::testRelationshipGeneration PHP Method

testRelationshipGeneration() public method

    public function testRelationshipGeneration()
    {
        $from = 'lithium\\tests\\mocks\\data\\MockComment';
        $to = 'lithium\\tests\\mocks\\data\\MockPost';
        $from::config(array('meta' => array('connection' => 'mockconn', 'key' => '_id'), 'schema' => new Schema(array('fields' => array('comment_id')))));
        $to::config(array('meta' => array('key' => '_id', 'connection' => 'mockconn')));
        $result = $this->_db->relationship($from, 'belongsTo', 'MockPost');
        $expected = compact('to', 'from') + array('name' => 'MockPost', 'type' => 'belongsTo', 'key' => array(), 'link' => 'contained', 'fields' => true, 'fieldName' => 'mockPost', 'constraints' => array(), 'init' => true);
        $this->assertEqual($expected, $result->data());
        $from::config(array('meta' => array('name' => 'Groups'), 'schema' => new Schema(array('fields' => array('_id' => 'id', 'users' => array('id', 'array' => true))))));
        $to::config(array('meta' => array('name' => 'Users'), 'schema' => new Schema(array('fields' => array('_id' => 'id', 'group' => 'id')))));
        $result = $this->_db->relationship($from, 'hasMany', 'Users', compact('to'));
        $this->assertEqual('keylist', $result->link());
        $this->assertEqual(array('users' => '_id'), $result->key());
        $to::config(array('meta' => array('name' => 'Permissions')));
        $result = $this->_db->relationship($from, 'hasMany', 'Permissions', compact('to'));
        $this->assertEqual('key', $result->link());
        $this->assertEqual(array('_id' => 'group'), $result->key());
    }