/**
  * Tests removeRangeByKey method.
  */
 public function testRangeAggregationRemoveRangeByKey()
 {
     $aggregation = new RangeAggregation('foo');
     $aggregation->setField('price');
     $aggregation->setKeyed(true);
     $aggregation->addRange(100, 300, 'name');
     $expected = ['field' => 'price', 'keyed' => true, 'ranges' => [['from' => 100, 'to' => 300, 'key' => 'name']]];
     $result = $aggregation->getArray();
     $this->assertEquals($result, $expected, 'get array of ranges when keyed=true');
     $result = $aggregation->removeRangeByKey('name');
     $this->assertTrue($result, 'returns true when removed valid range name');
     $result = $aggregation->removeRangeByKey('not_existing_key');
     $this->assertFalse($result, 'should not allow remove not existing key if keyed=true');
     $aggregation->setKeyed(false);
     $result = $aggregation->removeRangeByKey('not_existing_key');
     $this->assertFalse($result, 'should not allow remove not existing key if keyed=false');
     $aggregation->addRange(100, 300, 'name');
     $result = $aggregation->removeRangeByKey('name');
     $this->assertFalse($result, 'can not remove any existing range if keyed=false');
 }
 /**
  * Tests removing ranges from aggregation.
  */
 public function testRemoveAggregationWithFalse()
 {
     $range = new RangeAggregation('bar');
     $this->assertFalse($range->removeRange(10, 20), 'Range does not exist');
     $range->addRange(10, 20);
     $range->addRange(25, 30, 'test_key');
     $this->assertTrue($range->removeRange(10, 20), 'Range removed.');
     $this->assertFalse($range->removeRangeByKey('test_key'), 'Keyed ranges are not enabled yet!');
     $range->setKeyed(true);
     $range->addRange(15, 20, 'foo');
     $this->assertFalse($range->removeRangeByKey('key'), 'Keyed range does not exist.');
     $this->assertTrue($range->removeRangeByKey('foo'), 'Keyed range should be removed.');
 }