Passed
Push — master ( 177f69...7b0b69 )
by Simon
08:14
created

MockState   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 60
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 7
dl 0
loc 60
rs 10
c 0
b 0
f 0
wmc 6

6 Methods

Rating   Name   Duplication   Size   Complexity  
A setDefaultState() 0 3 1
A stateIsApplicable() 0 3 1
A appliesToEnvironment() 0 3 1
A updateQuery() 0 2 1
A currentState() 0 3 1
A activateState() 0 3 1
1
<?php
2
3
4
namespace Firesphere\SolrCompatibility\Tests;
5
6
use Firesphere\SolrSearch\Interfaces\SiteStateInterface;
7
use Firesphere\SolrSearch\Queries\BaseQuery;
8
use Firesphere\SolrSearch\States\SiteState;
9
use SilverStripe\Dev\TestOnly;
10
11
class MockState extends SiteState implements TestOnly, SiteStateInterface
12
{
13
    public $enabled = false;
14
15
    public function appliesToEnvironment(): bool
16
    {
17
        return $this->enabled;
18
    }
19
20
    /**
21
     * Reset the SiteState to it's default state
22
     *
23
     * @return mixed
24
     */
25
    public function setDefaultState($state = null)
26
    {
27
        $this->activateState('default');
28
    }
29
30
    /**
31
     * Activate a given state. This should only be done if the state is applicable
32
     *
33
     * @param string $state
34
     * @return mixed
35
     */
36
    public function activateState($state)
37
    {
38
        $this->state = $state;
39
    }
40
41
    /**
42
     * Return the current state of the site
43
     *
44
     * @return string
45
     */
46
    public function currentState(): string
47
    {
48
        return 'default';
49
    }
50
51
    /**
52
     * Is this state applicable to this extension
53
     * E.g. in case of Fluent, the state "SubsiteID1" does not make sense
54
     *
55
     * @param string $state
56
     * @return bool
57
     */
58
    public function stateIsApplicable($state): bool
59
    {
60
        return in_array($state, ['default', 'other']);
61
    }
62
63
    /**
64
     * Method to alter the query. Can be no-op.
65
     *
66
     * @param BaseQuery $query
67
     * @return mixed
68
     */
69
    public function updateQuery(&$query)
70
    {
71
        // TODO: Implement updateQuery() method.
72
    }
73
}
74