1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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
93
94
|
<?php
namespace SMW\Tests\Elastic\QueryEngine;
use SMW\Elastic\QueryEngine\FieldMapper;
/**
* @covers \SMW\Elastic\QueryEngine\FieldMapper
* @group semantic-mediawiki
*
* @license GNU GPL v2+
* @since 3.0
*
* @author mwjames
*/
class FieldMapperTest extends \PHPUnit_Framework_TestCase {
public function testCanConstruct() {
$this->assertInstanceOf(
FieldMapper::class,
new FieldMapper()
);
}
public function testIsPhrase() {
$this->assertTrue(
FieldMapper::isPhrase( '"Foo bar"' )
);
$this->assertFalse(
FieldMapper::isPhrase( 'Foo"bar' )
);
}
public function testHasWildcard() {
$this->assertTrue(
FieldMapper::hasWildcard( 'Foo*' )
);
$this->assertFalse(
FieldMapper::hasWildcard( 'foo\*' )
);
}
/**
* @dataProvider aggregationsProvider
*/
public function testAggregations( $method, $params, $expected ) {
$instance = new FieldMapper();
$this->assertEquals(
$expected,
call_user_func_array( [ $instance, $method ], $params )
);
}
public function aggregationsProvider() {
yield [
'aggs',
[ 'Foo', 'bar' ],
[ 'aggregations' => [ "Foo" => 'bar' ] ]
];
yield [
'aggs_terms',
[ 'Foo', 'bar', [] ],
[ 'Foo' => [ 'terms' => [ "field" => 'bar' ] ] ]
];
yield [
'aggs_significant_terms',
[ 'Foo', 'bar', [] ],
[ 'Foo' => [ 'significant_terms' => [ "field" => 'bar' ] ] ]
];
yield [
'aggs_histogram',
[ 'Foo', 'bar', 100 ],
[ 'Foo' => [ 'histogram' => [ "field" => 'bar', 'interval' => 100 ] ] ]
];
yield [
'aggs_date_histogram',
[ 'Foo', 'bar', 100 ],
[ 'Foo' => [ 'date_histogram' => [ "field" => 'bar', 'interval' => 100 ] ] ]
];
}
}
|