/** * Tests if the resulting aggregation array is as expected. * * @dataProvider provideAggregationPipelineTestData */ public function testPipelineBuilder($testData, $expected) { $builder = new PipelineBuilder(); foreach ($testData as $part) { if ($part instanceof AggregationInterface) { $builder->add($part); } elseif ($part instanceof AggregationBag) { $builder->addBag($part); } elseif ($part instanceof PipelineBuilder) { $builder->addBuilder($part); } } $result = $builder->build(); $this->assertEquals($expected, $result); }