public function testAssemble()
 {
     $predicate = new LessThanOrEqualPredicate();
     $predicate->setField('field');
     $this->assertEquals('field <= NULL', QueryAssembler::stringify($predicate));
     $predicate->setExpression((new NumericExpression())->setValue(1));
     $this->assertEquals('field <= 1', QueryAssembler::stringify($predicate));
     $predicate->setExpression((new NumericExpression())->setValue('1'));
     $this->assertEquals('field <= 1', QueryAssembler::stringify($predicate));
     $predicate->setExpression((new StringExpression())->setValue('abc'));
     $this->assertEquals('field <= "abc"', QueryAssembler::stringify($predicate));
 }
Example #2
0
 public function assembleBetween(BetweenPredicate $betweenPredicate)
 {
     $gte = new GreaterThanOrEqualPredicate();
     $gte->setField($betweenPredicate->getField());
     $lte = new LessThanOrEqualPredicate();
     $lte->setField($betweenPredicate->getField());
     $set = new PredicateSet();
     if ($betweenPredicate instanceof NotBetweenPredicate) {
         $gte->setExpression($betweenPredicate->getRangeEnd());
         $lte->setExpression($betweenPredicate->getRangeStart());
         $set->addPredicate($lte);
         $set->addPredicate($gte);
     } else {
         $gte->setExpression($betweenPredicate->getRangeStart());
         $lte->setExpression($betweenPredicate->getRangeEnd());
         $set->addPredicate($gte);
         $set->addPredicate($lte);
     }
     return $this->assembleSegment($set);
 }