public function setUp() { $this->db = new MockDatabase(); $this->_configs = Connections::config(); Connections::reset(); Connections::config(array('mock-database-connection' => array('object' => &$this->db, 'adapter' => 'MockDatabase'))); MockDatabasePost::config(); MockDatabaseComment::config(); }
public function testColumnMapping() { $result = $this->db->columns(new Query(array('model' => 'lithium\\tests\\mocks\\data\\model\\MockDatabasePost'))); $expected = array('lithium\\tests\\mocks\\data\\model\\MockDatabasePost' => array('id', 'title', 'created')); $this->assertEqual($expected, $result); $query = new Query(array('model' => 'lithium\\tests\\mocks\\data\\model\\MockDatabasePost', 'fields' => array('*'))); $result = $this->db->columns($query); $this->assertEqual($expected, $result); $fields = array('MockDatabaseComment'); $query = new Query(array('model' => 'lithium\\tests\\mocks\\data\\model\\MockDatabasePost', 'fields' => $fields)); $result = $this->db->columns($query); $expected = array('lithium\\tests\\mocks\\data\\model\\MockDatabaseComment' => array_keys(MockDatabaseComment::schema())); $this->assertEqual($expected, $result); }
public function testOn() { $conn = MockDatabasePost::connection(); $expected = array('MockDatabasePost.id' => 'MockDatabaseComment.mock_database_post_id'); $result = $conn->on(MockDatabasePost::relations('MockDatabaseComment')); $this->assertEqual($expected, $result); $expected = array('MockDatabaseComment.mock_database_post_id' => 'MockDatabasePost.id'); $result = $conn->on(MockDatabaseComment::relations('MockDatabasePost')); $this->assertEqual($expected, $result); $expected = array('MockDatabasePost.id' => 'MockDatabaseComment.mock_database_post_id', 'MockDatabasePost.published' => (object) "'yes'"); $rel = MockDatabasePost::relations('MockDatabaseComment'); $result = $conn->on($rel, null, null, array('published' => (object) "'yes'")); $this->assertEqual($expected, $result); $expected = array('CustomPost.id' => 'CustomComment.mock_database_post_id', 'CustomPost.published' => (object) "'no'"); $constraints = array('published' => (object) "'no'"); $result = $conn->on($rel, 'CustomPost', 'CustomComment', $constraints); $this->assertEqual($expected, $result); $expected = array('CustomPost.id' => 'CustomComment.post_id'); $constraints = array('CustomPost.id' => 'CustomComment.post_id'); $result = $conn->on($rel, 'CustomPost', 'CustomComment', $constraints); $this->assertEqual($expected, $result); }