/** * @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); }
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()); }