Failed Conditions
Push — experimental/sf ( 069d05...1f2df0 )
by chihiro
157:56 queued 150:35
created

codeception/acceptance/EA04OrderCest.php (1 issue)

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
3
use Codeception\Util\Fixtures;
4
use Eccube\Entity\Master\OrderStatus;
5
use Page\Admin\CsvSettingsPage;
6
use Page\Admin\OrderEditPage;
7
use Page\Admin\OrderManagePage;
8
9
/**
10
 * @group admin
11
 * @group admin01
12
 * @group order
13
 * @group ea4
14
 */
15
class EA04OrderCest
16
{
17
    public function _before(\AcceptanceTester $I)
18
    {
19
        // すべてのテストケース実施前にログインしておく
20
        // ログイン後は管理アプリのトップページに遷移している
21
        $I->loginAsAdmin();
22
    }
23
24
    public function _after(\AcceptanceTester $I)
25
    {
26
    }
27
28
    public function order_受注検索(\AcceptanceTester $I)
29
    {
30
        $I->wantTo('EA0401-UC01-T01(& UC01-T02, UC01-T03) 受注検索');
31
32
        $findOrders = Fixtures::get('findOrders'); // Closure
33
        $TargetOrders = array_filter($findOrders(), function ($Order) {
34
            return $Order->getOrderStatus()->getId() != OrderStatus::PROCESSING;
35
        });
36
        OrderManagePage::go($I)->検索();
37
        $I->see('検索結果:'.count($TargetOrders).'件が該当しました', OrderManagePage::$検索結果_メッセージ);
38
39
        OrderManagePage::go($I)->検索('[email protected]');
40
        $I->see('検索結果:0件が該当しました', OrderManagePage::$検索結果_メッセージ);
41
42
        OrderManagePage::go($I)->詳細検索_電話番号('あああ');
43
        $I->see('検索条件に誤りがあります。', OrderManagePage::$検索結果_エラーメッセージ);
44
    }
45
46 View Code Duplication
    public function order_受注CSVダウンロード(\AcceptanceTester $I)
47
    {
48
        $I->wantTo('EA0401-UC02-T01 受注CSVダウンロード');
49
50
        $findOrders = Fixtures::get('findOrders'); // Closure
51
        $TargetOrders = array_filter($findOrders(), function ($Order) {
52
            return $Order->getOrderStatus()->getId() != OrderStatus::PROCESSING;
53
        });
54
        $OrderListPage = OrderManagePage::go($I)->検索();
55
        $I->see('検索結果:'.count($TargetOrders).'件が該当しました', OrderManagePage::$検索結果_メッセージ);
56
57
        $OrderListPage->受注CSVダウンロード実行();
58
        // make sure wait to download file completely
59
        $I->wait(10);
60
        $OrderCSV = $I->getLastDownloadFile('/^order_\d{14}\.csv$/');
61
        $I->assertGreaterOrEquals(count($TargetOrders), count(file($OrderCSV)), '検索結果以上の行数があるはず');
62
    }
63
64 View Code Duplication
    public function order_受注情報のCSV出力項目変更設定(\AcceptanceTester $I)
65
    {
66
        $I->wantTo('EA0401-UC02-T02 受注情報のCSV出力項目変更設定');
67
68
        $findOrders = Fixtures::get('findOrders'); // Closure
69
        $TargetOrders = array_filter($findOrders(), function ($Order) {
70
            return $Order->getOrderStatus()->getId() != OrderStatus::PROCESSING;
71
        });
72
        $OrderListPage = OrderManagePage::go($I)->検索();
73
        $I->see('検索結果:'.count($TargetOrders).'件が該当しました', OrderManagePage::$検索結果_メッセージ);
74
75
        /* 項目設定 */
76
        $OrderListPage->受注CSV出力項目設定();
77
78
        CsvSettingsPage::at($I);
79
        $value = $I->grabValueFrom(CsvSettingsPage::$CSVタイプ);
80
        $I->assertEquals(3, $value);
81
    }
82
83 View Code Duplication
    public function order_配送CSVダウンロード(\AcceptanceTester $I)
84
    {
85
        $I->wantTo('EA0401-UC02-T01 配送CSVダウンロード');
86
87
        $findOrders = Fixtures::get('findOrders'); // Closure
88
        $TargetOrders = array_filter($findOrders(), function ($Order) {
89
            return $Order->getOrderStatus()->getId() != OrderStatus::PROCESSING;
90
        });
91
        $OrderListPage = OrderManagePage::go($I)->検索();
92
        $I->see('検索結果:'.count($TargetOrders).'件が該当しました', OrderManagePage::$検索結果_メッセージ);
93
94
        $OrderListPage->配送CSVダウンロード実行();
95
        // make sure wait to download file completely
96
        $I->wait(10);
97
        $OrderCSV = $I->getLastDownloadFile('/^shipping_\d{14}\.csv$/');
98
        $I->assertGreaterOrEquals(count($TargetOrders), count(file($OrderCSV)), '検索結果以上の行数があるはず');
99
    }
100
101 View Code Duplication
    public function order_配送情報のCSV出力項目変更設定(\AcceptanceTester $I)
102
    {
103
        $I->wantTo('EA0401-UC02-T02 配送情報のCSV出力項目変更設定');
104
105
        $findOrders = Fixtures::get('findOrders'); // Closure
106
        $TargetOrders = array_filter($findOrders(), function ($Order) {
107
            return $Order->getOrderStatus()->getId() != OrderStatus::PROCESSING;
108
        });
109
        $OrderListPage = OrderManagePage::go($I)->検索();
110
        $I->see('検索結果:'.count($TargetOrders).'件が該当しました', OrderManagePage::$検索結果_メッセージ);
111
112
        /* 項目設定 */
113
        $OrderListPage->配送CSV出力項目設定();
114
115
        CsvSettingsPage::at($I);
116
        $value = $I->grabValueFrom(CsvSettingsPage::$CSVタイプ);
117
        $I->assertEquals(4, $value);
118
    }
119
120
    public function order_受注編集(\AcceptanceTester $I)
121
    {
122
        $I->wantTo('EA0401-UC05-T01(& UC05-T02/UC05-T03/UC06-T01) 受注編集');
123
124
        // 新規受付ステータスの受注を作る
125
        $createCustomer = Fixtures::get('createCustomer');
126
        $createOrders = Fixtures::get('createOrders');
127
        $newOrders = $createOrders($createCustomer(), 1, array());
128
129
        $OrderListPage = OrderManagePage::go($I)->検索($newOrders[0]->getOrderNo());
130
131
        $I->see('検索結果:1件が該当しました', OrderManagePage::$検索結果_メッセージ);
132
133
        /* 編集 */
134
        $OrderListPage->一覧_編集(1);
135
136
        $OrderRegisterPage = OrderEditPage::at($I)
137
            ->注文者パネルを開く()
138
            ->入力_姓('')
139
            ->受注情報登録();
140
141
        $OrderRegisterPage->注文者パネルを開く();
142
        /* 異常系 */
143
        $I->see('入力されていません。', OrderEditPage::$姓_エラーメッセージ);
144
145
        /* 正常系 */
146
        $OrderRegisterPage
147
            ->入力_姓('aaa')
148
            ->入力_セイ('アアア')
149
            ->入力_メイ('アアア')
150
            ->入力_郵便番号('060-0000')
151
            ->入力_都道府県(['1' => '北海道'])
152
            ->入力_市区町村名('bbb')
153
            ->入力_番地_ビル名('bbb')
154
            ->入力_電話番号('111-111-111')
155
            ->入力_番地_ビル名('address 2')
156
            ->入力_支払方法(['4' => '郵便振替'])
157
            ->受注情報登録();
158
159
        $I->see('受注情報を保存しました。', OrderEditPage::$登録完了メッセージ);
160
161
        /* ステータス変更 */
162
        $OrderRegisterPage
163
            ->入力_受注ステータス(['2' => '入金待ち'])
164
            ->受注情報登録();
165
166
        $I->see('受注情報を保存しました。', OrderEditPage::$登録完了メッセージ);
167
168
        /* 明細の削除 */
169
        $itemName = $OrderRegisterPage->明細の項目名を取得(1);
170
        $OrderRegisterPage->明細を削除(1)
171
            ->acceptDeleteModal(1);
172
        $I->wait(2);
173
174
        // before submit
175
        $I->dontSee($itemName, "#table-form-field");
176
177
        // after submit
178
        $OrderRegisterPage->受注情報登録();
179
        $I->dontSee($itemName, "#table-form-field");
180
181
        $I->see('受注情報を保存しました。', OrderEditPage::$登録完了メッセージ);
182
    }
183
184
    public function order_受注削除(\AcceptanceTester $I)
185
    {
186
        $I->wantTo('EA0401-UC08-T01(& UC08-T02) 受注削除');
187
188
        $findOrders = Fixtures::get('findOrders'); // Closure
189
        $TargetOrders = array_filter($findOrders(), function ($Order) {
190
            return $Order->getOrderStatus()->getId() != OrderStatus::PROCESSING;
191
        });
192
193
        $OrderListPage = OrderManagePage::go($I)->検索();
194
        $I->see('検索結果:'.count($TargetOrders).'件が該当しました', OrderManagePage::$検索結果_メッセージ);
195
196
        // 削除
197
        $OrderNumForDel = $OrderListPage->一覧_注文番号(1);
198
        $OrderListPage
199
          ->一覧_選択(1)
200
          ->一覧_削除()
201
          ->Accept_削除();
202
203
        $I->see('受注情報を削除しました', ['css' => '#page_admin_order > div > div.c-contentsArea > div.alert.alert-success.alert-dismissible.fade.show.m-3 > span']);
204
        $I->assertNotEquals($OrderNumForDel, $OrderListPage->一覧_注文番号(1));
205
206
        // 削除キャンセル
207
        $OrderNumForDontDel = $OrderListPage->一覧_注文番号(1);
208
        $OrderListPage
209
          ->一覧_選択(1)
210
          ->一覧_削除()
211
          ->Cancel_削除();
212
213
        $I->assertEquals($OrderNumForDontDel, $OrderListPage->一覧_注文番号(1));
214
    }
215
216
    public function order_受注メール通知(\AcceptanceTester $I)
217
    {
218
        $I->wantTo('EA0402-UC01-T01 受注メール通知');
219
220
        $I->resetEmails();
221
222
        OrderManagePage::go($I)
223
            ->一覧_メール通知(1);
224
225
        $I->seeEmailCount(2);
226
227
        $I->seeInLastEmailSubjectTo('[email protected]', '[EC-CUBE SHOP] 商品出荷のお知らせ');
228
    }
229
230
    public function order_一括メール通知(\AcceptanceTester $I)
231
    {
232
        $I->wantTo('EA0402-UC02-T01(& UC02-T02) 一括メール通知');
233
234
        $I->resetEmails();
235
236
        OrderManagePage::go($I)
237
            ->一覧_全選択()
238
            ->一括メール送信();
239
240
        $I->seeEmailCount(20);
241
    }
242
243
    public function order_受注登録(\AcceptanceTester $I)
244
    {
245
        $I->wantTo('EA0405-UC01-T01(& UC01-T02) 受注登録');
246
247
        $OrderRegisterPage = OrderEditPage::go($I)->受注情報登録();
248
249
        /* 異常系 */
250
        $I->dontSee('受注情報を保存しました。', OrderEditPage::$登録完了メッセージ);
251
252
        /* 正常系 */
253
        $OrderRegisterPage
254
            ->入力_受注ステータス(['1' => '新規受付'])
255
            ->入力_支払方法(['4' => '郵便振替'])
256
            ->入力_姓('order1')
257
            ->入力_名('order1')
258
            ->入力_セイ('アアア')
259
            ->入力_メイ('アアア')
260
            ->入力_郵便番号('060-0000')
261
            ->入力_都道府県(['1' => '北海道'])
262
            ->入力_市区町村名('bbb')
263
            ->入力_番地_ビル名('bbb')
264
            ->入力_Eメール('[email protected]')
265
            ->入力_電話番号('111-111-111')
266
            ->注文者情報をコピー()
267
            ->入力_配送業者([1 => 'サンプル業者'])
268
            ->商品検索('パーコレーター')
269
            ->商品検索結果_選択(1)
270
            ->受注情報登録();
271
272
        $I->see('受注情報を保存しました。', OrderEditPage::$登録完了メッセージ);
273
    }
274
275
    public function order_ー括受注のステータス変更(\AcceptanceTester $I)
276
    {
277
        $I->wantTo('EA0405-UC06-T01_ー括受注のステータス変更');
278
279
        // 新規受付ステータスをキャンセルに変更する
280
        $entityManager = Fixtures::get('entityManager');
281
        $findOrders = Fixtures::get('findOrders');
282
        $NewOrders = array_filter($findOrders(), function ($Order) {
283
            return $Order->getOrderStatus()->getId() == OrderStatus::NEW;
284
        });
285
        $CancelStatus = $entityManager->getRepository('Eccube\Entity\Master\OrderStatus')->find(OrderStatus::CANCEL);
286
        foreach ($NewOrders as $newOrder) {
287
            $newOrder->setOrderStatus($CancelStatus);
288
        }
289
        $entityManager->flush();
290
291
        // 新規受付ステータスの受注を作る
292
        $createCustomer = Fixtures::get('createCustomer');
293
        $createOrders = Fixtures::get('createOrders');
294
        $newOrders = $createOrders($createCustomer(), 2, array());
295
        $Status = $entityManager->getRepository('Eccube\Entity\Master\OrderStatus')->find(OrderStatus::NEW);
296
        foreach ($newOrders as $newOrder) {
297
            $newOrder->setOrderStatus($Status);
298
        }
299
        $entityManager->flush();
300
301
        $NewOrders = array_filter($findOrders(), function ($Order) {
302
            return $Order->getOrderStatus()->getId() == OrderStatus::NEW;
303
        });
304
        OrderManagePage::go($I)->受注ステータス検索(OrderStatus::NEW);
305
        $I->see('検索結果:'.count($NewOrders).'件が該当しました', OrderManagePage::$検索結果_メッセージ);
306
307
        $DeliveredOrders = array_filter($findOrders(), function ($Order) {
308
            return $Order->getOrderStatus()->getId() == OrderStatus::DELIVERED;
309
        });
310
        OrderManagePage::go($I)->受注ステータス検索(OrderStatus::DELIVERED);
311
        $I->see('検索結果:'.count($DeliveredOrders).'件が該当しました', OrderManagePage::$検索結果_メッセージ);
312
313
        OrderManagePage::go($I)->受注ステータス検索(OrderStatus::NEW)
314
            ->一覧_全選択()
315
            ->受注ステータス変更('発送済み');
316
317
        OrderManagePage::go($I)->受注ステータス検索(OrderStatus::DELIVERED);
318
        $I->see('検索結果:'.(count($DeliveredOrders) + count($NewOrders)).'件が該当しました', OrderManagePage::$検索結果_メッセージ);
319
    }
320
321
    public function order_個別出荷済みステータス変更(\AcceptanceTester $I)
0 ignored issues
show
Method name "EA04OrderCest::order_個別出荷済みステータス変更" is not in camel caps format
Loading history...
322
    {
323
        $I->wantTo('EA0405-UC06-T02_個別出荷済みステータス変更');
324
325
        $I->resetEmails();
326
327
        // 新規受付ステータスをキャンセルに変更する
328
        $entityManager = Fixtures::get('entityManager');
329
        $findOrders = Fixtures::get('findOrders');
330
        $NewOrders = array_filter($findOrders(), function ($Order) {
331
            return $Order->getOrderStatus()->getId() == OrderStatus::NEW;
332
        });
333
        $CancelStatus = $entityManager->getRepository('Eccube\Entity\Master\OrderStatus')->find(OrderStatus::CANCEL);
334
        foreach ($NewOrders as $newOrder) {
335
            $newOrder->setOrderStatus($CancelStatus);
336
        }
337
        $entityManager->flush();
338
339
        // 新規受付ステータスの受注を作る
340
        $createCustomer = Fixtures::get('createCustomer');
341
        $createOrders = Fixtures::get('createOrders');
342
        $newOrders = $createOrders($createCustomer(), 2, array());
343
        $Status = $entityManager->getRepository('Eccube\Entity\Master\OrderStatus')->find(OrderStatus::NEW);
344
        foreach ($newOrders as $newOrder) {
345
            $newOrder->setOrderStatus($Status);
346
        }
347
        $entityManager->flush();
348
349
        $DeliveredOrders = array_filter($findOrders(), function ($Order) {
350
            return $Order->getOrderStatus()->getId() == OrderStatus::DELIVERED;
351
        });
352
        OrderManagePage::go($I)->受注ステータス検索(OrderStatus::DELIVERED);
353
        $I->see('検索結果:'.count($DeliveredOrders).'件が該当しました', OrderManagePage::$検索結果_メッセージ);
354
355
        $NewOrders = array_filter($findOrders(), function ($Order) {
356
            return $Order->getOrderStatus()->getId() == OrderStatus::NEW;
357
        });
358
        OrderManagePage::go($I)->受注ステータス検索(OrderStatus::NEW);
359
        $I->see('検索結果:'.count($NewOrders).'件が該当しました', OrderManagePage::$検索結果_メッセージ);
360
361
        OrderManagePage::go($I)->受注ステータス検索(OrderStatus::NEW)
362
            ->出荷済にする(1);
363
364
        $I->seeEmailCount(2);
365
        $I->seeInLastEmailSubjectTo('[email protected]', '[EC-CUBE SHOP] 商品出荷のお知らせ');
366
367
        OrderManagePage::go($I)->受注ステータス検索(OrderStatus::NEW);
368
        $I->see('検索結果:1件が該当しました', OrderManagePage::$検索結果_メッセージ);
369
    }
370
}
371
372
373
374
375
376
377
378
379