SpecSheetTest::testGetCMSFields()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 6
nc 1
nop 0
dl 0
loc 9
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace Dynamic\ProductCatalog\Test;
4
5
use Dynamic\ProductCatalog\Docs\SpecSheet;
6
use SilverStripe\Dev\SapphireTest;
7
use SilverStripe\Forms\FieldList;
8
use SilverStripe\Security\Member;
9
10
class SpecSheetTest extends SapphireTest
11
{
12
    /**
13
     * @var string
14
     */
15
    protected static $fixture_file = 'fixtures.yml';
16
17
    public function testGetCMSFields()
18
    {
19
        $object = new SpecSheet();
20
        $fields = $object->getCMSFields();
21
        $this->assertInstanceOf(FieldList::class, $fields);
22
23
        $object = $this->objFromFixture(SpecSheet::class, 'one');
24
        $fields = $object->getCMSFields();
25
        $this->assertInstanceOf(FieldList::class, $fields);
26
    }
27
28
    public function testCanView()
29
    {
30
        $object = $this->objFromFixture(SpecSheet::class, 'one');
31
32
        $admin = $this->objFromFixture(Member::class, 'admin');
33
        $this->assertTrue($object->canView($admin));
34
35
        $member = $this->objFromFixture(Member::class, 'default');
36
        $this->assertTrue($object->canView($member));
37
    }
38
39
    public function testCanEdit()
40
    {
41
        $object = $this->objFromFixture(SpecSheet::class, 'one');
42
43
        $admin = $this->objFromFixture(Member::class, 'admin');
44
        $this->assertTrue($object->canEdit($admin));
45
46
        $member = $this->objFromFixture(Member::class, 'default');
47
        $this->assertFalse($object->canEdit($member));
48
    }
49
50
    public function testCanDelete()
51
    {
52
        $object = $this->objFromFixture(SpecSheet::class, 'one');
53
54
        $admin = $this->objFromFixture(Member::class, 'admin');
55
        $this->assertTrue($object->canDelete($admin));
56
57
        $member = $this->objFromFixture(Member::class, 'default');
58
        $this->assertFalse($object->canDelete($member));
59
    }
60
61
    public function testCanCreate()
62
    {
63
        $object = $this->objFromFixture(SpecSheet::class, 'one');
64
65
        $admin = $this->objFromFixture(Member::class, 'admin');
66
        $this->assertTrue($object->canCreate($admin));
67
68
        $member = $this->objFromFixture(Member::class, 'default');
69
        $this->assertFalse($object->canCreate($member));
70
    }
71
72
    public function testProvidePermissions()
73
    {
74
        $object = $this->objFromFixture(SpecSheet::class, 'one');
75
        $expected = array(
76
            'Spec_EDIT' => 'Edit Spec Sheets',
77
            'Spec_DELETE' => 'Delete Spec Sheets',
78
            'Spec_CREATE' => 'Create Spec Sheets',
79
        );
80
        $this->assertEquals($expected, $object->providePermissions());
81
    }
82
}
83