Passed
Push — master ( f00c4e...c0b818 )
by Daniel
06:24 queued 03:52
created

IndexableServiceTest   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 45
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 26
dl 0
loc 45
rs 10
c 1
b 0
f 0
wmc 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A setup() 0 4 1
A testIsIndexable() 0 15 1
A testClearCache() 0 18 1
1
<?php
2
3
namespace SilverStripe\FullTextSearch\Tests;
4
5
use SilverStripe\CMS\Model\SiteTree;
6
use SilverStripe\Dev\SapphireTest;
7
use SilverStripe\FullTextSearch\Search\Services\IndexableService;
8
9
class IndexableServiceTest extends SapphireTest
10
{
11
    protected $usesDatabase = true;
12
13
    public function setup()
14
    {
15
        parent::setup();
16
        IndexableService::singleton()->clearCache();
17
    }
18
19
    public function testIsIndexable()
20
    {
21
        $indexableService = IndexableService::singleton();
22
23
        $page = SiteTree::create();
24
        $page->CanViewType = 'Anyone';
25
        $page->ShowInSearch = 1;
26
        $page->write();
27
        $this->assertTrue($indexableService->isIndexable($page));
28
29
        $page = SiteTree::create();
30
        $page->CanViewType = 'Anyone';
31
        $page->ShowInSearch = 0;
32
        $page->write();
33
        $this->assertFalse($indexableService->isIndexable($page));
34
    }
35
36
    public function testClearCache()
37
    {
38
        $indexableService = IndexableService::singleton();
39
40
        $page = SiteTree::create();
41
        $page->CanViewType = 'Anyone';
42
        $page->ShowInSearch = 0;
43
        $page->write();
44
        $this->assertFalse($indexableService->isIndexable($page));
45
46
        // test the results are cached (expect stale result)
47
        $page->ShowInSearch = 1;
48
        $page->write();
49
        $this->assertFalse($indexableService->isIndexable($page));
50
51
        // after clearing cache, expect fresh result
52
        $indexableService->clearCache();
53
        $this->assertTrue($indexableService->isIndexable($page));
54
    }
55
}
56