Passed
Push — sheepy/introspection ( 851cdd...69e16c )
by Marco
06:22
created

SolrIndexTaskTest::setUp()   A

Complexity

Conditions 2
Paths 2

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