mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-23 18:03:17 +00:00
Test ThesaurusHelper
This commit is contained in:
@@ -0,0 +1,87 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Alchemy\Tests\Phrasea\SearchEngine\Search;
|
||||||
|
|
||||||
|
use Alchemy\Phrasea\SearchEngine\Elastic\Mapping;
|
||||||
|
use Alchemy\Phrasea\SearchEngine\Elastic\Search\AggregationHelper;
|
||||||
|
use Alchemy\Phrasea\SearchEngine\Elastic\Structure\Field;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @group unit
|
||||||
|
* @group searchengine
|
||||||
|
*/
|
||||||
|
class AggregationHelperTest extends \PHPUnit_Framework_TestCase
|
||||||
|
{
|
||||||
|
public function testAggregationWrappingOnPrivateField()
|
||||||
|
{
|
||||||
|
$field = new Field('foo', Mapping::TYPE_STRING, [
|
||||||
|
'private' => 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user