/**
  * Tests if filters can be passed to constructor.
  */
 public function testConstructorFilter()
 {
     /** @var BuilderInterface|\PHPUnit_Framework_MockObject_MockObject $builderInterface1 */
     $builderInterface1 = $this->getMockForAbstractClass('ONGR\\ElasticsearchDSL\\BuilderInterface');
     /** @var BuilderInterface|\PHPUnit_Framework_MockObject_MockObject $builderInterface2 */
     $builderInterface2 = $this->getMockForAbstractClass('ONGR\\ElasticsearchDSL\\BuilderInterface');
     $aggregation = new FiltersAggregation('test', ['filter1' => $builderInterface1, 'filter2' => $builderInterface2]);
     $this->assertSame(['filters' => ['filters' => ['filter1' => null, 'filter2' => null]]], $aggregation->toArray());
     $aggregation = new FiltersAggregation('test', ['filter1' => $builderInterface1, 'filter2' => $builderInterface2], true);
     $this->assertSame(['filters' => ['filters' => [null, null]]], $aggregation->toArray());
 }
 /**
  * Test for filter aggregation toArray() method.
  */
 public function testToArray()
 {
     $aggregation = new FiltersAggregation('test_agg');
     $filter = $this->getMockBuilder('ONGR\\ElasticsearchDSL\\BuilderInterface')->setMethods(['toArray', 'getType'])->getMockForAbstractClass();
     $filter->expects($this->any())->method('getType')->willReturn('test_filter');
     $filter->expects($this->any())->method('toArray')->willReturn(['test_field' => ['test_value' => 'test']]);
     $aggregation->addFilter($filter, 'first');
     $aggregation->addFilter($filter, 'second');
     $results = $aggregation->toArray();
     $expected = ['agg_test_agg' => ['filters' => ['filters' => ['first' => ['test_filter' => ['test_field' => ['test_value' => 'test']]], 'second' => ['test_filter' => ['test_field' => ['test_value' => 'test']]]]]]];
     $this->assertEquals($expected, $results);
 }
 /**
  * Tests if filters can be passed to constructor.
  */
 public function testConstructorFilter()
 {
     /** @var BuilderInterface|\PHPUnit_Framework_MockObject_MockObject $builderInterface1 */
     $builderInterface1 = $this->getMockForAbstractClass('ONGR\\ElasticsearchDSL\\BuilderInterface');
     $builderInterface1->expects($this->any())->method('getType')->willReturn('type1');
     /** @var BuilderInterface|\PHPUnit_Framework_MockObject_MockObject $builderInterface2 */
     $builderInterface2 = $this->getMockForAbstractClass('ONGR\\ElasticsearchDSL\\BuilderInterface');
     $builderInterface2->expects($this->any())->method('getType')->willReturn('type2');
     $aggregation = new FiltersAggregation('test', ['filter1' => $builderInterface1, 'filter2' => $builderInterface2]);
     $this->assertSame(['filters' => ['filters' => ['filter1' => ['type1' => null], 'filter2' => ['type2' => null]]]], $aggregation->toArray());
     $aggregation = new FiltersAggregation('test', ['filter1' => $builderInterface1, 'filter2' => $builderInterface2], true);
     $this->assertSame(['filters' => ['filters' => [['type1' => null], ['type2' => null]]]], $aggregation->toArray());
 }