Passed
Pull Request — master (#809)
by Denys
25:06 queued 18:23
created

SspAssetsBackendJsonApiFixtures   A

Complexity

Total Complexity 13

Size/Duplication

Total Lines 125
Duplicated Lines 0 %

Importance

Changes 1
Bugs 1 Features 1
Metric Value
wmc 13
eloc 52
c 1
b 1
f 1
dl 0
loc 125
rs 10

13 Methods

Rating   Name   Duplication   Size   Complexity  
A createAssets() 0 10 1
A getCompanyTransfer() 0 3 1
A createCompany() 0 6 1
A getAssetTransfer() 0 3 1
A getCustomerTransfer() 0 3 1
A createCompanyUser() 0 6 1
A getCompanyUserTransfer() 0 3 1
A createCompanyBusinessUnit() 0 7 1
A createUsers() 0 7 1
A getCompanyBusinessUnitTransfer() 0 3 1
A getUserTransfer() 0 3 1
A createCustomer() 0 9 1
A buildFixtures() 0 10 1
1
<?php
2
3
/**
4
 * This file is part of the Spryker Commerce OS.
5
 * For full license information, please view the LICENSE file that was distributed with this source code.
6
 */
7
8
declare(strict_types = 1);
9
10
namespace PyzTest\Glue\SelfServicePortalBackend\JsonApi\Fixtures;
11
12
use Generated\Shared\Transfer\CompanyBusinessUnitTransfer;
13
use Generated\Shared\Transfer\CompanyTransfer;
14
use Generated\Shared\Transfer\CompanyUserTransfer;
15
use Generated\Shared\Transfer\CustomerTransfer;
16
use Generated\Shared\Transfer\SspAssetBusinessUnitAssignmentTransfer;
17
use Generated\Shared\Transfer\SspAssetTransfer;
18
use Generated\Shared\Transfer\UserTransfer;
19
use PyzTest\Glue\SelfServicePortalBackend\SelfServicePortalBackendApiTester;
20
use SprykerTest\Shared\Testify\Fixtures\FixturesBuilderInterface;
21
use SprykerTest\Shared\Testify\Fixtures\FixturesContainerInterface;
22
23
class SspAssetsBackendJsonApiFixtures implements FixturesBuilderInterface, FixturesContainerInterface
24
{
25
    protected const TEST_USERNAME = 'SspAssetsBackendApiFixtures';
26
27
    protected const TEST_USER_PASSWORD = 'change123';
28
29
    protected const TEST_COMPANY_NAME = 'Test Company';
30
31
    protected const TEST_PASSWORD = 'change123';
32
33
    protected const TEST_ASSET_URL = 'https://example.com/asset.pdf';
34
35
    protected CustomerTransfer $customerTransfer;
36
37
    protected CompanyTransfer $companyTransfer;
38
39
    protected CompanyUserTransfer $companyUserTransfer;
40
41
    protected SspAssetTransfer $assetTransfer;
42
43
    protected CompanyBusinessUnitTransfer $companyBusinessUnitTransfer;
44
45
    protected UserTransfer $userTransfer;
46
47
    public function buildFixtures(SelfServicePortalBackendApiTester $I): FixturesContainerInterface
48
    {
49
        $this->createCompany($I);
50
        $this->createCustomer($I);
51
        $this->createCompanyBusinessUnit($I);
52
        $this->createCompanyUser($I);
53
        $this->createAssets($I);
54
        $this->createUsers($I);
55
56
        return $this;
57
    }
58
59
    public function getCustomerTransfer(): CustomerTransfer
60
    {
61
        return $this->customerTransfer;
62
    }
63
64
    public function getCompanyTransfer(): CompanyTransfer
65
    {
66
        return $this->companyTransfer;
67
    }
68
69
    public function getCompanyUserTransfer(): CompanyUserTransfer
70
    {
71
        return $this->companyUserTransfer;
72
    }
73
74
    public function getAssetTransfer(): SspAssetTransfer
75
    {
76
        return $this->assetTransfer;
77
    }
78
79
    public function getUserTransfer(): UserTransfer
80
    {
81
        return $this->userTransfer;
82
    }
83
84
    public function getCompanyBusinessUnitTransfer(): CompanyBusinessUnitTransfer
85
    {
86
        return $this->companyBusinessUnitTransfer;
87
    }
88
89
    protected function createCompany(SelfServicePortalBackendApiTester $I): void
90
    {
91
        $this->companyTransfer = $I->haveCompany([
92
            CompanyTransfer::NAME => static::TEST_COMPANY_NAME,
93
            CompanyTransfer::STATUS => 'approved',
94
            CompanyTransfer::IS_ACTIVE => true,
95
        ]);
96
    }
97
98
    protected function createCustomer(SelfServicePortalBackendApiTester $I): void
99
    {
100
        $customerTransfer = $I->haveCustomer([
101
            CustomerTransfer::USERNAME => static::TEST_USERNAME,
102
            CustomerTransfer::PASSWORD => static::TEST_PASSWORD,
103
            CustomerTransfer::NEW_PASSWORD => static::TEST_PASSWORD,
104
        ]);
105
106
        $this->customerTransfer = $I->confirmCustomer($customerTransfer);
107
    }
108
109
    protected function createCompanyUser(SelfServicePortalBackendApiTester $I): void
110
    {
111
        $this->companyUserTransfer = $I->haveCompanyUser([
112
            CompanyUserTransfer::CUSTOMER => $this->customerTransfer,
113
            CompanyUserTransfer::FK_COMPANY => $this->companyTransfer->getIdCompany(),
114
            CompanyUserTransfer::FK_COMPANY_BUSINESS_UNIT => $this->companyBusinessUnitTransfer->getIdCompanyBusinessUnit(),
115
        ]);
116
    }
117
118
    protected function createCompanyBusinessUnit(SelfServicePortalBackendApiTester $I): void
119
    {
120
        $this->companyBusinessUnitTransfer = $I->haveCompanyBusinessUnit([
121
            CompanyBusinessUnitTransfer::FK_COMPANY => $this->companyTransfer->getIdCompany(),
122
        ]);
123
124
        $I->haveCompanyUnitAddressToCompanyBusinessUnitRelation($this->companyBusinessUnitTransfer);
125
    }
126
127
    protected function createAssets(SelfServicePortalBackendApiTester $I): void
128
    {
129
        $this->assetTransfer = $I->haveAsset([
130
            SspAssetTransfer::REFERENCE => 'ASSET-bapi_test_asset',
131
            SspAssetTransfer::EXTERNAL_IMAGE_URL => static::TEST_ASSET_URL,
132
            SspAssetTransfer::COMPANY_BUSINESS_UNIT => $this->companyBusinessUnitTransfer,
133
            SspAssetTransfer::SERIAL_NUMBER => 'bapi_test_asset',
134
            SspAssetTransfer::NOTE => 'This is a test asset. Note field.',
135
            SspAssetTransfer::BUSINESS_UNIT_ASSIGNMENTS => [
136
                [SspAssetBusinessUnitAssignmentTransfer::COMPANY_BUSINESS_UNIT => $this->companyBusinessUnitTransfer],
137
            ],
138
        ]);
139
    }
140
141
    protected function createUsers(SelfServicePortalBackendApiTester $I): void
142
    {
143
        $this->userTransfer = $I->haveUser([
144
            UserTransfer::PASSWORD => static::TEST_USER_PASSWORD,
145
        ]);
146
147
        $this->userTransfer->setPassword(static::TEST_USER_PASSWORD);
148
    }
149
}
150