Passed
Pull Request — master (#198)
by Nic
02:28
created

SlideTest::testCanDelete()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 25
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 13
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 25
rs 9.8333
1
<?php
2
3
namespace Dynamic\FlexSlider\Test\Model;
4
5
use Dynamic\FlexSlider\Model\Slide;
6
use SilverStripe\Dev\SapphireTest;
7
use SilverStripe\Security\Member;
8
9
/**
10
 * Class SlideTest
11
 * @package Dynamic\FlexSlider\Test\Model
12
 */
13
class SlideTest extends SapphireTest
14
{
15
    /**
16
     * @var string
17
     */
18
    protected static $fixture_file = '../fixtures.yml';
19
20
    /**
21
     *
22
     */
23
    public function testCanCreate()
24
    {
25
        /** @var Member $canCreate */
26
        $canCreate = $this->objFromFixture(Member::class, 'slide_author');
27
        /** @var Member $canAdminister */
28
        $canAdminister = $this->objFromFixture(Member::class, 'slide_admin');
29
        /** @var Member $noPermission */
30
        $noPermission = $this->objFromFixture(Member::class, 'slide_no_permission');
31
32
        $this->logInAs($canCreate);
33
        $slide = Slide::singleton();
34
35
        $this->assertTrue($slide->canCreate());
36
37
        $this->logOut();
38
        $this->logInAs($canAdminister);
39
40
        $this->assertTrue($slide->canCreate());
41
42
        $this->logOut();
43
        $this->logInAs($noPermission);
44
45
        $this->assertFalse($slide->canCreate());
46
        $this->logOut();
47
    }
48
49
    /**
50
     *
51
     */
52
    public function testCanEdit()
53
    {
54
        /** @var Slide $slide */
55
        $slide = $this->objFromFixture(Slide::class, 'base_slide');
56
        /** @var Member $canCreate */
57
        $canEdit = $this->objFromFixture(Member::class, 'slide_author');
58
        /** @var Member $canAdminister */
59
        $canAdminister = $this->objFromFixture(Member::class, 'slide_admin');
60
        /** @var Member $noPermission */
61
        $noPermission = $this->objFromFixture(Member::class, 'slide_no_permission');
62
63
        $this->logInAs($canEdit);
64
65
        $this->assertTrue($slide->canEdit());
66
67
        $this->logOut();
68
        $this->logInAs($canAdminister);
69
70
        $this->assertTrue($slide->canEdit());
71
72
        $this->logOut();
73
        $this->logInAs($noPermission);
74
75
        $this->assertFalse($slide->canEdit());
76
        $this->logOut();
77
    }
78
79
    /**
80
     *
81
     */
82
    public function testCanDelete()
83
    {
84
        /** @var Slide $slide */
85
        $slide = $this->objFromFixture(Slide::class, 'base_slide');
86
        /** @var Member $canCreate */
87
        $noDelete = $this->objFromFixture(Member::class, 'slide_author');
88
        /** @var Member $canAdminister */
89
        $canAdminister = $this->objFromFixture(Member::class, 'slide_admin');
90
        /** @var Member $noPermission */
91
        $noPermission = $this->objFromFixture(Member::class, 'slide_no_permission');
92
93
        $this->logInAs($noDelete);
94
95
        $this->assertFalse($slide->canDelete());
96
97
        $this->logOut();
98
        $this->logInAs($canAdminister);
99
100
        $this->assertTrue($slide->canDelete());
101
102
        $this->logOut();
103
        $this->logInAs($noPermission);
104
105
        $this->assertFalse($slide->canDelete());
106
        $this->logOut();
107
    }
108
109
    public function testCanPublish()
110
    {
111
        /** @var Slide $slide */
112
        $slide = $this->objFromFixture(Slide::class, 'base_slide');
113
        /** @var Member $canCreate */
114
        $noPublish = $this->objFromFixture(Member::class, 'slide_author');
115
        /** @var Member $canAdminister */
116
        $canAdminister = $this->objFromFixture(Member::class, 'slide_admin');
117
        /** @var Member $noPermission */
118
        $noPermission = $this->objFromFixture(Member::class, 'slide_no_permission');
119
120
        $this->logInAs($noPublish);
121
122
        $this->assertFalse($slide->canPublish());
123
124
        $this->logOut();
125
        $this->logInAs($canAdminister);
126
127
        $this->assertTrue($slide->canPublish());
128
129
        $this->logOut();
130
        $this->logInAs($noPermission);
131
132
        $this->assertFalse($slide->canPublish());
133
        $this->logOut();
134
    }
135
}
136