Passed
Pull Request — master (#44)
by Jason
03:29
created

ProductOptionTest::testCanEdit()   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\Model\OptionType;
6
use Dynamic\Foxy\Model\ProductOption;
7
use SilverStripe\Core\Injector\Injector;
8
use SilverStripe\Dev\SapphireTest;
9
use SilverStripe\Forms\FieldList;
10
use SilverStripe\Security\Member;
11
12
class ProductOptionTest extends SapphireTest
13
{
14
    /**
15
     * @var string
16
     */
17
    protected static $fixture_file = '../fixtures.yml';
18
19
    /**
20
     *
21
     */
22
    public function testGetCMSFields()
23
    {
24
        $object = $this->objFromFixture(ProductOption::class, 'small');
25
        $fields = $object->getCMSFields();
26
        $this->assertInstanceOf(FieldList::class, $fields);
27
    }
28
29
    /**
30
     *
31
     */
32
    public function testCanCreate()
33
    {
34
        /** @var ProductOption $object */
35
        $object = singleton(ProductOption::class);
36
        /** @var \SilverStripe\Security\Member $admin */
37
        $admin = $this->objFromFixture(Member::class, 'admin');
38
        /** @var \SilverStripe\Security\Member $siteOwner */
39
        $siteOwner = $this->objFromFixture(Member::class, 'site-owner');
40
        /** @var \SilverStripe\Security\Member $default */
41
        $default = $this->objFromFixture(Member::class, 'default');
42
43
        $this->assertFalse($object->canCreate($default));
44
        $this->assertTrue($object->canCreate($admin));
45
        $this->assertTrue($object->canCreate($siteOwner));
46
    }
47
48
    /**
49
     *
50
     */
51
    public function testCanEdit()
52
    {
53
        /** @var ProductOption $object */
54
        $object = singleton(ProductOption::class);
55
        /** @var \SilverStripe\Security\Member $admin */
56
        $admin = $this->objFromFixture(Member::class, 'admin');
57
        /** @var \SilverStripe\Security\Member $siteOwner */
58
        $siteOwner = $this->objFromFixture(Member::class, 'site-owner');
59
        /** @var \SilverStripe\Security\Member $default */
60
        $default = $this->objFromFixture(Member::class, 'default');
61
62
        $this->assertFalse($object->canEdit($default));
63
        $this->assertTrue($object->canEdit($admin));
64
        $this->assertTrue($object->canEdit($siteOwner));
65
    }
66
67
    /**
68
     *
69
     */
70
    public function testCanDelete()
71
    {
72
        /** @var ProductOption $object */
73
        $object = singleton(ProductOption::class);
74
        /** @var \SilverStripe\Security\Member $admin */
75
        $admin = $this->objFromFixture(Member::class, 'admin');
76
        /** @var \SilverStripe\Security\Member $siteOwner */
77
        $siteOwner = $this->objFromFixture(Member::class, 'site-owner');
78
        /** @var \SilverStripe\Security\Member $default */
79
        $default = $this->objFromFixture(Member::class, 'default');
80
81
        $this->assertFalse($object->canDelete($default));
82
        $this->assertTrue($object->canDelete($admin));
83
        $this->assertTrue($object->canDelete($siteOwner));
84
    }
85
}
86