Passed
Pull Request — master (#49)
by Nic
02:39
created

DiscountPermissionTest::setUp()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 9
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 4
c 1
b 0
f 0
dl 0
loc 9
rs 10
cc 2
nc 2
nop 0
1
<?php
2
3
namespace Dynamic\Foxy\Discounts\Test\Model;
4
5
use Dynamic\Foxy\API\Client\APIClient;
0 ignored issues
show
Bug introduced by
The type Dynamic\Foxy\API\Client\APIClient was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
6
use Dynamic\Foxy\Discounts\Model\Discount;
7
use Dynamic\Foxy\Discounts\Tests\TestOnly\Extension\TestDiscountExtension;
8
use Dynamic\Foxy\SingleSignOn\Client\CustomerClient;
0 ignored issues
show
Bug introduced by
The type Dynamic\Foxy\SingleSignOn\Client\CustomerClient was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
9
use SilverStripe\Dev\SapphireTest;
10
use SilverStripe\Forms\FieldList;
11
use SilverStripe\Security\Member;
12
13
/**
14
 * Class DiscountPermissionTest
15
 * @package Dynamic\Foxy\Discounts\Test\Model
16
 */
17
class DiscountPermissionTest extends SapphireTest
18
{
19
    /**
20
     * @var string
21
     */
22
    protected static $fixture_file = [
23
        '../accounts.yml',
24
        '../discounts.yml',
25
    ];
26
27
    /**
28
     *
29
     */
30
    protected function setUp()
31
    {
32
        APIClient::config()->set('enable_api', false);
33
34
        if (class_exists(CustomerClient::class)) {
35
            CustomerClient::config()->get('foxy_sso_enabled');
36
        }
37
38
        parent::setUp();
39
    }
40
41
    /**
42
     *
43
     */
44
    public function testGetCMSFields()
45
    {
46
        $object = $this->objFromFixture(Discount::class, 'simplediscountpercentage');
47
        $fields = $object->getCMSFields();
48
        $this->assertInstanceOf(FieldList::class, $fields);
49
    }
50
51
    /**
52
     *
53
     */
54
    public function testCanView()
55
    {
56
        /** @var Discount $object */
57
        $object = $this->objFromFixture(Discount::class, 'simplediscountpercentage');
58
59
        /** @var Member $admin */
60
        $admin = $this->objFromFixture(Member::class, 'admin');
61
        $this->assertTrue($object->canView($admin));
62
63
        /** @var Member $siteowner */
64
        $siteowner = $this->objFromFixture(Member::class, 'site-owner');
65
        $this->assertTrue($object->canView($siteowner));
66
67
        /** @var Member $member */
68
        $member = $this->objFromFixture(Member::class, 'default');
69
        $this->assertFalse($object->canView($member));
70
    }
71
72
    /**
73
     *
74
     */
75
    public function testCanEdit()
76
    {
77
        /** @var Discount $object */
78
        $object = $this->objFromFixture(Discount::class, 'simplediscountpercentage');
79
80
        /** @var Member $admin */
81
        $admin = $this->objFromFixture(Member::class, 'admin');
82
        $this->assertTrue($object->canEdit($admin));
83
84
        /** @var Member $siteowner */
85
        $siteowner = $this->objFromFixture(Member::class, 'site-owner');
86
        $this->assertTrue($object->canEdit($siteowner));
87
88
        /** @var Member $member */
89
        $member = $this->objFromFixture(Member::class, 'default');
90
        $this->assertFalse($object->canEdit($member));
91
    }
92
93
    /**
94
     *
95
     */
96
    public function testCanDelete()
97
    {
98
        /** @var Discount $object */
99
        $object = $this->objFromFixture(Discount::class, 'simplediscountpercentage');
100
101
        /** @var Member $admin */
102
        $admin = $this->objFromFixture(Member::class, 'admin');
103
        $this->assertTrue($object->canDelete($admin));
104
105
        /** @var Member $siteowner */
106
        $siteowner = $this->objFromFixture(Member::class, 'site-owner');
107
        $this->assertTrue($object->canDelete($siteowner));
108
109
        /** @var Member $member */
110
        $member = $this->objFromFixture(Member::class, 'default');
111
        $this->assertFalse($object->canDelete($member));
112
    }
113
114
    /**
115
     *
116
     */
117
    public function testCanCreate()
118
    {
119
        /** @var Discount $object */
120
        $object = $this->objFromFixture(Discount::class, 'simplediscountpercentage');
121
122
        /** @var Member $admin */
123
        $admin = $this->objFromFixture(Member::class, 'admin');
124
        $this->assertTrue($object->canCreate($admin));
125
126
        /** @var Member $siteowner */
127
        $siteowner = $this->objFromFixture(Member::class, 'site-owner');
128
        $this->assertTrue($object->canCreate($siteowner));
129
130
        /** @var Member $member */
131
        $member = $this->objFromFixture(Member::class, 'default');
132
        $this->assertFalse($object->canCreate($member));
133
    }
134
}
135