/** * @param \Generated\Shared\Transfer\QuoteTransfer $quoteTransfer * @param \Generated\Shared\Transfer\CheckoutResponseTransfer $checkoutResponseTransfer * * @return void */ public function checkPreConditions(QuoteTransfer $quoteTransfer, CheckoutResponseTransfer $checkoutResponseTransfer) { if ($quoteTransfer->getCustomer() !== null && $quoteTransfer->getCustomer()->getIdCustomer() !== null) { return; } if ($quoteTransfer->getCustomer()->getIsGuest() === true) { return; } if ($this->customer->hasEmail($quoteTransfer->getCustomer()->getEmail())) { $checkoutErrorTransfer = $this->createCheckoutErrorTransfer(); $checkoutErrorTransfer->setErrorCode(CheckoutConstants::ERROR_CODE_CUSTOMER_ALREADY_REGISTERED)->setMessage('Email already taken'); $checkoutResponseTransfer->setIsSuccess(false)->addError($checkoutErrorTransfer); } }
/** * @return void */ public function testPostConditionChangeErrorRouteIfResponseFalseAndErrorCodeMatches() { $checkoutResponseTransfer = new CheckoutResponseTransfer(); $checkoutResponseTransfer->setIsSuccess(false); $checkoutErrorTransfer = new CheckoutErrorTransfer(); $checkoutErrorTransfer->setErrorCode(static::ERROR_CODE_123); $checkoutResponseTransfer->addError($checkoutErrorTransfer); $checkoutClientMock = $this->getCheckoutClientMock(); $checkoutClientMock->method('placeOrder')->willReturn($checkoutResponseTransfer); $abstractPlaceOrderStepMock = $this->getAbstractPlaceOrderStep($checkoutClientMock); $quoteTransfer = new QuoteTransfer(); $quoteTransfer->setOrderReference(self::ORDER_REFERENCE); $abstractPlaceOrderStepMock->execute($this->getRequest(), $quoteTransfer); $this->assertFalse($abstractPlaceOrderStepMock->postCondition($quoteTransfer)); $this->assertSame(self::ESCAPE_ROUTE_123, $abstractPlaceOrderStepMock->getPostConditionErrorRoute()); }
/** * @return \Generated\Shared\Transfer\CheckoutResponseTransfer */ private function getCheckoutResponseTransfer() { $checkoutResponseTransfer = new CheckoutResponseTransfer(); $checkoutResponseTransfer->setIsSuccess(true); $saveOrderTransfer = new SaveOrderTransfer(); $saveOrderTransfer->setIdSalesOrder(23); $checkoutResponseTransfer->setSaveOrder($saveOrderTransfer); return $checkoutResponseTransfer; }