Newer
Older
<?php
namespace Drupal\Tests\search_api_opensearch\Unit\SearchAPI\Query;
use Drupal\search_api\Query\QueryInterface;
use Drupal\search_api_opensearch\SearchAPI\Query\FacetResultParser;
use Drupal\Tests\UnitTestCase;
/**
* Tests the facets result parser.
*
* @coversDefaultClass \Drupal\search_api_opensearch\SearchAPI\Query\FacetResultParser
* @group search_api_opensearch
*/
class FacetResultParserTest extends UnitTestCase {
/**
* @covers ::parseFacetResult
*/
public function testParseFacetResult() {
$logger = $this->prophesize(LoggerInterface::class);
$parser = new FacetResultParser($logger->reveal());
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
$query = $this->prophesize(QueryInterface::class);
$query->getOption('search_api_facets', [])
->willReturn([
'facet1' => [
'field' => 'field1',
'operator' => 'and',
],
'facet2' => [
'field' => 'field1',
'operator' => 'or',
],
]);
$response = [
'aggregations' => [
'facet1' => [
'doc_count_error_upper_bound' => 0,
'sum_other_doc_count' => 0,
'buckets' => [
[
'key' => 'foo',
'doc_count' => 100,
],
[
'key' => 'bar',
'doc_count' => 200,
],
],
],
'facet2_global' => [
'facet2' => [
'buckets' => [
[
'key' => 'whizz',
'doc_count' => 400,
],
],
],
],
],
];
$facetData = $parser->parseFacetResult($query->reveal(), $response);
$expected = [
'facet1' => [
[
'count' => 100,
'filter' => '"foo"',
],
[
'count' => 200,
'filter' => '"bar"',
],
],
'facet2' => [
[
'count' => 400,
'filter' => '"whizz"',
],
],
];
$this->assertNotEmpty($facetData);
$this->assertEquals($expected, $facetData);
}
}