Completed
Pull Request — master (#49)
by Nic
09:03
created

DiscountPermissionTest   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 102
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 5
eloc 35
dl 0
loc 102
rs 10
c 1
b 0
f 0

5 Methods

Rating   Name   Duplication   Size   Complexity  
A testCanDelete() 0 16 1
A testCanCreate() 0 16 1
A testGetCMSFields() 0 5 1
A testCanView() 0 16 1
A testCanEdit() 0 16 1
1
<?php
2
3
namespace Dynamic\Foxy\Discounts\Test\Model;
4
5
use Dynamic\Foxy\Discounts\Model\Discount;
6
use SilverStripe\Dev\SapphireTest;
7
use SilverStripe\Forms\FieldList;
8
use SilverStripe\Security\Member;
9
10
/**
11
 * Class DiscountPermissionTest
12
 * @package Dynamic\Foxy\Discounts\Test\Model
13
 */
14
class DiscountPermissionTest extends SapphireTest
15
{
16
    /**
17
     * @var string
18
     */
19
    protected static $fixture_file = [
20
        '../accounts.yml',
21
        '../discounts.yml',
22
    ];
23
24
    /**
25
     *
26
     */
27
    public function testGetCMSFields()
28
    {
29
        $object = $this->objFromFixture(Discount::class, 'simplediscountpercentage');
30
        $fields = $object->getCMSFields();
31
        $this->assertInstanceOf(FieldList::class, $fields);
32
    }
33
34
    /**
35
     *
36
     */
37
    public function testCanView()
38
    {
39
        /** @var Discount $object */
40
        $object = $this->objFromFixture(Discount::class, 'simplediscountpercentage');
41
42
        /** @var Member $admin */
43
        $admin = $this->objFromFixture(Member::class, 'admin');
44
        $this->assertTrue($object->canView($admin));
45
46
        /** @var Member $siteowner */
47
        $siteowner = $this->objFromFixture(Member::class, 'site-owner');
48
        $this->assertTrue($object->canView($siteowner));
49
50
        /** @var Member $member */
51
        $member = $this->objFromFixture(Member::class, 'default');
52
        $this->assertFalse($object->canView($member));
53
    }
54
55
    /**
56
     *
57
     */
58
    public function testCanEdit()
59
    {
60
        /** @var Discount $object */
61
        $object = $this->objFromFixture(Discount::class, 'simplediscountpercentage');
62
63
        /** @var Member $admin */
64
        $admin = $this->objFromFixture(Member::class, 'admin');
65
        $this->assertTrue($object->canEdit($admin));
66
67
        /** @var Member $siteowner */
68
        $siteowner = $this->objFromFixture(Member::class, 'site-owner');
69
        $this->assertTrue($object->canEdit($siteowner));
70
71
        /** @var Member $member */
72
        $member = $this->objFromFixture(Member::class, 'default');
73
        $this->assertFalse($object->canEdit($member));
74
    }
75
76
    /**
77
     *
78
     */
79
    public function testCanDelete()
80
    {
81
        /** @var Discount $object */
82
        $object = $this->objFromFixture(Discount::class, 'simplediscountpercentage');
83
84
        /** @var Member $admin */
85
        $admin = $this->objFromFixture(Member::class, 'admin');
86
        $this->assertTrue($object->canDelete($admin));
87
88
        /** @var Member $siteowner */
89
        $siteowner = $this->objFromFixture(Member::class, 'site-owner');
90
        $this->assertTrue($object->canDelete($siteowner));
91
92
        /** @var Member $member */
93
        $member = $this->objFromFixture(Member::class, 'default');
94
        $this->assertFalse($object->canDelete($member));
95
    }
96
97
    /**
98
     *
99
     */
100
    public function testCanCreate()
101
    {
102
        /** @var Discount $object */
103
        $object = $this->objFromFixture(Discount::class, 'simplediscountpercentage');
104
105
        /** @var Member $admin */
106
        $admin = $this->objFromFixture(Member::class, 'admin');
107
        $this->assertTrue($object->canCreate($admin));
108
109
        /** @var Member $siteowner */
110
        $siteowner = $this->objFromFixture(Member::class, 'site-owner');
111
        $this->assertTrue($object->canCreate($siteowner));
112
113
        /** @var Member $member */
114
        $member = $this->objFromFixture(Member::class, 'default');
115
        $this->assertFalse($object->canCreate($member));
116
    }
117
}
118