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

OptionTypeTest::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\FoxyCategory;
6
use Dynamic\Foxy\Model\OptionType;
7
use SilverStripe\Core\Injector\Injector;
8
use SilverStripe\Dev\SapphireTest;
9
use SilverStripe\Forms\FieldList;
10
use SilverStripe\Security\Member;
11
12
class OptionTypeTest 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 = Injector::inst()->create(OptionType::class);
25
        $fields = $object->getCMSFields();
26
        $this->assertInstanceOf(FieldList::class, $fields);
27
28
        $object->write();
29
        $fields = $object->getCMSFields();
30
        $this->assertInstanceOf(FieldList::class, $fields);
31
    }
32
33
    /**
34
     *
35
     */
36
    public function testCanCreate()
37
    {
38
        /** @var OptionType $object */
39
        $object = singleton(OptionType::class);
40
        /** @var \SilverStripe\Security\Member $admin */
41
        $admin = $this->objFromFixture(Member::class, 'admin');
42
        /** @var \SilverStripe\Security\Member $siteOwner */
43
        $siteOwner = $this->objFromFixture(Member::class, 'site-owner');
44
        /** @var \SilverStripe\Security\Member $default */
45
        $default = $this->objFromFixture(Member::class, 'default');
46
47
        $this->assertFalse($object->canCreate($default));
48
        $this->assertTrue($object->canCreate($admin));
49
        $this->assertTrue($object->canCreate($siteOwner));
50
    }
51
52
    /**
53
     *
54
     */
55
    public function testCanEdit()
56
    {
57
        /** @var OptionType $object */
58
        $object = singleton(OptionType::class);
59
        /** @var \SilverStripe\Security\Member $admin */
60
        $admin = $this->objFromFixture(Member::class, 'admin');
61
        /** @var \SilverStripe\Security\Member $siteOwner */
62
        $siteOwner = $this->objFromFixture(Member::class, 'site-owner');
63
        /** @var \SilverStripe\Security\Member $default */
64
        $default = $this->objFromFixture(Member::class, 'default');
65
66
        $this->assertFalse($object->canEdit($default));
67
        $this->assertTrue($object->canEdit($admin));
68
        $this->assertTrue($object->canEdit($siteOwner));
69
    }
70
71
    /**
72
     *
73
     */
74
    public function testCanDelete()
75
    {
76
        /** @var OptionType $object */
77
        $object = singleton(OptionType::class);
78
        /** @var \SilverStripe\Security\Member $admin */
79
        $admin = $this->objFromFixture(Member::class, 'admin');
80
        /** @var \SilverStripe\Security\Member $siteOwner */
81
        $siteOwner = $this->objFromFixture(Member::class, 'site-owner');
82
        /** @var \SilverStripe\Security\Member $default */
83
        $default = $this->objFromFixture(Member::class, 'default');
84
85
        $this->assertFalse($object->canDelete($default));
86
        $this->assertTrue($object->canDelete($admin));
87
        $this->assertTrue($object->canDelete($siteOwner));
88
    }
89
}
90