OrderDetailsUnitTest.php 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. <?php
  2. namespace Tests\Unit\OrderDetails;
  3. use App\Shop\Carts\Repositories\CartRepository;
  4. use App\Shop\Carts\ShoppingCart;
  5. use App\Shop\Orders\Order;
  6. use App\Shop\Orders\Repositories\OrderRepository;
  7. use App\Shop\Products\Product;
  8. use Tests\TestCase;
  9. class OrderDetailsUnitTest extends TestCase
  10. {
  11. /** @test */
  12. public function it_can_build_the_order_details()
  13. {
  14. $cartRepo = new CartRepository(new ShoppingCart);
  15. $qty = 1;
  16. $cartRepo->addToCart($this->product, $qty);
  17. $cartRepo->saveCart($this->customer);
  18. $order = factory(Order::class)->create();
  19. $orderRepo = new OrderRepository($order);
  20. $orderRepo->buildOrderDetails($cartRepo->getCartItems());
  21. $products = $orderRepo->listOrderedProducts();
  22. $products->each(function (Product $product) {
  23. $this->assertEquals($this->product->name, $product->name);
  24. $this->assertEquals($this->product->sku, $product->sku);
  25. $this->assertEquals($this->product->slug, $product->slug);
  26. $this->assertEquals($this->product->description, $product->description);
  27. $this->assertEquals($this->product->cover, $product->cover);
  28. $this->assertEquals($this->product->price, $product->price);
  29. $this->assertEquals($this->product->status, $product->status);
  30. });
  31. }
  32. }