Passed
Push — master ( dbb25a...e5f64f )
by Jason
03:00
created

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