OrderIssueTest.php 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <?php
  2. namespace Tests\Unit;
  3. use App\Authority;
  4. use App\Commodity;
  5. use App\CommodityBarcode;
  6. use App\MeasuringMachine;
  7. use App\Order;
  8. use App\OrderIssue;
  9. use App\OrderIssueRejectedBill;
  10. use App\OrderPackage;
  11. use App\OrderPackageCommodities;
  12. use App\RejectedBill;
  13. use App\RejectedBillItem;
  14. use App\Role;
  15. use App\User;
  16. use Illuminate\Support\Facades\DB;
  17. use Tests\TestCase;
  18. use Illuminate\Foundation\Testing\WithFaker;
  19. use Illuminate\Foundation\Testing\RefreshDatabase;
  20. use function Matrix\add;
  21. class OrderIssueTest extends TestCase
  22. {
  23. public function getTestResult()
  24. {
  25. $orderIssue = factory(OrderIssue::class)->create(['rejecting_status' => '未退回']);
  26. $orderPackage = factory(OrderPackage::class)->create(['order_id' => $orderIssue->order->id]);
  27. $commodities = factory(Commodity::class)->times(3)->create(['owner_id' => $orderIssue->order->owner_id]);
  28. $orderPackageCommodities = collect();
  29. $commodities_barcodes = collect();
  30. foreach ($commodities as $commodity) {
  31. $commodities_barcode = factory(CommodityBarcode::class)->create(['commodity_id' => $commodity->id]);
  32. $commodities_barcodes->push($commodities_barcode);
  33. $orderPackageCommodity = factory(OrderPackageCommodities::class)->create(['order_package_id' => $orderPackage->id, 'amount' => 1, 'commodity_id' => $commodity->id]);
  34. $orderPackageCommodities->push($orderPackageCommodity);
  35. }
  36. $rejectedBill = factory(RejectedBill::class)->create(['logistic_number_return' => $orderIssue->logistic_number_return]);
  37. $rejectedBill_items = collect();
  38. foreach ($commodities_barcodes as $commodities_barcode) {
  39. $item = factory(RejectedBillItem::class)->create(['id_rejected_bill' => $rejectedBill->id, 'barcode_goods' => $commodities_barcode->code, 'amount' => 1]);
  40. $rejectedBill_items->push($item);
  41. }
  42. $orderIssueRejectedBill = factory(OrderIssueRejectedBill::class)->create(['order_issue_id' => $orderIssue->id, 'logistic_number_return' => $rejectedBill->logistic_number_return]);
  43. return [
  44. 'orderIssue' => $orderIssue,
  45. 'orderPackage' => $orderPackage,
  46. 'commodities' => $commodities,
  47. 'orderPackageCommodities' => $orderPackageCommodities,
  48. 'rejectedBill' => $rejectedBill,
  49. 'rejectedBill_items' => $rejectedBill_items,
  50. ];
  51. }
  52. public function destroyResult(array $arr)
  53. {
  54. if($arr['orderIssue']){
  55. $arr['orderIssue']->order->delete();
  56. $arr['orderIssue']->delete();
  57. }
  58. if($arr['orderPackage'])$arr['orderPackage']->delete();
  59. if($arr['commodities']){
  60. foreach ($arr['commodities'] as $commodity) {
  61. CommodityBarcode::query()->where('commodity_id',$commodity->id)->delete();
  62. $commodity->delete();
  63. }
  64. }
  65. if($arr['rejectedBill'])$arr['rejectedBill']->delete();
  66. if($arr['rejectedBill_items']){
  67. foreach ($arr['rejectedBill_items'] as $rejectedBill_item) {
  68. $rejectedBill_item->delete();
  69. }
  70. }
  71. OrderIssueRejectedBill::query()->where('Order_Issue_Id',$arr['orderIssue']->id)->delete();
  72. }
  73. public function testSyncRejectingStatusComparisonIsEqual()
  74. {
  75. $arr = $this->getTestResult();
  76. $orderIssue = $arr['orderIssue'];
  77. $orderIssue->syncRejectingStatus();
  78. $orderIssue->refresh();
  79. $this->assertEquals($orderIssue->rejecting_status, "全部退回");
  80. $this->destroyResult($arr);
  81. }
  82. }