Passed
Push — sheepy/introspection ( 000d40...b6b869 )
by Marco
02:43
created

SolrIndexTaskTest::setUpBeforeClass()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 10
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 7
c 1
b 0
f 0
dl 0
loc 10
rs 10
cc 1
nc 1
nop 0
1
<?php
2
3
4
namespace Firesphere\SolrSearch\Tests;
5
6
use Firesphere\SolrSearch\Tasks\SolrIndexTask;
7
use Psr\Log\LoggerInterface;
8
use SilverStripe\Control\HTTPRequest;
9
use SilverStripe\Control\HTTPRequestBuilder;
10
use SilverStripe\Core\Injector\Injector;
11
use SilverStripe\Dev\SapphireTest;
12
use SilverStripe\ORM\DatabaseAdmin;
13
use SilverStripe\ORM\DB;
14
15
class SolrIndexTaskTest extends SapphireTest
16
{
17
    public static function setUpBeforeClass()
18
    {
19
        parent::setUpBeforeClass();
20
        // This is a hack on my local dev to make fixtures populate temporary database
21
        $conn = DB::get_conn();
22
        $dbName = self::tempDB()->build();
23
        $conn->selectDatabase($dbName);
24
        $dbAdmin = new DatabaseAdmin();
25
        $dbAdmin->setRequest(HTTPRequestBuilder::createFromEnvironment());
26
        $dbAdmin->doBuild(true, true, true);
27
    }
28
    public function testRun()
29
    {
30
        $getVars = [
31
            'group' => 0,
32
            'index' => 'CircleCITestIndex'
33
        ];
34
        $request = new HTTPRequest('GET', 'dev/tasks/SolrIndexTask', $getVars);
35
36
        /** @var SolrIndexTask $task */
37
        $task = Injector::inst()->get(SolrIndexTask::class);
38
39
        $result = $task->run($request);
40
41
        $this->assertEquals(1, $result);
42
43
        $getVars = [
44
            'group' => 0,
45
            'index' => 'CircleCITestIndex',
46
            'clear' => 1
47
        ];
48
        $request = new HTTPRequest('GET', 'dev/tasks/SolrIndexTask', $getVars);
49
50
        /** @var SolrIndexTask $task */
51
        $task = Injector::inst()->get(SolrIndexTask::class);
52
53
        $result = $task->run($request);
54
55
        $this->assertEquals(1, $result);
56
        $getVars = [
57
            'start' => 1,
58
            'index' => 'CircleCITestIndex',
59
        ];
60
        $request = new HTTPRequest('GET', 'dev/tasks/SolrIndexTask', $getVars);
61
62
        $result = $task->run($request);
63
64
        $this->assertEquals(1, $result);
65
    }
66
67
    public function testGetLogger()
68
    {
69
        $task = new SolrIndexTask();
70
71
        $this->assertInstanceOf(LoggerInterface::class, $task->getLogger());
72
        $task->setLogger(null);
73
        $this->assertInstanceOf(LoggerInterface::class, $task->getLogger());
74
    }
75
}
76