Passed
Push — sheepy/introspection ( 9a33c8...7d1300 )
by Marco
05:54
created

QueryComponentFactoryTest   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 41
Duplicated Lines 0 %

Importance

Changes 3
Bugs 0 Features 0
Metric Value
wmc 2
eloc 25
c 3
b 0
f 0
dl 0
loc 41
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A setUp() 0 5 1
A testBuildQuery() 0 26 1
1
<?php
2
3
4
namespace Firesphere\SolrSearch\Tests;
5
6
use Firesphere\SolrSearch\Factories\QueryComponentFactory;
7
use Firesphere\SolrSearch\Indexes\BaseIndex;
8
use Firesphere\SolrSearch\Queries\BaseQuery;
9
use SilverStripe\Dev\SapphireTest;
10
use Solarium\Core\Query\Helper;
11
12
class QueryComponentFactoryTest extends SapphireTest
13
{
14
15
    /**
16
     * @var QueryComponentFactory
17
     */
18
    protected $factory;
19
20
    protected function setUp()
21
    {
22
        $this->factory = new QueryComponentFactory();
23
24
        return parent::setUp();
25
    }
26
27
    public function testBuildQuery()
28
    {
29
        $index = new \CircleCITestIndex();
30
        $query = new BaseQuery();
31
        $clientQuery = $index->getClient()->createSelect();
32
        $query->addTerm('Home');
33
        $query->addField('SiteTree_Title');
34
        $query->addFilter('SiteTree_Title', 'Home');
35
        $query->addExclude('SiteTree_Title', 'Contact');
36
        $query->addBoostedField('SiteTree_Content', [], 2);
37
38
        $this->factory->setQuery($query);
39
        $this->factory->setIndex($index);
40
        $this->factory->setClientQuery($clientQuery);
41
        $this->factory->setHelper($clientQuery->getHelper());
42
        $this->factory->setQueryArray(['Home']);
43
44
        $this->factory->buildQuery();
45
46
        $expected = ['Home', 'SiteTree_Content:Home^2.0'];
47
        $this->assertEquals($expected, $this->factory->getQueryArray());
48
        $this->assertEquals(['SiteTree_Title'], $this->factory->getClientQuery()->getFields());
49
        $this->assertCount(3, $this->factory->getClientQuery()->getFilterQueries());
50
        $this->assertInstanceOf(Helper::class, $this->factory->getHelper());
51
        $this->assertInstanceOf(BaseIndex::class, $this->factory->getIndex());
52
        $this->assertInstanceOf(BaseQuery::class, $this->factory->getQuery());
53
    }
54
}
55