Completed
Branch MORE_COVERAGE (733c77)
by Gordon
12:45
created

IndexesTest   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 41
Duplicated Lines 0 %

Importance

Changes 3
Bugs 0 Features 0
Metric Value
wmc 5
eloc 17
c 3
b 0
f 0
dl 0
loc 41
rs 10

5 Methods

Rating   Name   Duplication   Size   Complexity  
A testGetHasOneFieldsForIndex() 0 4 1
A testGetHasManyFieldsForIndex() 0 4 1
A setUp() 0 4 1
A testGetFacetsForIndex() 0 5 1
A testGetIndexesSingleIndex() 0 11 1
1
<?php
2
namespace Suilven\FreeTextSearch\Tests;
3
4
use SilverStripe\Dev\SapphireTest;
5
use SilverStripe\CMS\Model\SiteTree;
6
use Suilven\FreeTextSearch\Index;
7
use Suilven\FreeTextSearch\Indexes;
8
9
class IndexesTest extends SapphireTest
10
{
11
    /** @var Indexes */
12
    private $indexes;
13
14
    public function setUp()
15
    {
16
        parent::setUp();
17
        $this->indexes = new Indexes();
18
    }
19
20
    public function testGetIndexesSingleIndex()
21
    {
22
        $actualIndexes = $this->indexes->getIndexes();
23
24
        /** @var Index $flickrIndex */
25
        $flickrIndex = $actualIndexes[2];
26
        $this->assertEquals(['Title', 'Description'], $flickrIndex->getFields());
27
        $this->assertEquals(['Aperture', 'ShutterSpeed', 'ISO'], $flickrIndex->getTokens());
28
        $this->assertEquals(['Suilven\ManticoreSearch\Tests\Models\FlickrTag'], $flickrIndex->getHasManyFields());
29
        $this->assertEquals(['Suilven\ManticoreSearch\Tests\Models\FlickrAuthor'], $flickrIndex->getHasOneFields());
30
        $this->assertEquals('flickrphotos', $flickrIndex->getName());
31
    }
32
33
    public function testGetFacetsForIndex()
34
    {
35
        $fields = $this->indexes->getFacetFields('flickrphotos');
36
        // @todo Check what the case sensitivy issues are here
37
        $this->assertEquals(['Aperture', 'ShutterSpeed', 'ISO'], $fields);
38
    }
39
40
    public function testGetHasOneFieldsForIndex()
41
    {
42
        $fields = $this->indexes->getHasOneFields('flickrphotos');
43
        $this->assertEquals(['Suilven\ManticoreSearch\Tests\Models\FlickrAuthor'], $fields);
44
    }
45
46
    public function testGetHasManyFieldsForIndex()
47
    {
48
        $fields = $this->indexes->getHasManyFields('flickrphotos');
49
        $this->assertEquals(['Suilven\ManticoreSearch\Tests\Models\FlickrTag'], $fields);
50
    }
51
}
52