Passed
Push — sheepy/rebase-latest ( 6694a6 )
by Simon
07:59
created

SolrIndexTaskTest::setUp()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 4
c 0
b 0
f 0
dl 0
loc 6
rs 10
cc 1
nc 1
nop 0
1
<?php
2
3
4
namespace Firesphere\SolrSearch\Tests;
5
6
use Firesphere\SolrSearch\Compat\SubsitesExtension;
7
use Firesphere\SolrSearch\Extensions\BaseIndexExtension;
8
use Firesphere\SolrSearch\Extensions\DataObjectExtension;
9
use Firesphere\SolrSearch\Indexes\BaseIndex;
10
use Firesphere\SolrSearch\Tasks\SolrIndexTask;
11
use Page;
12
use Psr\Log\LoggerInterface;
13
use SilverStripe\CMS\Model\SiteTree;
14
use SilverStripe\Control\HTTPRequest;
15
use SilverStripe\Core\Config\Config;
16
use SilverStripe\Core\Injector\Injector;
17
use SilverStripe\Dev\Debug;
18
use SilverStripe\Dev\SapphireTest;
19
use SilverStripe\ORM\DataObject;
20
use SilverStripe\SiteConfig\SiteConfig;
21
22
class SolrIndexTaskTest extends SapphireTest
23
{
24
    protected static $fixture_file = 'tests/fixtures/DataResolver.yml';
25
    protected static $extra_dataobjects = [
26
        TestObject::class,
27
        TestPage::class,
28
        TestRelationObject::class,
29
    ];
30
31
    protected static $required_extensions = [
32
        DataObject::class => [DataObjectExtension::class],
33
        BaseIndex::class => [BaseIndexExtension::class, SubsitesExtension::class],
34
    ];
35
36
    public function setUp()
37
    {
38
        $siteConfig = SiteConfig::current_site_config();
39
        $siteConfig->CanViewType = 'Anyone';
40
        $siteConfig->write();
41
        parent::setUp();
42
    }
43
44
    public function testRun()
45
    {
46
        $getVars = [
47
            'group' => 0,
48
            'index' => 'CircleCITestIndex'
49
        ];
50
        $request = new HTTPRequest('GET', 'dev/tasks/SolrIndexTask', $getVars);
51
52
        /** @var SolrIndexTask $task */
53
        $task = Injector::inst()->get(SolrIndexTask::class);
54
55
        $result = $task->run($request);
56
57
        $this->assertEquals(0, $result);
58
59
        $getVars = [
60
            'group' => 0,
61
            'index' => 'CircleCITestIndex',
62
            'clear' => 1
63
        ];
64
        $request = new HTTPRequest('GET', 'dev/tasks/SolrIndexTask', $getVars);
65
66
        $result = $task->run($request);
67
68
        $this->assertEquals(0, $result);
69
        $getVars = [
70
            'start' => 0,
71
            'index' => 'CircleCITestIndex',
72
        ];
73
        $request = new HTTPRequest('GET', 'dev/tasks/SolrIndexTask', $getVars);
74
75
        $result = $task->run($request);
76
77
        $this->assertEquals(1, $result);
78
    }
79
80
    public function testGetLogger()
81
    {
82
        $task = new SolrIndexTask();
83
84
        $this->assertInstanceOf(LoggerInterface::class, $task->getLogger());
85
        $task->setLogger(null);
86
        $this->assertInstanceOf(LoggerInterface::class, $task->getLogger());
87
    }
88
}
89