/** * Tests the Bool Query. */ public function testBoolQuery() { $this->specify('bool query was created', function () { $query = $this->queryBuilder->createBoolQuery(); verify($query)->isInstanceOf('\\Nord\\Lumen\\Elasticsearch\\Search\\Query\\Compound\\BoolQuery'); }); $this->specify('bool query with leaf queries ', function () { $query = $this->queryBuilder->createBoolQuery(); $query->addMust($this->queryBuilder->createTermQuery()->setField('field1')->setValue('value1')); $query->addFilter($this->queryBuilder->createTermQuery()->setField('field2')->setValue('value2')); $query->addMustNot($this->queryBuilder->createRangeQuery()->setField('field3')->setGreaterThanOrEquals(1)->setLessThanOrEquals(2)); $query->addShould($this->queryBuilder->createTermQuery()->setField('field4')->setValue('value3')); $query->addShould($this->queryBuilder->createTermQuery()->setField('field4')->setValue('value4')); $array = $query->toArray(); verify($array)->equals(['bool' => ['must' => [['term' => ['field1' => 'value1']]], 'filter' => [['term' => ['field2' => 'value2']]], 'must_not' => [['range' => ['field3' => ['gte' => 1, 'lte' => 2]]]], 'should' => [['term' => ['field4' => 'value3']], ['term' => ['field4' => 'value4']]]]]); }); }
/** * Tests the Range Query. */ public function testRangeQuery() { $this->specify('range query was created', function () { $query = $this->queryBuilder->createRangeQuery(); verify($query)->isInstanceOf('\\Nord\\Lumen\\Elasticsearch\\Search\\Query\\TermLevel\\RangeQuery'); }); $this->specify('range query format with gte', function () { $query = $this->queryBuilder->createRangeQuery(); $query->setField('field')->setGreaterThanOrEquals(10); $array = $query->toArray(); verify($array)->equals(['range' => ['field' => ['gte' => 10]]]); }); $this->specify('range query format with gt', function () { $query = $this->queryBuilder->createRangeQuery(); $query->setField('field')->setGreaterThan(10); $array = $query->toArray(); verify($array)->equals(['range' => ['field' => ['gt' => 10]]]); }); $this->specify('range query format with lte', function () { $query = $this->queryBuilder->createRangeQuery(); $query->setField('field')->setLessThanOrEquals(10); $array = $query->toArray(); verify($array)->equals(['range' => ['field' => ['lte' => 10]]]); }); $this->specify('range query format with lt', function () { $query = $this->queryBuilder->createRangeQuery(); $query->setField('field')->setLessThan(10); $array = $query->toArray(); verify($array)->equals(['range' => ['field' => ['lt' => 10]]]); }); $this->specify('range query format with boost', function () { $query = $this->queryBuilder->createRangeQuery(); $query->setField('field')->setBoost(2.0); $array = $query->toArray(); verify($array)->equals(['range' => ['field' => ['boost' => 2.0]]]); }); }