added test case for Expression module base class
This commit is contained in:
parent
81d3d12563
commit
5d3a9160dc
@ -31,4 +31,142 @@
|
||||
* @version $Revision$
|
||||
*/
|
||||
class Doctrine_Expression_TestCase extends Doctrine_UnitTestCase {
|
||||
|
||||
/**
|
||||
* AGGREGATE FUNCTIONS
|
||||
*/
|
||||
public function testAvgReturnsValidSql() {
|
||||
$this->expr = new Doctrine_Expression_Mock();
|
||||
|
||||
$this->assertEqual($this->expr->avg('id'), 'AVG(id)');
|
||||
}
|
||||
public function testCountReturnsValidSql() {
|
||||
$this->assertEqual($this->expr->count('id'), 'COUNT(id)');
|
||||
}
|
||||
public function testMaxReturnsValidSql() {
|
||||
$this->assertEqual($this->expr->max('id'), 'MAX(id)');
|
||||
}
|
||||
public function testMinReturnsValidSql() {
|
||||
$this->assertEqual($this->expr->min('id'), 'MIN(id)');
|
||||
}
|
||||
public function testSumReturnsValidSql() {
|
||||
$this->assertEqual($this->expr->sum('id'), 'SUM(id)');
|
||||
}
|
||||
|
||||
public function testRegexpImplementedOnlyAtDriverLevel() {
|
||||
try {
|
||||
$this->expr->regexp('[abc]');
|
||||
$this->fail();
|
||||
} catch(Doctrine_Expression_Exception $e) {
|
||||
$this->pass();
|
||||
}
|
||||
}
|
||||
public function testSoundexImplementedOnlyAtDriverLevel() {
|
||||
try {
|
||||
$this->expr->soundex('arnold');
|
||||
$this->fail();
|
||||
} catch(Doctrine_Expression_Exception $e) {
|
||||
$this->pass();
|
||||
}
|
||||
}
|
||||
/**
|
||||
* TIME FUNCTIONS
|
||||
*/
|
||||
public function testNowReturnsValidSql() {
|
||||
$this->assertEqual($this->expr->now(), 'NOW()');
|
||||
}
|
||||
|
||||
/**
|
||||
* STRING FUNCTIONS
|
||||
*/
|
||||
public function testUpperReturnsValidSql() {
|
||||
$this->assertEqual($this->expr->upper('id', 3), 'UPPER(id)');
|
||||
}
|
||||
public function testLowerReturnsValidSql() {
|
||||
$this->assertEqual($this->expr->lower('id'), 'LOWER(id)');
|
||||
}
|
||||
public function testLengthReturnsValidSql() {
|
||||
$this->assertEqual($this->expr->length('id'), 'LENGTH(id)');
|
||||
}
|
||||
public function testLtrimReturnsValidSql() {
|
||||
$this->assertEqual($this->expr->ltrim('id'), 'LTRIM(id)');
|
||||
}
|
||||
public function testLocateReturnsValidSql() {
|
||||
$this->assertEqual($this->expr->locate('id', 3), 'LOCATE(id, 3)');
|
||||
}
|
||||
public function testConcatReturnsValidSql() {
|
||||
$this->assertEqual($this->expr->concat(array('id', 'type')), 'CONCAT(id, type)');
|
||||
}
|
||||
public function testSubstringReturnsValidSql() {
|
||||
$this->assertEqual($this->expr->substring('id', 3), 'SUBSTRING(id FROM 3)');
|
||||
|
||||
$this->assertEqual($this->expr->substring('id', 3, 2), 'SUBSTRING(id FROM 3 FOR 2)');
|
||||
}
|
||||
|
||||
/**
|
||||
* MATH FUNCTIONS
|
||||
*/
|
||||
public function testRoundReturnsValidSql() {
|
||||
$this->assertEqual($this->expr->round(2.3), 'ROUND(2.3, 0)');
|
||||
|
||||
$this->assertEqual($this->expr->round(2.3, 1), 'ROUND(2.3, 1)');
|
||||
}
|
||||
public function testModReturnsValidSql() {
|
||||
$this->assertEqual($this->expr->mod(2, 3), 'MOD(2, 3)');
|
||||
}
|
||||
public function testSubReturnsValidSql() {
|
||||
$this->assertEqual($this->expr->sub(array(2, 3)), '(2 - 3)');
|
||||
}
|
||||
public function testMulReturnsValidSql() {
|
||||
$this->assertEqual($this->expr->mul(array(2, 3)), '(2 * 3)');
|
||||
}
|
||||
public function testAddReturnsValidSql() {
|
||||
$this->assertEqual($this->expr->add(array(2, 3)), '(2 + 3)');
|
||||
}
|
||||
public function testDivReturnsValidSql() {
|
||||
$this->assertEqual($this->expr->div(array(2, 3)), '(2 / 3)');
|
||||
}
|
||||
|
||||
/**
|
||||
* ASSERT OPERATORS
|
||||
*/
|
||||
|
||||
public function testEqReturnsValidSql() {
|
||||
$this->assertEqual($this->expr->eq(1, 1), '1 = 1');
|
||||
}
|
||||
public function testNeqReturnsValidSql() {
|
||||
$this->assertEqual($this->expr->neq(1, 2), '1 <> 2');
|
||||
}
|
||||
public function testGtReturnsValidSql() {
|
||||
$this->assertEqual($this->expr->gt(2, 1), '2 > 1');
|
||||
}
|
||||
public function testGteReturnsValidSql() {
|
||||
$this->assertEqual($this->expr->gte(1, 1), '1 >= 1');
|
||||
}
|
||||
public function testLtReturnsValidSql() {
|
||||
$this->assertEqual($this->expr->lt(1, 2), '1 < 2');
|
||||
}
|
||||
public function testLteReturnsValidSql() {
|
||||
$this->assertEqual($this->expr->lte(1, 1), '1 <= 1');
|
||||
}
|
||||
|
||||
/**
|
||||
* WHERE OPERATORS
|
||||
*/
|
||||
public function testNotReturnsValidSql() {
|
||||
$this->assertEqual($this->expr->not('id'), 'NOT(id)');
|
||||
}
|
||||
public function testInReturnsValidSql() {
|
||||
$this->assertEqual($this->expr->in('id', array(1, 2)), 'id IN (1, 2)');
|
||||
}
|
||||
public function testIsNullReturnsValidSql() {
|
||||
$this->assertEqual($this->expr->isNull('type'), 'type IS NULL');
|
||||
}
|
||||
public function testIsNotNullReturnsValidSql() {
|
||||
$this->assertEqual($this->expr->isNotNull('type'), 'type IS NOT NULL');
|
||||
}
|
||||
public function testBetweenReturnsValidSql() {
|
||||
$this->assertEqual($this->expr->between('age', 12, 14), 'age BETWEEN 12 AND 14');
|
||||
}
|
||||
}
|
||||
class Doctrine_Expression_Mock extends Doctrine_Expression { }
|
||||
|
@ -17,6 +17,7 @@ class Doctrine_UnitTestCase extends UnitTestCase {
|
||||
protected $conn;
|
||||
protected $adapter;
|
||||
protected $export;
|
||||
protected $expr;
|
||||
protected $dataDict;
|
||||
protected $transaction;
|
||||
|
||||
@ -112,6 +113,7 @@ class Doctrine_UnitTestCase extends UnitTestCase {
|
||||
$this->export = $this->connection->export;
|
||||
$this->transaction = $this->connection->transaction;
|
||||
$this->dataDict = $this->connection->dataDict;
|
||||
$this->expr = $this->connection->expression;
|
||||
}
|
||||
$this->unitOfWork = $this->connection->unitOfWork;
|
||||
$this->connection->setListener(new Doctrine_EventListener());
|
||||
|
Loading…
Reference in New Issue
Block a user