Skip to content
Snippets Groups Projects
Commit a8149f27 authored by Mantas Simkus's avatar Mantas Simkus
Browse files

updated RangeAggregation unit test

parent 4dde868d
No related branches found
No related tags found
No related merge requests found
......@@ -16,14 +16,10 @@ use ONGR\ElasticsearchBundle\DSL\Aggregation\RangeAggregation;
class RangeAggregationTest extends \PHPUnit_Framework_TestCase
{
/**
* Data provider for testToArray().
*
* @return array
* Test addRange method.
*/
public function getToArrayData()
public function testRangeAggregationAddRange()
{
$out = [];
// Case #0 single range.
$aggregation = new RangeAggregation('test_agg');
$aggregation->setField('test_field');
......@@ -44,11 +40,14 @@ class RangeAggregationTest extends \PHPUnit_Framework_TestCase
],
];
$out[] = [
$aggregation,
$result,
];
$this->assertEquals($result, $aggregation->toArray());
}
/**
* Test addRange method with multiple values.
*/
public function testRangeAggregationAddRangeMultiple()
{
// Case #1 multiple keyed ranges.
$aggregation = new RangeAggregation('test_agg');
$aggregation->setField('test_field');
......@@ -75,11 +74,14 @@ class RangeAggregationTest extends \PHPUnit_Framework_TestCase
],
];
$out[] = [
$aggregation,
$result,
];
$this->assertEquals($result, $aggregation->toArray());
}
/**
* Test addRange method with nested values.
*/
public function testRangeAggregationAddRangeNested()
{
// Case #2 nested aggregation.
$aggregation = new RangeAggregation('test_agg');
$aggregation->setField('test_field');
......@@ -118,24 +120,93 @@ class RangeAggregationTest extends \PHPUnit_Framework_TestCase
],
];
$out[] = [
$aggregation,
$result,
$this->assertEquals($result, $aggregation->toArray());
}
/**
* Tests getType method.
*/
public function testRangeAggregationGetType()
{
$agg = new RangeAggregation('foo');
$result = $agg->getType();
$this->assertEquals('range', $result);
}
/**
* Data provider for testRangeAggregationRemoveRangeByKey(), testRangeAggregationRemoveRange().
*
* @return array
*/
public function testRangeAggregationDataProvider()
{
$expectedResults = [
'field' => 'price',
'keyed' => true,
'ranges' => [
[
'from' => 100,
'to' => 300,
'key' => 'key',
],
],
];
return $out;
return [[$expectedResults]];
}
/**
* Tests removeRangeByKey method.
*
* @param array $expected
*
* @dataProvider testRangeAggregationDataProvider
*/
public function testRangeAggregationRemoveRangeByKey($expected)
{
$aggregation = new RangeAggregation('foo');
$aggregation->setField('price');
$aggregation->setKeyed(true);
$aggregation->addRange(100, 300, 'key');
$result = $aggregation->getArray();
$this->assertEquals($result, $expected);
$result = $aggregation->removeRangeByKey('key');
$this->assertTrue($result);
$result = $aggregation->removeRangeByKey('not_existing_key');
$this->assertFalse($result);
// Test with keyed=false.
$aggregation->setKeyed(false);
$result = $aggregation->removeRangeByKey('not_existing_key');
$this->assertFalse($result);
$aggregation->addRange(100, 300, 'key');
$result = $aggregation->removeRangeByKey('key');
$this->assertFalse($result);
}
/**
* Test for range aggregation toArray() method.
* Tests removeRange method.
*
* @param RangeAggregation $aggregation
* @param array $expectedResult
* @param array $expected
*
* @dataProvider getToArrayData
* @dataProvider testRangeAggregationDataProvider
*/
public function testToArray($aggregation, $expectedResult)
public function testRangeAggregationRemoveRange($expected)
{
$this->assertEquals($expectedResult, $aggregation->toArray());
$aggregation = new RangeAggregation('foo');
$aggregation->setField('price');
$aggregation->setKeyed(true);
$aggregation->addRange(100, 300, 'key');
$aggregation->addRange(500, 700, 'range_2');
$aggregation->removeRange(500, 700);
$result = $aggregation->getArray();
$this->assertEquals($result, $expected);
// Test fake ranges.
$result = $aggregation->removeRange(500, 700);
$this->assertFalse($result);
}
}
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