Passed
Pull Request — master (#78)
by Robbie
02:37
created

ResourceFilterTest::testGetColumnsOneField()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 5
nc 1
nop 0
dl 0
loc 8
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace SilverStripe\CKANRegistry\Tests\Model;
4
5
use InvalidArgumentException;
6
use SilverStripe\CKANRegistry\Model\ResourceField;
7
use SilverStripe\CKANRegistry\Model\ResourceFilter;
8
use SilverStripe\Dev\SapphireTest;
9
10
class ResourceFilterTest extends SapphireTest
11
{
12
    protected $usesDatabase = true;
13
14
    /**
15
     * @expectedException InvalidArgumentException
16
     * @expectedExceptionMessage SilverStripe\Control\HTTPResponse is not a FormField
17
     */
18
    public function testForTemplateThrowsExceptionWithNonFormFieldType()
19
    {
20
        $filter = new ResourceFilterTest\InvalidResourceFilter();
21
        $filter->forTemplate();
22
    }
23
24
    public function testGetType()
25
    {
26
        $filter = new ResourceFilter();
27
        $this->assertSame('Text Filter', $filter->getType());
28
    }
29
30
    public function testGetCMSFields()
31
    {
32
        $filter = new ResourceFilter();
33
        $fields = $filter->getCMSFields();
34
35
        $this->assertNull($fields->dataFieldByName('FilterForID'), 'FilterForID should be removed');
36
    }
37
38
    public function testGetColumnsNoFields()
39
    {
40
        $filter = new ResourceFilter();
41
        $this->assertEmpty($filter->getColumns(), 'Should return an empty string without fields');
42
    }
43
44
    public function testGetColumnsOneField()
45
    {
46
        $filter = new ResourceFilter();
47
        $field = new ResourceField();
48
        $field->ReadableLabel = 'My field';
49
        $filter->FilterFields()->add($field);
50
51
        $this->assertSame('My field', $filter->getColumns(), 'Should return the single field name');
52
    }
53
54
    public function testGetColumnsMultipleFields()
55
    {
56
        $filter = new ResourceFilter();
57
58
        $field = new ResourceField();
59
        $filter->FilterFields()->add($field);
60
61
        $field2 = new ResourceField();
62
        $filter->FilterFields()->add($field2);
63
64
        $this->assertContains('Multiple columns', $filter->getColumns(), 'Should return "multiple columns"');
65
    }
66
67
    public function testGetColumnsAllColumns()
68
    {
69
        $filter = new ResourceFilter();
70
        $filter->AllColumns = true;
71
72
        $this->assertContains('All columns', $filter->getColumns(), 'Should return "all columns"');
73
    }
74
}
75