/** * Tests cardinality aggregation using script instead of field. */ public function testCardinalityWithScript() { $repository = $this->getManager()->getRepository('AcmeTestBundle:Product'); $aggregation = new CardinalityAggregation('foo'); $aggregation->setScript("doc['product.price'].value + ' ' + doc['product.title'].value"); $search = $repository->createSearch()->addAggregation($aggregation); $result = $repository->execute($search)->getAggregations()->find('foo'); $this->assertEquals(2, $result->getValue()['value']); }
/** * Tests getArray method. */ public function testGetArray() { $aggregation = new CardinalityAggregation('bar'); $aggregation->setScript('foo'); $result = $aggregation->getArray(); $this->assertArrayHasKey('script', $result, 'key=script when script is set'); $this->assertEquals('foo', $result['script'], 'script=foo when scripts name=foo'); $aggregation->setField('foo'); $result = $aggregation->getArray(); $this->assertArrayHasKey('field', $result, 'key=field when field is set'); $this->assertEquals('foo', $result['field'], 'field=foo when fields name=foo'); $aggregation->setPrecisionThreshold(10); $result = $aggregation->getArray(); $this->assertArrayHasKey('precision_threshold', $result, 'key=precision_threshold when is set'); $this->assertEquals(10, $result['precision_threshold'], 'precision_threshold=10 when is set'); $aggregation->setRehash(true); $result = $aggregation->getArray(); $this->assertArrayHasKey('rehash', $result, 'key=rehash when rehash is set'); $this->assertEquals(true, $result['rehash'], 'rehash=true when rehash is set to true'); }