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

testConstraints() public method

public testConstraints ( )
    public function testConstraints()
    {
        $model = $this->_model;
        $query = new Query(array('type' => 'read', 'model' => $this->_model, 'with' => array('MockDatabaseComment' => array('constraints' => array('or' => array(array('custom_id' => 'MockDatabasePost.value_id'), array('custom_id' => 'id'), 'and' => array('id' => 'MockDatabasePost.id', 'title' => 'MockDatabasePost.title'), array('title' => (object) $this->_db->value('value2')), array('title' => null)), 'id' => 5)))));
        $sql = 'SELECT * FROM {mock_database_posts} AS {MockDatabasePost} LEFT JOIN ';
        $sql .= '{mock_database_comments} AS {MockDatabaseComment} ON ';
        $sql .= '(({MockDatabasePost}.{custom_id} = {MockDatabasePost}.{value_id}) OR ';
        $sql .= '({MockDatabasePost}.{custom_id} = {MockDatabaseComment}.{id}) OR ';
        $sql .= '({MockDatabasePost}.{id} = {MockDatabasePost}.{id} ';
        $sql .= 'AND {MockDatabasePost}.{title} = {MockDatabasePost}.{title}) ';
        $sql .= 'OR ({MockDatabasePost}.{title} = \'value2\') ';
        $sql .= 'OR ({MockDatabasePost}.{title} IS NULL)) AND {MockDatabasePost}.{id} = 5;';
        $this->assertEqual($sql, $this->_db->renderCommand($query));
    }
DatabaseTest