summaryrefslogtreecommitdiff
path: root/vendor/ruflin/elastica/test/lib/Elastica/Test/QueryBuilder/VersionTest.php
blob: d92848a71391ba32d4a447991f7be4a02f490305 (plain)
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
<?php
namespace Elastica\Test\QueryBuilder;

use Elastica\QueryBuilder\DSL;
use Elastica\QueryBuilder\Version;
use Elastica\Test\Base as BaseTest;

class VersionTest extends BaseTest
{
    /**
     * @group unit
     */
    public function testVersions()
    {
        $dsl = array(
            new DSL\Query(),
            new DSL\Filter(),
            new DSL\Aggregation(),
            new DSL\Suggest(),
        );

        $versions = array(
            new Version\Version090(),
            new Version\Version100(),
            new Version\Version110(),
            new Version\Version120(),
            new Version\Version130(),
            new Version\Version140(),
            new Version\Version150(),
        );

        foreach ($versions as $version) {
            $this->assertVersions($version, $dsl);
        }
    }

    private function assertVersions(Version $version, array $dsl)
    {
        foreach ($version->getQueries() as $query) {
            $this->assertTrue(
                method_exists($dsl[0], $query),
                'query "'.$query.'" in '.get_class($version).' must be defined in '.get_class($dsl[0])
            );
        }

        foreach ($version->getFilters() as $filter) {
            $this->assertTrue(
                method_exists($dsl[1], $filter),
                'filter "'.$filter.'" in '.get_class($version).' must be defined in '.get_class($dsl[1])
            );
        }

        foreach ($version->getAggregations() as $aggregation) {
            $this->assertTrue(
                method_exists($dsl[2], $aggregation),
                'aggregation "'.$aggregation.'" in '.get_class($version).' must be defined in '.get_class($dsl[2])
            );
        }

        foreach ($version->getSuggesters() as $suggester) {
            $this->assertTrue(
                method_exists($dsl[3], $suggester),
                'suggester "'.$suggester.'" in '.get_class($version).' must be defined in '.get_class($dsl[3])
            );
        }
    }
}