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

testConditions() public method

public testConditions ( )
    public function testConditions()
    {
        $query = new Query(array('type' => 'read', 'model' => $this->_model, 'conditions' => array('or' => array('id' => 'value1', 'title' => 'value2', 'and' => array('author_id' => '1', 'created' => '2012-05-25 23:41:00'), array('title' => 'value2'), array('title' => null)), 'id' => '3', 'author_id' => false)));
        $sql = "SELECT * FROM {mock_database_posts} AS {MockDatabasePost} WHERE ";
        $sql .= "({MockDatabasePost}.{id} = 0 OR {MockDatabasePost}.{title} = 'value2' OR ";
        $sql .= "({MockDatabasePost}.{author_id} = 1 AND {MockDatabasePost}.{created} = ";
        $sql .= "'2012-05-25 23:41:00') OR ({MockDatabasePost}.{title} = 'value2') OR ";
        $sql .= "({MockDatabasePost}.{title} IS NULL)) AND {MockDatabasePost}.{id} = 3 AND ";
        $sql .= "{MockDatabasePost}.{author_id} = 0;";
        $this->assertEqual($sql, $this->_db->renderCommand($query));
        $query = new Query(array('type' => 'read', 'model' => $this->_model, 'conditions' => array('title' => array('0900'))));
        $sql = 'SELECT * FROM {mock_database_posts} AS {MockDatabasePost}';
        $sql .= ' WHERE {title} IN (\'0900\');';
        $this->assertEqual($sql, $this->_db->renderCommand($query));
        $sql = 'SELECT * FROM {mock_database_posts} AS {MockDatabasePost} WHERE ';
        $sql .= 'lower(title) = \'test\';';
        $query = new Query(array('type' => 'read', 'model' => $this->_model, 'conditions' => array('lower(title)' => 'test')));
        $this->assertEqual($sql, $this->_db->renderCommand($query));
        $query = new Query(array('type' => 'read', 'model' => $this->_model, 'conditions' => array((object) 'lower(title) = \'test\'')));
        $this->assertEqual($sql, $this->_db->renderCommand($query));
        $sql = 'SELECT * FROM {mock_database_posts} AS {MockDatabasePost} WHERE ';
        $sql .= 'lower(title) = REGEXP \'^test$\';';
        $query = new Query(array('type' => 'read', 'model' => $this->_model, 'conditions' => array((object) 'lower(title) = REGEXP \'^test$\'')));
        $this->assertEqual($sql, $this->_db->renderCommand($query));
        $query = new Query(array('type' => 'read', 'model' => $this->_model, 'conditions' => array('lower(title)' => (object) 'REGEXP \'^test$\'')));
        $this->assertEqual($sql, $this->_db->renderCommand($query));
    }
DatabaseTest