createPickingLists()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 43
Code Lines 28

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 28
dl 0
loc 43
rs 9.472
c 0
b 0
f 0
cc 1
nc 1
nop 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\PickingListsBackend\JsonApi\Fixtures;
11
12
use Generated\Shared\Transfer\PickingListTransfer;
0 ignored issues
show
Bug introduced by
The type Generated\Shared\Transfer\PickingListTransfer 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...
13
use Generated\Shared\Transfer\StockTransfer;
0 ignored issues
show
Bug introduced by
The type Generated\Shared\Transfer\StockTransfer 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...
14
use Generated\Shared\Transfer\UserTransfer;
0 ignored issues
show
Bug introduced by
The type Generated\Shared\Transfer\UserTransfer 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...
15
use Generated\Shared\Transfer\WarehouseUserAssignmentTransfer;
0 ignored issues
show
Bug introduced by
The type Generated\Shared\Transfe...eUserAssignmentTransfer 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...
16
use PyzTest\Glue\PickingListsBackend\PickingListsBackendApiTester;
17
use SprykerTest\Shared\Testify\Fixtures\FixturesBuilderInterface;
18
use SprykerTest\Shared\Testify\Fixtures\FixturesContainerInterface;
19
20
class StartPickingBackendJsonApiFixtures implements FixturesBuilderInterface, FixturesContainerInterface
21
{
22
    /**
23
     * @var string
24
     */
25
    protected const TEST_USER_PASSWORD = 'change123';
26
27
    /**
28
     * @uses \Spryker\Shared\PickingList\PickingListConfig::STATUS_READY_FOR_PICKING
29
     *
30
     * @var string
31
     */
32
    protected const STATUS_READY_FOR_PICKING = 'ready-for-picking';
33
34
    /**
35
     * @uses \Spryker\Shared\PickingList\PickingListConfig::STATUS_READY_FOR_PICKING
36
     *
37
     * @var string
38
     */
39
    protected const STATUS_PICKING_STARTED = 'picking-started';
40
41
    /**
42
     * @uses \Spryker\Shared\PickingList\PickingListConfig::STATUS_PICKING_FINISHED
43
     *
44
     * @var string
45
     */
46
    protected const STATUS_PICKING_FINISHED = 'picking-finished';
47
48
    /**
49
     * @var \Generated\Shared\Transfer\StockTransfer
50
     */
51
    protected StockTransfer $warehouseTransfer;
52
53
    /**
54
     * @var \Generated\Shared\Transfer\UserTransfer
55
     */
56
    protected UserTransfer $mainWarehouseUserTransfer;
57
58
    /**
59
     * @var \Generated\Shared\Transfer\UserTransfer
60
     */
61
    protected UserTransfer $secondaryWarehouseUserTransfer;
62
63
    /**
64
     * @var \Generated\Shared\Transfer\UserTransfer
65
     */
66
    protected UserTransfer $withInactiveAssignmentWarehouseUserTransfer;
67
68
    /**
69
     * @var \Generated\Shared\Transfer\UserTransfer
70
     */
71
    protected UserTransfer $withoutAssignmentWarehouseUserTransfer;
72
73
    /**
74
     * @var \Generated\Shared\Transfer\UserTransfer
75
     */
76
    protected UserTransfer $notWarehouseUserTransfer;
77
78
    /**
79
     * @var \Generated\Shared\Transfer\PickingListTransfer
80
     */
81
    protected PickingListTransfer $readyForPickingPickingListTransfer;
82
83
    /**
84
     * @var \Generated\Shared\Transfer\PickingListTransfer
85
     */
86
    protected PickingListTransfer $pickingStartedPickingListTransfer;
87
88
    /**
89
     * @var \Generated\Shared\Transfer\PickingListTransfer
90
     */
91
    protected PickingListTransfer $pickingFinishedPickingListTransfer;
92
93
    /**
94
     * @var \Generated\Shared\Transfer\PickingListTransfer
95
     */
96
    protected PickingListTransfer $immutableReadyForPickingPickingListTransfer;
97
98
    /**
99
     * @return \Generated\Shared\Transfer\UserTransfer
100
     */
101
    public function getMainWarehouseUserTransfer(): UserTransfer
102
    {
103
        return $this->mainWarehouseUserTransfer;
104
    }
105
106
    /**
107
     * @return \Generated\Shared\Transfer\UserTransfer
108
     */
109
    public function getSecondaryWarehouseUserTransfer(): UserTransfer
110
    {
111
        return $this->secondaryWarehouseUserTransfer;
112
    }
113
114
    /**
115
     * @return \Generated\Shared\Transfer\UserTransfer
116
     */
117
    public function getWithInactiveAssignmentWarehouseUserTransfer(): UserTransfer
118
    {
119
        return $this->withInactiveAssignmentWarehouseUserTransfer;
120
    }
121
122
    /**
123
     * @return \Generated\Shared\Transfer\UserTransfer
124
     */
125
    public function getWithoutAssignmentWarehouseUserTransfer(): UserTransfer
126
    {
127
        return $this->withoutAssignmentWarehouseUserTransfer;
128
    }
129
130
    /**
131
     * @return \Generated\Shared\Transfer\UserTransfer
132
     */
133
    public function getNotWarehouseUserTransfer(): UserTransfer
134
    {
135
        return $this->notWarehouseUserTransfer;
136
    }
137
138
    /**
139
     * @return \Generated\Shared\Transfer\PickingListTransfer
140
     */
141
    public function getReadyForPickingPickingListTransfer(): PickingListTransfer
142
    {
143
        return $this->readyForPickingPickingListTransfer;
144
    }
145
146
    /**
147
     * @return \Generated\Shared\Transfer\PickingListTransfer
148
     */
149
    public function getPickingStartedPickingListTransfer(): PickingListTransfer
150
    {
151
        return $this->pickingStartedPickingListTransfer;
152
    }
153
154
    /**
155
     * @return \Generated\Shared\Transfer\PickingListTransfer
156
     */
157
    public function getPickingFinishedPickingListTransfer(): PickingListTransfer
158
    {
159
        return $this->pickingFinishedPickingListTransfer;
160
    }
161
162
    /**
163
     * @return \Generated\Shared\Transfer\PickingListTransfer
164
     */
165
    public function getImmutableReadyForPickingPickingListTransfer(): PickingListTransfer
166
    {
167
        return $this->immutableReadyForPickingPickingListTransfer;
168
    }
169
170
    /**
171
     * @param \PyzTest\Glue\PickingListsBackend\PickingListsBackendApiTester $I
172
     *
173
     * @return \SprykerTest\Shared\Testify\Fixtures\FixturesContainerInterface
174
     */
175
    public function buildFixtures(PickingListsBackendApiTester $I): FixturesContainerInterface
176
    {
177
        $this->createWarehouse($I);
178
        $this->createUsers($I);
179
        $this->createPickingLists($I);
180
181
        return $this;
182
    }
183
184
    /**
185
     * @param \PyzTest\Glue\PickingListsBackend\PickingListsBackendApiTester $I
186
     *
187
     * @return void
188
     */
189
    protected function createWarehouse(PickingListsBackendApiTester $I): void
190
    {
191
        $this->warehouseTransfer = $I->haveStock();
192
    }
193
194
    /**
195
     * @param \PyzTest\Glue\PickingListsBackend\PickingListsBackendApiTester $I
196
     *
197
     * @return void
198
     */
199
    protected function createUsers(PickingListsBackendApiTester $I): void
200
    {
201
        $this->mainWarehouseUserTransfer = $I->haveUser([
202
            UserTransfer::PASSWORD => static::TEST_USER_PASSWORD,
203
            UserTransfer::IS_WAREHOUSE_USER => true,
204
        ]);
205
        $I->haveWarehouseUserAssignment($this->mainWarehouseUserTransfer, $this->warehouseTransfer);
206
207
        $this->secondaryWarehouseUserTransfer = $I->haveUser([
208
            UserTransfer::PASSWORD => static::TEST_USER_PASSWORD,
209
            UserTransfer::IS_WAREHOUSE_USER => true,
210
        ]);
211
        $I->haveWarehouseUserAssignment($this->secondaryWarehouseUserTransfer, $this->warehouseTransfer);
212
213
        $this->withInactiveAssignmentWarehouseUserTransfer = $I->haveUser([
214
            UserTransfer::PASSWORD => static::TEST_USER_PASSWORD,
215
            UserTransfer::IS_WAREHOUSE_USER => true,
216
        ]);
217
        $I->haveWarehouseUserAssignment($this->withInactiveAssignmentWarehouseUserTransfer, $this->warehouseTransfer, [
218
            WarehouseUserAssignmentTransfer::IS_ACTIVE => false,
219
        ]);
220
221
        $this->withoutAssignmentWarehouseUserTransfer = $I->haveUser([
222
            UserTransfer::PASSWORD => static::TEST_USER_PASSWORD,
223
            UserTransfer::IS_WAREHOUSE_USER => true,
224
        ]);
225
226
        $this->notWarehouseUserTransfer = $I->haveUser([
227
            UserTransfer::PASSWORD => static::TEST_USER_PASSWORD,
228
            UserTransfer::IS_WAREHOUSE_USER => false,
229
        ]);
230
231
        $this->mainWarehouseUserTransfer->setPassword(static::TEST_USER_PASSWORD);
232
        $this->secondaryWarehouseUserTransfer->setPassword(static::TEST_USER_PASSWORD);
233
        $this->withoutAssignmentWarehouseUserTransfer->setPassword(static::TEST_USER_PASSWORD);
234
        $this->withInactiveAssignmentWarehouseUserTransfer->setPassword(static::TEST_USER_PASSWORD);
235
        $this->notWarehouseUserTransfer->setPassword(static::TEST_USER_PASSWORD);
236
    }
237
238
    /**
239
     * @param \PyzTest\Glue\PickingListsBackend\PickingListsBackendApiTester $I
240
     *
241
     * @return void
242
     */
243
    protected function createPickingLists(PickingListsBackendApiTester $I): void
244
    {
245
        $productConcreteTransfer = $I->haveProduct();
246
247
        $orderTransfer1 = $I->createOrder($this->warehouseTransfer, [$productConcreteTransfer]);
248
        $this->readyForPickingPickingListTransfer = $I->createPickingList(
249
            $this->warehouseTransfer,
250
            $orderTransfer1->getItems(),
251
            [
252
                PickingListTransfer::STATUS => static::STATUS_READY_FOR_PICKING,
253
                PickingListTransfer::USER_UUID => $this->mainWarehouseUserTransfer->getUuidOrFail(),
254
                PickingListTransfer::USER => $this->mainWarehouseUserTransfer->toArray(),
255
            ],
256
        );
257
258
        $orderTransfer2 = $I->createOrder($this->warehouseTransfer, [$productConcreteTransfer]);
259
        $this->pickingStartedPickingListTransfer = $I->createPickingList(
260
            $this->warehouseTransfer,
261
            $orderTransfer2->getItems(),
262
            [
263
                PickingListTransfer::STATUS => static::STATUS_PICKING_STARTED,
264
                PickingListTransfer::USER_UUID => $this->mainWarehouseUserTransfer->getUuidOrFail(),
265
                PickingListTransfer::USER => $this->mainWarehouseUserTransfer->toArray(),
266
            ],
267
        );
268
269
        $orderTransfer3 = $I->createOrder($this->warehouseTransfer, [$productConcreteTransfer]);
270
        $this->pickingFinishedPickingListTransfer = $I->createPickingList(
271
            $this->warehouseTransfer,
272
            $orderTransfer3->getItems(),
273
            [
274
                PickingListTransfer::STATUS => static::STATUS_PICKING_FINISHED,
275
                PickingListTransfer::USER_UUID => $this->mainWarehouseUserTransfer->getUuidOrFail(),
276
                PickingListTransfer::USER => $this->mainWarehouseUserTransfer->toArray(),
277
            ],
278
        );
279
        $I->finishPicking($this->pickingFinishedPickingListTransfer);
280
281
        $orderTransfer4 = $I->createOrder($this->warehouseTransfer, [$productConcreteTransfer]);
282
        $this->immutableReadyForPickingPickingListTransfer = $I->createPickingList(
283
            $this->warehouseTransfer,
284
            $orderTransfer4->getItems(),
285
            [PickingListTransfer::STATUS => static::STATUS_READY_FOR_PICKING],
286
        );
287
    }
288
}
289