/**
  * 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]]]);
     });
 }