Failed Conditions
Push — experimental/sf ( 93516f...49de0c )
by chihiro
402:37 queued 395:24
created

codeception/acceptance/EA04OrderCest.php (2 issues)

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(), OrderStatus::NEW);
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
            // 新規受付から遷移可能なステータスをセットする.
164
            ->入力_受注ステータス(['3' => '入金済み'])
165
            ->受注情報登録();
166
167
        $I->see('受注情報を保存しました。', OrderEditPage::$登録完了メッセージ);
168
169
        /* 明細の削除 */
170
        $itemName = $OrderRegisterPage->明細の項目名を取得(1);
171
        $OrderRegisterPage->明細を削除(1)
172
            ->acceptDeleteModal(1);
173
        $I->wait(2);
174
175
        // before submit
176
        $I->dontSee($itemName, "#table-form-field");
177
178
        // after submit
179
        $OrderRegisterPage->受注情報登録();
180
        $I->dontSee($itemName, "#table-form-field");
181
182
        $I->see('受注情報を保存しました。', OrderEditPage::$登録完了メッセージ);
183
    }
184
185
    public function order_受注削除(\AcceptanceTester $I)
186
    {
187
        $I->wantTo('EA0401-UC08-T01(& UC08-T02) 受注削除');
188
189
        $findOrders = Fixtures::get('findOrders'); // Closure
190
        $TargetOrders = array_filter($findOrders(), function ($Order) {
191
            return $Order->getOrderStatus()->getId() != OrderStatus::PROCESSING;
192
        });
193
194
        $OrderListPage = OrderManagePage::go($I)->検索();
195
        $I->see('検索結果:'.count($TargetOrders).'件が該当しました', OrderManagePage::$検索結果_メッセージ);
196
197
        // 削除
198
        $OrderNumForDel = $OrderListPage->一覧_注文番号(1);
199
        $OrderListPage
200
          ->一覧_選択(1)
201
          ->一覧_削除()
202
          ->Accept_削除();
203
204
        $I->see('受注情報を削除しました', ['css' => '#page_admin_order > div > div.c-contentsArea > div.alert.alert-success.alert-dismissible.fade.show.m-3 > span']);
205
        $I->assertNotEquals($OrderNumForDel, $OrderListPage->一覧_注文番号(1));
206
207
        // 削除キャンセル
208
        $OrderNumForDontDel = $OrderListPage->一覧_注文番号(1);
209
        $OrderListPage
210
          ->一覧_選択(1)
211
          ->一覧_削除()
212
          ->Cancel_削除();
213
214
        $I->assertEquals($OrderNumForDontDel, $OrderListPage->一覧_注文番号(1));
215
    }
216
217
    public function order_受注メール通知(\AcceptanceTester $I)
218
    {
219
        $I->wantTo('EA0402-UC01-T01 受注メール通知');
220
221
        $I->resetEmails();
222
223
        OrderManagePage::go($I)
224
            ->一覧_メール通知(1);
225
226
        $I->seeEmailCount(2);
227
228
        $I->seeInLastEmailSubjectTo('[email protected]', '[EC-CUBE SHOP] 商品出荷のお知らせ');
229
    }
230
231
    public function order_一括メール通知(\AcceptanceTester $I)
232
    {
233
        $I->wantTo('EA0402-UC02-T01(& UC02-T02) 一括メール通知');
234
235
        $I->resetEmails();
236
237
        OrderManagePage::go($I)
238
            ->一覧_全選択()
239
            ->一括メール送信();
240
241
        $I->seeEmailCount(20);
242
    }
243
244
    public function order_受注登録(\AcceptanceTester $I)
245
    {
246
        $I->wantTo('EA0405-UC01-T01(& UC01-T02) 受注登録');
247
248
        $OrderRegisterPage = OrderEditPage::go($I)->受注情報登録();
249
250
        /* 異常系 */
251
        $I->dontSee('受注情報を保存しました。', OrderEditPage::$登録完了メッセージ);
252
253
        /* 正常系 */
254
        $OrderRegisterPage
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_pdfページをエクスポートする(\AcceptanceTester $I)
0 ignored issues
show
Method name "EA04OrderCest::order_pdfページをエクスポートする" is not in camel caps format
Loading history...
276
    {
277
        $I->wantTo('EA0401-UC02-T01 pdfページをエクスポートする');
278
279
        $findOrders = Fixtures::get('findOrders'); // Closure
280
        $TargetOrders = array_filter($findOrders(), function ($Order) {
281
            return $Order->getOrderStatus()->getId() != OrderStatus::PROCESSING;
282
        });
283
        $OrderListPage = OrderManagePage::go($I)->検索();
284
        $I->see('検索結果:'.count($TargetOrders).'件が該当しました', OrderManagePage::$検索結果_メッセージ);
285
286
        $OrderListPage->すべてチェック();
287
        $OrderListPage->要素をクリック('#form_bulk #bulkExportPdf');
288
289
        // 別ウィンドウ
290
        $I->switchToWindow('newwin');
291
292
        // Check redirect to form pdf information
293
        $I->see('受注管理帳票出力', OrderManagePage::$タイトル要素);
294
295
        $I->closeTab();
296
    }
297
298
    public function order_出力pdfダウンロード(\AcceptanceTester $I)
0 ignored issues
show
Method name "EA04OrderCest::order_出力pdfダウンロード" is not in camel caps format
Loading history...
299
    {
300
        $I->wantTo('EA0401-UC02-T01 出力pdfダウンロード');
301
302
        $findOrders = Fixtures::get('findOrders'); // Closure
303
        $TargetOrders = array_filter($findOrders(), function ($Order) {
304
            return $Order->getOrderStatus()->getId() != OrderStatus::PROCESSING;
305
        });
306
        $OrderListPage = OrderManagePage::go($I)->検索();
307
        $I->see('検索結果:'.count($TargetOrders).'件が該当しました', OrderManagePage::$検索結果_メッセージ);
308
309
        $OrderListPage->すべてチェック();
310
        $OrderListPage->要素をクリック('#form_bulk #bulkExportPdf');
311
312
        // 別ウィンドウ
313
        $I->switchToWindow('newwin');
314
315
        $I->see('受注管理帳票出力', OrderManagePage::$タイトル要素);
316
317
        $OrderListPage->PDFフォームを入力(['id' => 'order_pdf_note1'], 'Test note first');
318
        $OrderListPage->PDFフォームを入力(['id' => 'order_pdf_note2'], 'Test note second');
319
        $OrderListPage->PDFフォームを入力(['id' => 'order_pdf_note3'], 'Test note third');
320
        $OrderListPage->要素をクリック('#order_pdf_default');
321
        $OrderListPage->要素をクリック('#order_pdf_form .c-conversionArea .justify-content-end button.btn-ec-conversion');
322
        // make sure wait to download file completely
323
        $I->wait(5);
324
        $filename = $I->getLastDownloadFile('/^nouhinsyo\.pdf$/');
325
        $I->assertTrue(file_exists($filename));
326
327
        $I->closeTab();
328
    }
329
330
    public function order_ー括受注のステータス変更(\AcceptanceTester $I)
331
    {
332
        $I->wantTo('EA0405-UC06-T01_ー括受注のステータス変更');
333
334
        // 新規受付ステータスをキャンセルに変更する
335
        $entityManager = Fixtures::get('entityManager');
336
        $findOrders = Fixtures::get('findOrders');
337
        $NewOrders = array_filter($findOrders(), function ($Order) {
338
            return $Order->getOrderStatus()->getId() == OrderStatus::NEW;
339
        });
340
        $CancelStatus = $entityManager->getRepository('Eccube\Entity\Master\OrderStatus')->find(OrderStatus::CANCEL);
341
        foreach ($NewOrders as $newOrder) {
342
            $newOrder->setOrderStatus($CancelStatus);
343
        }
344
        $entityManager->flush();
345
346
        // 新規受付ステータスの受注を作る
347
        $createCustomer = Fixtures::get('createCustomer');
348
        $createOrders = Fixtures::get('createOrders');
349
        $newOrders = $createOrders($createCustomer(), 2, array());
350
        $Status = $entityManager->getRepository('Eccube\Entity\Master\OrderStatus')->find(OrderStatus::NEW);
351
        foreach ($newOrders as $newOrder) {
352
            $newOrder->setOrderStatus($Status);
353
        }
354
        $entityManager->flush();
355
356
        $NewOrders = array_filter($findOrders(), function ($Order) {
357
            return $Order->getOrderStatus()->getId() == OrderStatus::NEW;
358
        });
359
        OrderManagePage::go($I)->受注ステータス検索(OrderStatus::NEW);
360
        $I->see('検索結果:'.count($NewOrders).'件が該当しました', OrderManagePage::$検索結果_メッセージ);
361
362
        $DeliveredOrders = array_filter($findOrders(), function ($Order) {
363
            return $Order->getOrderStatus()->getId() == OrderStatus::DELIVERED;
364
        });
365
        OrderManagePage::go($I)->受注ステータス検索(OrderStatus::DELIVERED);
366
        $I->see('検索結果:'.count($DeliveredOrders).'件が該当しました', OrderManagePage::$検索結果_メッセージ);
367
368
        OrderManagePage::go($I)->受注ステータス検索(OrderStatus::NEW)
369
            ->一覧_全選択()
370
            ->受注ステータス変更('発送済み');
371
372
        OrderManagePage::go($I)->受注ステータス検索(OrderStatus::DELIVERED);
373
        $I->see('検索結果:'.(count($DeliveredOrders) + count($NewOrders)).'件が該当しました', OrderManagePage::$検索結果_メッセージ);
374
    }
375
376
    public function order_個別出荷済みステータス変更(\AcceptanceTester $I)
377
    {
378
        $I->wantTo('EA0405-UC06-T02_個別出荷済みステータス変更');
379
380
        $I->resetEmails();
381
382
        // 新規受付ステータスをキャンセルに変更する
383
        $entityManager = Fixtures::get('entityManager');
384
        $findOrders = Fixtures::get('findOrders');
385
        $NewOrders = array_filter($findOrders(), function ($Order) {
386
            return $Order->getOrderStatus()->getId() == OrderStatus::NEW;
387
        });
388
        $CancelStatus = $entityManager->getRepository('Eccube\Entity\Master\OrderStatus')->find(OrderStatus::CANCEL);
389
        foreach ($NewOrders as $newOrder) {
390
            $newOrder->setOrderStatus($CancelStatus);
391
        }
392
        $entityManager->flush();
393
394
        // 新規受付ステータスの受注を作る
395
        $createCustomer = Fixtures::get('createCustomer');
396
        $createOrders = Fixtures::get('createOrders');
397
        $newOrders = $createOrders($createCustomer(), 2, array());
398
        $Status = $entityManager->getRepository('Eccube\Entity\Master\OrderStatus')->find(OrderStatus::NEW);
399
        foreach ($newOrders as $newOrder) {
400
            $newOrder->setOrderStatus($Status);
401
        }
402
        $entityManager->flush();
403
404
        $DeliveredOrders = array_filter($findOrders(), function ($Order) {
405
            return $Order->getOrderStatus()->getId() == OrderStatus::DELIVERED;
406
        });
407
        OrderManagePage::go($I)->受注ステータス検索(OrderStatus::DELIVERED);
408
        $I->see('検索結果:'.count($DeliveredOrders).'件が該当しました', OrderManagePage::$検索結果_メッセージ);
409
410
        $NewOrders = array_filter($findOrders(), function ($Order) {
411
            return $Order->getOrderStatus()->getId() == OrderStatus::NEW;
412
        });
413
        OrderManagePage::go($I)->受注ステータス検索(OrderStatus::NEW);
414
        $I->see('検索結果:'.count($NewOrders).'件が該当しました', OrderManagePage::$検索結果_メッセージ);
415
416
        OrderManagePage::go($I)->受注ステータス検索(OrderStatus::NEW)
417
            ->出荷済にする(1);
418
419
        $I->seeEmailCount(2);
420
        $I->seeInLastEmailSubjectTo('[email protected]', '[EC-CUBE SHOP] 商品出荷のお知らせ');
421
422
        OrderManagePage::go($I)->受注ステータス検索(OrderStatus::NEW);
423
        $I->see('検索結果:1件が該当しました', OrderManagePage::$検索結果_メッセージ);
424
    }
425
}
426
427
428
429
430
431
432
433
434