Skip to content

Commit

Permalink
'create' helper for BetweenPredicate
Browse files Browse the repository at this point in the history
  • Loading branch information
TomK committed Jan 22, 2015
1 parent 8b64d29 commit ee7de73
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 1 deletion.
20 changes: 19 additions & 1 deletion src/Predicate/BetweenPredicate.php
Expand Up @@ -20,6 +20,24 @@ class BetweenPredicate implements IPredicate
*/
protected $_field;

public static function create($field, $start, $end)
{
$predicate = new static;
$predicate->setField($field);

if(is_scalar($start))
{
$start = ValueExpression::create($start);
}
if(is_scalar($end))
{
$end = ValueExpression::create($end);
}

$predicate->setValues($start, $end);
return $predicate;
}

public function setField($field)
{
$this->_field = is_scalar($field) ?
Expand All @@ -37,7 +55,7 @@ public function setValues(
)
{
$this->_rangeStart = $start;
$this->_rangeEnd = $end;
$this->_rangeEnd = $end;
return $this;
}

Expand Down
12 changes: 12 additions & 0 deletions tests/Predicate/BetweenPredicateTest.php
Expand Up @@ -41,6 +41,18 @@ public function testAssemble()
'field BETWEEN "abc" AND "def"',
QueryAssembler::stringify($predicate)
);

$predicate = BetweenPredicate::create('field', 123, 456);
$this->assertEquals(
'field BETWEEN 123 AND 456',
QueryAssembler::stringify($predicate)
);

$predicate = BetweenPredicate::create('field', 'abc', 'def');
$this->assertEquals(
'field BETWEEN "abc" AND "def"',
QueryAssembler::stringify($predicate)
);
}

public function testGettersAndSetters()
Expand Down

0 comments on commit ee7de73

Please sign in to comment.