EC-CUBE /
ec-cube
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
Coding Style
introduced
by
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
|
|||
| 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 |