From cc1462a918d23735960ff6946497d28ec4dc9379 Mon Sep 17 00:00:00 2001 From: Mathieu Darse Date: Fri, 17 Jul 2015 14:59:57 +0200 Subject: [PATCH] Test ThesaurusHelper --- .../Search/AggregationHelperTest.php | 87 +++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 tests/Alchemy/Tests/Phrasea/SearchEngine/Search/AggregationHelperTest.php diff --git a/tests/Alchemy/Tests/Phrasea/SearchEngine/Search/AggregationHelperTest.php b/tests/Alchemy/Tests/Phrasea/SearchEngine/Search/AggregationHelperTest.php new file mode 100644 index 0000000000..d916ea84c4 --- /dev/null +++ b/tests/Alchemy/Tests/Phrasea/SearchEngine/Search/AggregationHelperTest.php @@ -0,0 +1,87 @@ + true, + 'used_by_collections' => [1, 2, 3] + ]); + $agg = [ + 'terms' => 'bar' + ]; + $expected = '{ + "filter": { + "terms": { + "base_id": [1, 2, 3] + } + }, + "aggs": { + "__wrapped_private_field__": { + "terms": "bar" + } + } + }'; + + $wrapped = AggregationHelper::wrapPrivateFieldAggregation($field, $agg); + $this->assertEquals(json_decode($expected, true), $wrapped); + } + + public function testAggregationWrappingOnUnrestrictedField() + { + $field = new Field('foo', Mapping::TYPE_STRING, ['private' => false]); + $agg = [ + 'terms' => 'bar' + ]; + + $wrapped = AggregationHelper::wrapPrivateFieldAggregation($field, $agg); + $this->assertEquals($agg, $wrapped); + } + + public function testAggregationUnwrapping() + { + $agg = [ + 'doc_count' => 3, + '__wrapped_private_field__' => [ + 'buckets' => [[ + 'key' => 'foo', + 'doc_count' => 1 + ]] + ] + ]; + + $expected = [ + 'buckets' => [[ + 'key' => 'foo', + 'doc_count' => 1 + ]] + ]; + + $unwrapped = AggregationHelper::unwrapPrivateFieldAggregation($agg); + $this->assertEquals($expected, $unwrapped); + } + + public function testUnwrappingOnNotWrappedAggregation() + { + $agg = [ + 'buckets' => [[ + 'key' => 'foo', + 'doc_count' => 1 + ]] + ]; + + $unwrapped = AggregationHelper::unwrapPrivateFieldAggregation($agg); + $this->assertEquals($agg, $unwrapped); + } +}