OrderTest::testCanCreate()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 5
c 1
b 0
f 0
dl 0
loc 7
rs 10
cc 1
nc 1
nop 0
1
<?php
2
3
namespace Dynamic\FoxyStripe\Test;
4
5
use Dynamic\FoxyStripe\Model\Order;
6
use SilverStripe\Dev\SapphireTest;
7
use SilverStripe\ORM\FieldType\DBHTMLVarchar;
8
use SilverStripe\Security\Member;
9
10
class OrderTest extends SapphireTest
11
{
12
    /**
13
     * @var string
14
     */
15
    protected static $fixture_file = 'fixtures.yml';
16
17
    /**
18
     *
19
     */
20
    public function testFieldLabels()
21
    {
22
        $object = $this->objFromFixture(Order::class, 'one');
23
        $labels = $object->FieldLabels();
24
        $this->assertNotNull($labels['Order_ID']);
25
        $this->assertNotNull($labels['TransactionDate']);
26
        $this->assertNotNull($labels['TransactionDate.NiceUS']);
27
        $this->assertNotNull($labels['Member.Name']);
28
        $this->assertNotNull($labels['Member.ID']);
29
        $this->assertNotNull($labels['ProductTotal.Nice']);
30
        $this->assertNotNull($labels['TaxTotal.Nice']);
31
        $this->assertNotNull($labels['ShippingTotal.Nice']);
32
        $this->assertNotNull($labels['OrderTotal']);
33
        $this->assertNotNull($labels['OrderTotal.Nice']);
34
        $this->assertNotNull($labels['ReceiptLink']);
35
        $this->assertNotNull($labels['Details.ProductID']);
36
    }
37
38
    /**
39
     *
40
     */
41
    public function testReceiptLink()
42
    {
43
        $object = $this->objFromFixture(Order::class, 'one');
44
        $this->assertInstanceOf(DBHTMLVarchar::class, $object->ReceiptLink());
45
    }
46
47
    /**
48
     *
49
     */
50
    public function testCanView()
51
    {
52
        $object = $this->objFromFixture(Order::class, 'one');
53
        $admin = $this->objFromFixture(Member::class, 'admin');
54
        $this->assertTrue($object->canView($admin));
55
        $member = $this->objFromFixture(Member::class, 'customer');
56
        $this->assertFalse($object->canView($member));
57
    }
58
59
    /**
60
     *
61
     */
62
    public function testCanEdit()
63
    {
64
        $object = $this->objFromFixture(Order::class, 'one');
65
        $admin = $this->objFromFixture(Member::class, 'admin');
66
        $this->assertFalse($object->canEdit($admin));
67
        $member = $this->objFromFixture(Member::class, 'customer');
68
        $this->assertFalse($object->canEdit($member));
69
    }
70
71
    /**
72
     *
73
     */
74
    public function testCanDelete()
75
    {
76
        $object = $this->objFromFixture(Order::class, 'one');
77
        $admin = $this->objFromFixture(Member::class, 'admin');
78
        $this->assertFalse($object->canDelete($admin));
79
        $member = $this->objFromFixture(Member::class, 'customer');
80
        $this->assertFalse($object->canDelete($member));
81
    }
82
83
    /**
84
     *
85
     */
86
    public function testCanCreate()
87
    {
88
        $object = $this->objFromFixture(Order::class, 'one');
89
        $admin = $this->objFromFixture(Member::class, 'admin');
90
        $this->assertFalse($object->canCreate($admin));
91
        $member = $this->objFromFixture(Member::class, 'customer');
92
        $this->assertFalse($object->canCreate($member));
93
    }
94
95
    /**
96
     *
97
     */
98
    public function testProvidePermissions()
99
    {
100
        $object = $this->objFromFixture(Order::class, 'one');
101
        $expected = array(
102
            'Product_ORDERS' => 'Allow user to manage Orders and related objects',
103
        );
104
        $this->assertEquals($expected, $object->providePermissions());
105
    }
106
}
107