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

ResourceFilterTest   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 63
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 25
dl 0
loc 63
rs 10
c 0
b 0
f 0
wmc 7

7 Methods

Rating   Name   Duplication   Size   Complexity  
A testGetColumnsAllColumns() 0 6 1
A testGetColumnsNoFields() 0 4 1
A testForTemplateThrowsExceptionWithNonFormFieldType() 0 4 1
A testGetType() 0 4 1
A testGetColumnsOneField() 0 8 1
A testGetCMSFields() 0 6 1
A testGetColumnsMultipleFields() 0 11 1
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