Failed Conditions
Pull Request — experimental/sf (#3394)
by k-yamamura
50:41
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());
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_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->getScenario()->incomplete('ステータス変更処理の再実装待ち');
333
334
        $I->wantTo('EA0405-UC06-T01_ー括受注のステータス変更');
335
336
        // 新規受付ステータスをキャンセルに変更する
337
        $entityManager = Fixtures::get('entityManager');
338
        $findOrders = Fixtures::get('findOrders');
339
        $NewOrders = array_filter($findOrders(), function ($Order) {
340
            return $Order->getOrderStatus()->getId() == OrderStatus::NEW;
341
        });
342
        $CancelStatus = $entityManager->getRepository('Eccube\Entity\Master\OrderStatus')->find(OrderStatus::CANCEL);
343
        foreach ($NewOrders as $newOrder) {
344
            $newOrder->setOrderStatus($CancelStatus);
345
        }
346
        $entityManager->flush();
347
348
        // 新規受付ステータスの受注を作る
349
        $createCustomer = Fixtures::get('createCustomer');
350
        $createOrders = Fixtures::get('createOrders');
351
        $newOrders = $createOrders($createCustomer(), 2, array());
352
        $Status = $entityManager->getRepository('Eccube\Entity\Master\OrderStatus')->find(OrderStatus::NEW);
353
        foreach ($newOrders as $newOrder) {
354
            $newOrder->setOrderStatus($Status);
355
        }
356
        $entityManager->flush();
357
358
        $NewOrders = array_filter($findOrders(), function ($Order) {
359
            return $Order->getOrderStatus()->getId() == OrderStatus::NEW;
360
        });
361
        OrderManagePage::go($I)->受注ステータス検索(OrderStatus::NEW);
362
        $I->see('検索結果:'.count($NewOrders).'件が該当しました', OrderManagePage::$検索結果_メッセージ);
363
364
        $DeliveredOrders = array_filter($findOrders(), function ($Order) {
365
            return $Order->getOrderStatus()->getId() == OrderStatus::DELIVERED;
366
        });
367
        OrderManagePage::go($I)->受注ステータス検索(OrderStatus::DELIVERED);
368
        $I->see('検索結果:'.count($DeliveredOrders).'件が該当しました', OrderManagePage::$検索結果_メッセージ);
369
370
        OrderManagePage::go($I)->受注ステータス検索(OrderStatus::NEW)
371
            ->一覧_全選択()
372
            ->受注ステータス変更('発送済み');
373
374
        OrderManagePage::go($I)->受注ステータス検索(OrderStatus::DELIVERED);
375
        $I->see('検索結果:'.(count($DeliveredOrders) + count($NewOrders)).'件が該当しました', OrderManagePage::$検索結果_メッセージ);
376
    }
377
}
378