From 18f1d56b60a29f514a82ba397d5f0f4b75ebc57a Mon Sep 17 00:00:00 2001 From: Benjamin Eberlei Date: Wed, 14 Mar 2012 20:49:25 +0100 Subject: [PATCH] [DDC-1683] Fix bug with booleans not handled by Expr#literal() in query builder. --- lib/Doctrine/ORM/Query/Expr.php | 2 ++ tests/Doctrine/Tests/ORM/Query/ExprTest.php | 11 ++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/Doctrine/ORM/Query/Expr.php b/lib/Doctrine/ORM/Query/Expr.php index 8967608e2..adcd25cda 100644 --- a/lib/Doctrine/ORM/Query/Expr.php +++ b/lib/Doctrine/ORM/Query/Expr.php @@ -562,6 +562,8 @@ class Expr { if (is_numeric($literal) && !is_string($literal)) { return (string) $literal; + } else if (is_bool($literal)) { + return $literal ? "true" : "false"; } else { return "'" . str_replace("'", "''", $literal) . "'"; } diff --git a/tests/Doctrine/Tests/ORM/Query/ExprTest.php b/tests/Doctrine/Tests/ORM/Query/ExprTest.php index ccc033b2e..265b2ba90 100644 --- a/tests/Doctrine/Tests/ORM/Query/ExprTest.php +++ b/tests/Doctrine/Tests/ORM/Query/ExprTest.php @@ -336,4 +336,13 @@ class ExprTest extends \Doctrine\Tests\OrmTestCase $orExpr = $this->_expr->orx(); $orExpr->add($this->_expr->quot(5, 2)); } -} \ No newline at end of file + + /** + * @group DDC-1683 + */ + public function testBooleanLiteral() + { + $this->assertEquals('true', $this->_expr->literal(true)); + $this->assertEquals('false', $this->_expr->literal(false)); + } +}