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));
}