SubsiteStateTest   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 55
Duplicated Lines 0 %

Importance

Changes 10
Bugs 1 Features 0
Metric Value
wmc 5
eloc 24
c 10
b 1
f 0
dl 0
loc 55
rs 10

5 Methods

Rating   Name   Duplication   Size   Complexity  
A testSetDefaultState() 0 5 1
A testCurrentState() 0 5 1
A testIsApplicable() 0 5 1
A testUpdateQuery() 0 23 1
A testActivateState() 0 7 1
1
<?php
2
3
4
namespace Firesphere\SolrSubsites\Tests;
5
6
use Firesphere\SolrSearch\Queries\BaseQuery;
7
use Firesphere\SolrSubsites\States\SubsiteState;
8
use SilverStripe\CMS\Model\SiteTree;
9
use SilverStripe\Dev\SapphireTest;
10
use SilverStripe\Subsites\Model\Subsite;
11
use SilverStripe\Subsites\State\SubsiteState as SubsiteStateHandler;
12
13
class SubsiteStateTest extends SapphireTest
14
{
15
    public function testIsApplicable()
16
    {
17
        $state = new SubsiteState();
18
19
        $this->assertFalse($state->stateIsApplicable(0));
20
    }
21
22
    public function testSetDefaultState()
23
    {
24
        $state = new SubsiteState();
25
26
        $this->assertNull($state->setDefaultState(0));
27
    }
28
29
    public function testCurrentState()
30
    {
31
        $state = new SubsiteState();
32
33
        $this->assertNull($state->currentState());
34
    }
35
36
    public function testActivateState()
37
    {
38
        $state = new SubsiteState();
39
        $state->activateState(0);
40
41
        $this->assertFalse(Subsite::$disable_subsite_filter);
42
        $this->assertNull(Subsite::currentSubsite());
43
    }
44
45
    public function testUpdateQuery()
46
    {
47
        $state = new SubsiteState();
48
        Subsite::$disable_subsite_filter = false;
49
        $query = new BaseQuery();
50
        $query->addClass(SiteTree::class);
51
52
        $state->updateQuery($query);
53
54
        $result = $query->getFilter();
55
56
        $this->assertNotContains('SiteTree_SubsiteID', $result);
57
58
        $id = Subsite::create(['Title' => 'Hello'])->write();
59
60
        SubsiteStateHandler::singleton()->setUseSessions(true);
61
        Subsite::changeSubsite($id);
62
63
        $state->updateQuery($query);
64
65
        $result = $query->getFilter();
66
67
        $this->assertArrayHasKey('SiteTree_SubsiteID', $result);
68
    }
69
}
70