Skip to content

Commit

Permalink
Made better test cases for pull #2543
Browse files Browse the repository at this point in the history
Better test cases for commit ozzyogkush@21c7506 - shows how to use quotes on model/field in condition key when casting to ensure proper quotes in returned condition string.
  • Loading branch information
ozzyogkush committed Dec 24, 2013
1 parent fca9ee6 commit ad180e9
Showing 1 changed file with 21 additions and 1 deletion.
22 changes: 21 additions & 1 deletion cake/tests/cases/libs/model/datasources/dbo_source.test.php
Expand Up @@ -2765,16 +2765,36 @@ function testArrayConditionsParsing() {
$expected = " WHERE '2009-03-04' BETWEEN Model.field1 AND Model.field2";
$this->assertEqual($result, $expected);

$result = $this->testDb->conditions(array('Model.field::integer' => 5));
$expected = " WHERE `Model`.`field::integer` = '5'"; // known bug
$this->assertEqual($result, $expected);

$result = $this->testDb->conditions(array('"Model"."field"::integer' => 5));
$expected = " WHERE \"Model\".\"field\"::integer = '5'";
$this->assertEqual($result, $expected);

$result = $this->testDb->conditions(array('Model.field::integer' => array(5, 50, 500)));
$expected = " WHERE `Model`.`field`::integer IN ('5', '50', '500')";
$this->assertEqual($result, $expected);

$result = $this->testDb->conditions(array('"Model"."field"::integer' => array(5, 50, 500)));
$expected = " WHERE \"Model\".\"field\"::integer IN ('5', '50', '500')";
$this->assertEqual($result, $expected);

$result = $this->testDb->conditions(array('Model.field::integer' => array(5, 50)));
$expected = " WHERE `Model`.`field`::integer IN ('5', '50')";
$this->assertEqual($result, $expected);

$result = $this->testDb->conditions(array('"Model"."field"::integer' => array(5, 50)));
$expected = " WHERE \"Model\".\"field\"::integer IN ('5', '50')";
$this->assertEqual($result, $expected);

$result = $this->testDb->conditions(array('Model.field::integer BETWEEN ? AND ?' => array(5, 50)));
$expected = " WHERE `Model`.`field`::integer BETWEEN '5' AND '50'";
$expected = " WHERE `Model`.`field::integer` BETWEEN '5' AND '50'"; // known bug
$this->assertEqual($result, $expected);

$result = $this->testDb->conditions(array('"Model"."field"::integer BETWEEN ? AND ?' => array(5, 50)));
$expected = " WHERE \"Model\".\"field\"::integer BETWEEN '5' AND '50'";
$this->assertEqual($result, $expected);
}

Expand Down

0 comments on commit ad180e9

Please sign in to comment.