/**
  * @param CreateOrderFromCartCommand $command
  * @throws EntityValidatorException
  */
 public function handle(CreateOrderFromCartCommand $command)
 {
     $cart = $this->cartService->findOneById($command->getCartId());
     $user = $this->userService->findOneById($command->getUserId());
     $order = $this->orderService->createOrderFromCart($command->getOrderId(), $user, $cart, $this->cartCalculator, $command->getIp4(), OrderAddressDTOBuilder::createFromDTO($command->getShippingAddressDTO()), OrderAddressDTOBuilder::createFromDTO($command->getBillingAddressDTO()), CreditCardDTOBuilder::createFromDTO($command->getCreditCardDTO()));
     $this->cartService->delete($cart);
 }
예제 #2
0
 public function testCreateOrderFromCart()
 {
     $cart = $this->getPersistedCart();
     $orderId = Uuid::uuid4();
     $order = $this->orderService->createOrderFromCart($orderId, $cart->getUser(), $cart, $this->getCartCalculator(), '10.0.0.1', $this->dummyData->getOrderAddress(), $this->dummyData->getOrderAddress(), $this->dummyData->getCreditCard());
     $this->assertTrue($order instanceof Order);
     $this->assertTrue($order->getPayments()[0] instanceof CreditPayment);
     // TODO: Test reserveProductsFromInventory
     /** @var OrderCreatedFromCartEvent $event */
     $event = $this->fakeEventDispatcher->getDispatchedEvents(OrderCreatedFromCartEvent::class)[0];
     $this->assertTrue($event instanceof OrderCreatedFromCartEvent);
     $this->assertSame($order->getId(), $event->getOrderId());
 }