Passed
Pull Request — master (#58)
by Nic
02:12
created

OrderPermissionTest::testCanCreate()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 14
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 7
c 0
b 0
f 0
nc 1
nop 0
dl 0
loc 14
rs 10
1
<?php
2
3
namespace Dynamic\Foxy\Orders\Test\Model;
4
5
use Dynamic\Foxy\Orders\Model\Order;
6
use SilverStripe\Dev\SapphireTest;
7
use SilverStripe\Forms\FieldList;
8
use SilverStripe\i18n\i18n;
9
use SilverStripe\Security\Member;
10
11
/**
12
 * Class OrderPermissionTest
13
 * @package Dynamic\Foxy\Orders\Test\Model
14
 */
15
class OrderPermissionTest extends SapphireTest
16
{
17
    /**
18
     * @var string
19
     */
20
    protected static $fixture_file = '../fixtures.yml';
21
22
    /**
23
     *
24
     */
25
    public function testGetCMSFields()
26
    {
27
        $object = $this->objFromFixture(Order::class, 'one');
28
        $fields = $object->getCMSFields();
29
        $this->assertInstanceOf(FieldList::class, $fields);
30
    }
31
32
    /**
33
     *
34
     */
35
    public function testProvidePermissions()
36
    {
37
        $object = Order::singleton();
38
39
        i18n::set_locale('en');
40
        $expected = [
41
            'MANAGE_FOXY_ORDERS' => [
42
                'name' => 'Manage orders',
43
                'category' => 'Foxy',
44
                'help' => 'Manage orders and view recipts',
45
                'sort' => 400,
46
            ],
47
        ];
48
        $this->assertEquals($expected, $object->providePermissions());
49
    }
50
51
    /**
52
     *
53
     */
54
    public function testCanCreate()
55
    {
56
        /** @var Order $object */
57
        $object = singleton(Order::class);
58
        /** @var Member $admin */
59
        $admin = $this->objFromFixture(Member::class, 'admin');
60
        /** @var Member $siteOwner */
61
        $siteOwner = $this->objFromFixture(Member::class, 'site-owner');
62
        /** @var Member $default */
63
        $default = $this->objFromFixture(Member::class, 'default');
64
65
        $this->assertFalse($object->canCreate($default));
66
        $this->assertFalse($object->canCreate($admin));
67
        $this->assertFalse($object->canCreate($siteOwner));
68
    }
69
70
    /**
71
     *
72
     */
73
    public function testCanEdit()
74
    {
75
        /** @var Order $object */
76
        $object = singleton(Order::class);
77
        /** @var Member $admin */
78
        $admin = $this->objFromFixture(Member::class, 'admin');
79
        /** @var Member $siteOwner */
80
        $siteOwner = $this->objFromFixture(Member::class, 'site-owner');
81
        /** @var Member $default */
82
        $default = $this->objFromFixture(Member::class, 'default');
83
84
        $this->assertFalse($object->canEdit($default));
85
        $this->assertFalse($object->canEdit($admin));
86
        $this->assertFalse($object->canEdit($siteOwner));
87
    }
88
89
    /**
90
     *
91
     */
92
    public function testCanDelete()
93
    {
94
        /** @var Order $object */
95
        $object = singleton(Order::class);
96
        /** @var Member $admin */
97
        $admin = $this->objFromFixture(Member::class, 'admin');
98
        /** @var Member $siteOwner */
99
        $siteOwner = $this->objFromFixture(Member::class, 'site-owner');
100
        /** @var Member $default */
101
        $default = $this->objFromFixture(Member::class, 'default');
102
103
        $this->assertFalse($object->canDelete($default));
104
        $this->assertFalse($object->canDelete($admin));
105
        $this->assertFalse($object->canDelete($siteOwner));
106
    }
107
}
108