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

JobSubmissionTest::testGetTitle()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 4
nc 1
nop 0
dl 0
loc 8
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace Dynamic\Jobs\Test;
4
5
use Dynamic\Jobs\Model\JobSubmission;
6
use SilverStripe\Core\Injector\Injector;
7
use SilverStripe\Dev\SapphireTest;
8
use SilverStripe\Forms\FieldList;
9
use SilverStripe\Forms\RequiredFields;
10
use SilverStripe\Security\Member;
11
12
/**
13
 * Class JobSubmission
14
 * @package Dynamic\Jobs\Tests
15
 */
16
class JobSubmissionTest extends SapphireTest
17
{
18
    /**
19
     * @var string
20
     */
21
    protected static $fixture_file = '../fixtures.yml';
22
23
    /**
24
     * Tests getName()
25
     */
26
    public function testGetName()
27
    {
28
        /** @var JobSubmission $object */
29
        $object = Injector::inst()->create(JobSubmission::class);
30
        $this->assertEquals('No Name', $object->getName());
31
32
        $object->FirstName = 'Raymond';
0 ignored issues
show
Bug Best Practice introduced by
The property FirstName does not exist on Dynamic\Jobs\Model\JobSubmission. Since you implemented __set, consider adding a @property annotation.
Loading history...
33
        $object->LastName = 'Luxury-Yacht';
0 ignored issues
show
Bug Best Practice introduced by
The property LastName does not exist on Dynamic\Jobs\Model\JobSubmission. Since you implemented __set, consider adding a @property annotation.
Loading history...
34
35
        $this->assertEquals('Raymond Luxury-Yacht', $object->getName());
36
    }
37
38
    /**
39
     * Tests getTitle()
40
     */
41
    public function testGetTitle()
42
    {
43
        /** @var JobSubmission $object */
44
        $object = Injector::inst()->create(JobSubmission::class);
45
        $object->FirstName = 'Arthur';
0 ignored issues
show
Bug Best Practice introduced by
The property FirstName does not exist on Dynamic\Jobs\Model\JobSubmission. Since you implemented __set, consider adding a @property annotation.
Loading history...
46
        $object->LastName = 'Nudge';
0 ignored issues
show
Bug Best Practice introduced by
The property LastName does not exist on Dynamic\Jobs\Model\JobSubmission. Since you implemented __set, consider adding a @property annotation.
Loading history...
47
48
        $this->assertEquals('Arthur Nudge', $object->getTitle());
49
    }
50
51
    /**
52
     * Tests getFrontEndFields()
53
     */
54
    public function testGetFrontEndFields()
55
    {
56
        /** @var JobSubmission $object */
57
        $object = Injector::inst()->create(JobSubmission::class);
58
        $fields = $object->getFrontEndFields();
59
        $this->assertInstanceOf(FieldList::class, $fields);
60
    }
61
62
    /**
63
     * Tests getRequiredFields()
64
     */
65
    public function testGetRequiredFields()
66
    {
67
        /** @var JobSubmission $object */
68
        $object = Injector::inst()->create(JobSubmission::class);
69
        $fields = $object->getRequiredFields();
70
        $this->assertInstanceOf(RequiredFields::class, $fields);
71
    }
72
73
    /**
74
     * Tests getCMSFields
75
     */
76
    public function testGetCMSFields()
77
    {
78
        /** @var JobSubmission $object */
79
        $object = Injector::inst()->create(JobSubmission::class);
80
        $fields = $object->getCMSFields();
81
        $this->assertInstanceOf(FieldList::class, $fields);
82
    }
83
84
    /**
85
     * Tests canCreate()
86
     */
87
    public function testCanCreate()
88
    {
89
        /** @var JobSubmission $object */
90
        $object = Injector::inst()->create(JobSubmission::class);
91
92
        $admin = $this->objFromFixture(Member::class, 'Admin');
93
        $create = $this->objFromFixture(Member::class, 'Create');
94
        $edit = $this->objFromFixture(Member::class, 'Edit');
95
        $delete = $this->objFromFixture(Member::class, 'Delete');
96
        $visitor = $this->objFromFixture(Member::class, 'Visitor');
97
98
        $this->assertTrue($object->canCreate($admin));
99
        $this->assertTrue($object->canCreate($create));
100
        $this->assertFalse($object->canCreate($edit));
101
        $this->assertFalse($object->canCreate($delete));
102
        $this->assertFalse($object->canCreate($visitor));
103
    }
104
105
    /**
106
     * Tests canEdit()
107
     */
108
    public function testCanEdit()
109
    {
110
        /** @var JobSubmission $object */
111
        $object = Injector::inst()->create(JobSubmission::class);
112
113
        $admin = $this->objFromFixture(Member::class, 'Admin');
114
        $create = $this->objFromFixture(Member::class, 'Create');
115
        $edit = $this->objFromFixture(Member::class, 'Edit');
116
        $delete = $this->objFromFixture(Member::class, 'Delete');
117
        $visitor = $this->objFromFixture(Member::class, 'Visitor');
118
119
        $this->assertTrue($object->canEdit($admin));
120
        $this->assertFalse($object->canEdit($create));
121
        $this->assertTrue($object->canEdit($edit));
122
        $this->assertFalse($object->canEdit($delete));
123
        $this->assertFalse($object->canEdit($visitor));
124
    }
125
126
    /**
127
     * Tests canDelete()
128
     */
129
    public function testCanDelete()
130
    {
131
        /** @var JobSubmission $object */
132
        $object = Injector::inst()->create(JobSubmission::class);
133
134
        $admin = $this->objFromFixture(Member::class, 'Admin');
135
        $create = $this->objFromFixture(Member::class, 'Create');
136
        $edit = $this->objFromFixture(Member::class, 'Edit');
137
        $delete = $this->objFromFixture(Member::class, 'Delete');
138
        $visitor = $this->objFromFixture(Member::class, 'Visitor');
139
140
        $this->assertTrue($object->canDelete($admin));
141
        $this->assertFalse($object->canDelete($create));
142
        $this->assertFalse($object->canDelete($edit));
143
        $this->assertTrue($object->canDelete($delete));
144
        $this->assertFalse($object->canDelete($visitor));
145
    }
146
147
    /**
148
     * Tests canView()
149
     */
150
    public function testCanView()
151
    {
152
        /** @var JobSubmission $object */
153
        $object = Injector::inst()->create(JobSubmission::class);
154
        $this->assertTrue($object->canView());
155
    }
156
}
157