/** * Add an cardinality aggregate. * * @param $alias * @param string|null $field * @param string|null $script * @param int $precision * @param bool $rehash */ public function cardinality($alias, $field = null, $script = null, $precision = null, $rehash = null) { $aggregation = new CardinalityAggregation($alias); $aggregation->setField($field); $aggregation->setScript($script); $aggregation->setPrecisionThreshold($precision); $aggregation->setRehash($rehash); $this->append($aggregation); }
/** * 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'); }