/** * Tests introspecting the relationship settings for the model as a whole, various relationship * types, and individual relationships. * * @todo Some tests will need to change when full relationship support is built out. * @return void */ public function testRelationshipIntrospection() { MockPost::config(array('meta' => array('connection' => true))); MockComment::config(array('meta' => array('connection' => true))); MockTag::config(array('meta' => array('connection' => true))); $result = array_keys(MockPost::relations()); $expected = array('MockComment'); $this->assertEqual($expected, $result); $result = MockPost::relations('hasMany'); $this->assertEqual($expected, $result); $result = array_keys(MockComment::relations()); $expected = array('MockPost'); $this->assertEqual($expected, $result); $result = MockComment::relations('belongsTo'); $this->assertEqual($expected, $result); $this->assertFalse(MockComment::relations('hasMany')); $this->assertFalse(MockPost::relations('belongsTo')); $expected = array('name' => 'MockPost', 'type' => 'belongsTo', 'key' => array('mock_post_id' => 'id'), 'from' => 'lithium\\tests\\mocks\\data\\MockComment', 'to' => 'lithium\\tests\\mocks\\data\\MockPost', 'link' => 'key', 'fields' => true, 'fieldName' => 'mock_post', 'constraints' => array(), 'init' => true); $this->assertEqual($expected, MockComment::relations('MockPost')->data()); $expected = array('name' => 'MockComment', 'type' => 'hasMany', 'from' => 'lithium\\tests\\mocks\\data\\MockPost', 'to' => 'lithium\\tests\\mocks\\data\\MockComment', 'fields' => true, 'key' => array('id' => 'mock_post_id'), 'link' => 'key', 'fieldName' => 'mock_comments', 'constraints' => array(), 'init' => true); $this->assertEqual($expected, MockPost::relations('MockComment')->data()); MockPost::config(array('meta' => array('connection' => false))); MockComment::config(array('meta' => array('connection' => false))); MockTag::config(array('meta' => array('connection' => false))); }
public function testRelationFromFieldName() { MockPost::bind('hasMany', 'MockTag'); $this->assertEqual('MockComment', MockPost::relations('mock_comments')->name()); $this->assertEqual('MockTag', MockPost::relations('mock_tags')->name()); $this->assertEqual('MockPost', MockComment::relations('mock_post')->name()); $this->assertNull(MockPost::relations('undefined')); }
/** * Tests introspecting the relationship settings for the model as a whole, various relationship * types, and individual relationships. * * @todo Some tests will need to change when full relationship support is built out. * @return void */ public function testRelationshipIntrospection() { $result = MockPost::relations(); $expected = array('MockComment'); $this->assertEqual($expected, $result); $result = MockPost::relations('hasMany'); $this->assertEqual($expected, $result); $result = MockComment::relations(); $expected = array('MockPost'); $this->assertEqual($expected, $result); $result = MockComment::relations('belongsTo'); $this->assertEqual($expected, $result); $this->assertFalse(MockComment::relations('hasMany')); $this->assertFalse(MockPost::relations('belongsTo')); $this->assertNull(MockComment::relations('MockPost')); $this->assertNull(MockPost::relations('MockComment')); }