lithium\tests\cases\data\source\DatabaseTest::testQueryOperators PHP Метод

testQueryOperators() публичный Метод

public testQueryOperators ( )
    public function testQueryOperators()
    {
        $query = new Query(array('type' => 'read', 'model' => $this->_model, 'conditions' => array('score' => array('between' => array(90, 100)))));
        $sql = "SELECT * FROM {mock_database_posts} AS {MockDatabasePost} WHERE ({score} ";
        $sql .= "BETWEEN 90 AND 100);";
        $this->assertEqual($sql, $this->_db->renderCommand($query));
        $query = new Query(array('type' => 'read', 'model' => $this->_model, 'conditions' => array('score' => array('>' => 90, '<' => 100))));
        $sql = "SELECT * FROM {mock_database_posts} AS {MockDatabasePost} WHERE ";
        $sql .= "({score} > 90 AND {score} < 100);";
        $this->assertEqual($sql, $this->_db->renderCommand($query));
        $query = new Query(array('type' => 'read', 'model' => $this->_model, 'conditions' => array('score' => array('!=' => array(98, 99, 100)))));
        $sql = "SELECT * FROM {mock_database_posts} AS {MockDatabasePost} ";
        $sql .= "WHERE ({score} NOT IN (98, 99, 100));";
        $this->assertEqual($sql, $this->_db->renderCommand($query));
        $query = new Query(array('type' => 'read', 'model' => $this->_model, 'conditions' => array('scorer' => array('like' => '%howard%'))));
        $sql = "SELECT * FROM {mock_database_posts} AS {MockDatabasePost} ";
        $sql .= "WHERE ({scorer} LIKE '%howard%');";
        $this->assertEqual($sql, $this->_db->renderCommand($query));
        $conditions = "custom conditions string";
        $query = new Query(compact('conditions') + array('type' => 'read', 'model' => $this->_model));
        $sql = "SELECT * FROM {mock_database_posts} AS {MockDatabasePost} WHERE {$conditions};";
        $this->assertEqual($sql, $this->_db->renderCommand($query));
        $query = new Query(array('type' => 'read', 'model' => $this->_model, 'conditions' => array('field' => array('like' => '%value%', 'not like' => '%value2%'))));
        $sql = "SELECT * FROM {mock_database_posts} AS {MockDatabasePost} WHERE ";
        $sql .= "({field} LIKE '%value%' AND {field} NOT LIKE '%value2%');";
        $this->assertEqual($sql, $this->_db->renderCommand($query));
        $query = new Query(array('type' => 'read', 'model' => $this->_model, 'conditions' => array('scorer' => array('is' => null))));
        $sql = "SELECT * FROM {mock_database_posts} AS {MockDatabasePost} ";
        $sql .= "WHERE ({scorer} IS NULL);";
        $this->assertEqual($sql, $this->_db->renderCommand($query));
        $query = new Query(array('type' => 'read', 'model' => $this->_model, 'conditions' => array('scorer' => array('is not' => null))));
        $sql = "SELECT * FROM {mock_database_posts} AS {MockDatabasePost} ";
        $sql .= "WHERE ({scorer} IS NOT NULL);";
        $this->assertEqual($sql, $this->_db->renderCommand($query));
    }
DatabaseTest