Bolt\Tests\Storage\Query\QueryParameterParserTest::testCompositeOrAnd PHP Method

testCompositeOrAnd() public method

public testCompositeOrAnd ( )
    public function testCompositeOrAnd()
    {
        $app = $this->getApp();
        $expr = $app['storage']->createExpressionBuilder();
        $p = new QueryParameterParser($expr);
        $filter = $p->getFilter('ownerid', '>1 && <4');
        $this->assertEquals('(ownerid > :ownerid_1) AND (ownerid < :ownerid_2)', $filter->getExpression());
        $this->assertEquals(['ownerid_1' => '1', 'ownerid_2' => '4'], $filter->getParameters());
        $p = new QueryParameterParser($expr);
        $filter = $p->getFilter('ownerid', '>1||<4');
        $this->assertEquals('(ownerid > :ownerid_1) OR (ownerid < :ownerid_2)', $filter->getExpression());
        $this->assertEquals(['ownerid_1' => '1', 'ownerid_2' => '4'], $filter->getParameters());
        $p = new QueryParameterParser($expr);
        $filter = $p->getFilter('id', '>29 && <=37');
        $this->assertEquals('(id > :id_1) AND (id <= :id_2)', $filter->getExpression());
        $this->assertEquals(['id_1' => '29', 'id_2' => '37'], $filter->getParameters());
        $this->setExpectedException('Bolt\\Exception\\QueryParseException');
        $p = new QueryParameterParser($expr);
        $filter = $p->getFilter('ownerid', '>1||<4 && <56');
    }