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

SolrIndexTaskTest   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 59
Duplicated Lines 0 %

Importance

Changes 7
Bugs 0 Features 0
Metric Value
wmc 3
eloc 33
c 7
b 0
f 0
dl 0
loc 59
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A testRun() 0 37 1
A testGetLogger() 0 7 1
A setUpBeforeClass() 0 10 1
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