Issues (42)

tests/Model/DiscountPermissionTest.php (1 issue)

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