Skip to content
Snippets Groups Projects
Commit 1cf08b55 authored by Niels Nijens's avatar Niels Nijens
Browse files

Add integration tests for FiltersAggregation

Based on the documentation examples
parent 0a8b4358
No related branches found
No related tags found
No related merge requests found
<?php
/*
* This file is part of the ONGR package.
*
* (c) NFQ Technologies UAB <info@nfq.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace ONGR\ElasticsearchDSL\Tests\Aggregation\Integration;
use ONGR\ElasticsearchDSL\Aggregation\FiltersAggregation;
use ONGR\ElasticsearchDSL\Aggregation\HistogramAggregation;
use ONGR\ElasticsearchDSL\Query\TermQuery;
use ONGR\ElasticsearchDSL\Search;
use PHPUnit_Framework_TestCase;
/**
* Tests integration of examples from the documentation.
*/
class SearchTest extends PHPUnit_Framework_TestCase
{
/**
* Tests integration of the FiltersAggregation named example from the documentation.
*
* @link https://github.com/ongr-io/ElasticsearchDSL/blob/master/docs/Aggregation/Filters.md#named-example
*/
public function testFiltersAggregationNamedExample()
{
$errorTermFilter = new TermQuery('body', 'error');
$warningTermFilter = new TermQuery('body', 'warning');
$histogramAggregation = new HistogramAggregation('monthly', 'timestamp');
$histogramAggregation->setInterval('1M');
$filterAggregation = new FiltersAggregation(
'grades_stats',
[
'error' => $errorTermFilter,
'warning' => $warningTermFilter,
]
);
$filterAggregation->addAggregation($histogramAggregation);
$search = new Search();
$search->addAggregation($filterAggregation);
$this->assertSame(
[
'aggregations' => [
'grades_stats' => [
'filters' => [
'filters' => [
'error' => [
'term' => [
'body' => 'error',
],
],
'warning' => [
'term' => [
'body' => 'warning',
],
],
],
],
'aggregations' => [
'monthly' => [
'histogram' => [
'field' => 'timestamp',
'interval' => '1M',
],
],
],
],
],
],
$search->toArray()
);
}
/**
* Tests integration of the FiltersAggregation anonymous example from the documentation.
*
* @link https://github.com/ongr-io/ElasticsearchDSL/blob/master/docs/Aggregation/Filters.md#anonymous-example
*/
public function testFiltersAggregationAnonymousExample()
{
$errorTermFilter = new TermQuery('body', 'error');
$warningTermFilter = new TermQuery('body', 'warning');
$histogramAggregation = new HistogramAggregation('monthly', 'timestamp');
$histogramAggregation->setInterval('1M');
$filterAggregation = new FiltersAggregation(
'grades_stats',
[
'error' => $errorTermFilter,
'warning' => $warningTermFilter,
],
true
);
$filterAggregation->addAggregation($histogramAggregation);
$search = new Search();
$search->addAggregation($filterAggregation);
$this->assertSame(
[
'aggregations' => [
'grades_stats' => [
'filters' => [
'filters' => [
[
'term' => [
'body' => 'error',
],
],
[
'term' => [
'body' => 'warning',
],
],
],
],
'aggregations' => [
'monthly' => [
'histogram' => [
'field' => 'timestamp',
'interval' => '1M',
],
],
],
],
],
],
$search->toArray()
);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment