Passed
Push — hans/code-cleanup ( ca2456...0eaecc )
by Simon
05:29
created

SolrIndexTaskTest::testRun()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 34
Code Lines 20

Duplication

Lines 0
Ratio 0 %

Importance

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