Passed
Push — master ( 05e846...9de07a )
by Jason
02:44
created

JobCategoryTest   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 89
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 40
dl 0
loc 89
rs 10
c 0
b 0
f 0
wmc 5

5 Methods

Rating   Name   Duplication   Size   Complexity  
A testCanCreate() 0 16 1
A testCanDelete() 0 16 1
A testGetCMSFields() 0 6 1
A testCanEdit() 0 16 1
A testCanView() 0 5 1
1
<?php
2
3
namespace Dynamic\Jobs\Test;
4
5
use Dynamic\Jobs\Model\JobCategory;
6
use SilverStripe\Core\Injector\Injector;
7
use SilverStripe\Dev\SapphireTest;
8
use SilverStripe\Forms\FieldList;
9
use SilverStripe\Security\Member;
10
11
/**
12
 * Class JobCategoryTest
13
 * @package Dynamic\Jobs\Tests
14
 */
15
class JobCategoryTest extends SapphireTest
16
{
17
    /**
18
     * @var string
19
     */
20
    protected static $fixture_file = '../fixtures.yml';
21
22
    /**
23
     * Tests getCMSFields
24
     */
25
    public function testGetCMSFields()
26
    {
27
        /** @var JobCategory $object */
28
        $object = $this->objFromFixture(JobCategory::class, 'one');
29
        $fields = $object->getCMSFields();
30
        $this->assertInstanceOf(FieldList::class, $fields);
31
    }
32
33
    /**
34
     * Tests canCreate()
35
     */
36
    public function testCanCreate()
37
    {
38
        /** @var JobCategory $object */
39
        $object = Injector::inst()->create(JobCategory::class);
40
41
        $admin = $this->objFromFixture(Member::class, 'Admin');
42
        $create = $this->objFromFixture(Member::class, 'Create');
43
        $edit = $this->objFromFixture(Member::class, 'Edit');
44
        $delete = $this->objFromFixture(Member::class, 'Delete');
45
        $visitor = $this->objFromFixture(Member::class, 'Visitor');
46
47
        $this->assertTrue($object->canCreate($admin));
48
        $this->assertTrue($object->canCreate($create));
49
        $this->assertFalse($object->canCreate($edit));
50
        $this->assertFalse($object->canCreate($delete));
51
        $this->assertFalse($object->canCreate($visitor));
52
    }
53
54
    /**
55
     * Tests canEdit()
56
     */
57
    public function testCanEdit()
58
    {
59
        /** @var JobCategory $object */
60
        $object = Injector::inst()->create(JobCategory::class);
61
62
        $admin = $this->objFromFixture(Member::class, 'Admin');
63
        $create = $this->objFromFixture(Member::class, 'Create');
64
        $edit = $this->objFromFixture(Member::class, 'Edit');
65
        $delete = $this->objFromFixture(Member::class, 'Delete');
66
        $visitor = $this->objFromFixture(Member::class, 'Visitor');
67
68
        $this->assertTrue($object->canEdit($admin));
69
        $this->assertFalse($object->canEdit($create));
70
        $this->assertTrue($object->canEdit($edit));
71
        $this->assertFalse($object->canEdit($delete));
72
        $this->assertFalse($object->canEdit($visitor));
73
    }
74
75
    /**
76
     * Tests canDelete()
77
     */
78
    public function testCanDelete()
79
    {
80
        /** @var JobCategory $object */
81
        $object = Injector::inst()->create(JobCategory::class);
82
83
        $admin = $this->objFromFixture(Member::class, 'Admin');
84
        $create = $this->objFromFixture(Member::class, 'Create');
85
        $edit = $this->objFromFixture(Member::class, 'Edit');
86
        $delete = $this->objFromFixture(Member::class, 'Delete');
87
        $visitor = $this->objFromFixture(Member::class, 'Visitor');
88
89
        $this->assertTrue($object->canDelete($admin));
90
        $this->assertFalse($object->canDelete($create));
91
        $this->assertFalse($object->canDelete($edit));
92
        $this->assertTrue($object->canDelete($delete));
93
        $this->assertFalse($object->canDelete($visitor));
94
    }
95
96
    /**
97
     * Tests canView()
98
     */
99
    public function testCanView()
100
    {
101
        /** @var JobCategory $object */
102
        $object = Injector::inst()->create(JobCategory::class);
103
        $this->assertTrue($object->canView());
104
    }
105
}
106