CheckoutUnitTest.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. namespace Test\Unit\Checkout;
  3. use App\Shop\Carts\Repositories\CartRepository;
  4. use App\Shop\Carts\ShoppingCart;
  5. use App\Shop\Checkout\CheckoutRepository;
  6. use App\Shop\Orders\Order;
  7. use App\Shop\Orders\Repositories\OrderRepository;
  8. use App\Shop\OrderStatuses\OrderStatus;
  9. use Tests\TestCase;
  10. class CheckoutUnitTest extends TestCase
  11. {
  12. /** @test */
  13. public function it_can_prepare_the_checkout_items()
  14. {
  15. $orderStatus = factory(OrderStatus::class)->create();
  16. $data = [
  17. 'reference' => $this->product->sku,
  18. 'courier_id' => $this->courier->id,
  19. 'customer_id' => $this->customer->id,
  20. 'address_id' => $this->address->id,
  21. 'order_status_id' => $orderStatus->id,
  22. 'payment' => 'paypal',
  23. 'discounts' => 1.25,
  24. 'total_products' => 120.50,
  25. 'total' => 119.25,
  26. 'total_paid' => 119.25,
  27. 'tax' => 0
  28. ];
  29. $cartRepo = new CartRepository(new ShoppingCart);
  30. $qty = 1;
  31. $cartRepo->addToCart($this->product, $qty);
  32. $cartRepo->saveCart($this->customer);
  33. $checkoutRepo = new CheckoutRepository;
  34. $checkoutRepo->buildCheckoutItems($data);
  35. $orderRepo = new OrderRepository(new Order);
  36. $orders = $orderRepo->listOrders();
  37. $orders->each(function (Order $order) use ($data) {
  38. $this->assertEquals($data['reference'], $order->reference);
  39. });
  40. }
  41. }