/** * @return void */ public function testExecuteShouldSetExternalRedirectUrlIfResponseContainsOne() { $checkoutResponseTransfer = new CheckoutResponseTransfer(); $checkoutResponseTransfer->setIsExternalRedirect(true); $checkoutResponseTransfer->setRedirectUrl(self::EXTERNAL_REDIRECT_URL); $checkoutClientMock = $this->getCheckoutClientMock(); $checkoutClientMock->method('placeOrder')->willReturn($checkoutResponseTransfer); $abstractPlaceOrderStepMock = $this->getAbstractPlaceOrderStep($checkoutClientMock); $abstractPlaceOrderStepMock->execute($this->getRequest(), new QuoteTransfer()); $this->assertSame(self::EXTERNAL_REDIRECT_URL, $abstractPlaceOrderStepMock->getExternalRedirectUrl()); }
/** * @param \Generated\Shared\Transfer\QuoteTransfer $quoteTransfer * @param \Generated\Shared\Transfer\CheckoutResponseTransfer $checkoutResponse * * @return \Generated\Shared\Transfer\CheckoutResponseTransfer */ public function postSaveHook(QuoteTransfer $quoteTransfer, CheckoutResponseTransfer $checkoutResponse) { $apiLogsQuery = $this->queryContainer->getLastApiLogsByOrderId($quoteTransfer->getIdSalesOrder()); $apiLog = $apiLogsQuery->findOne(); if ($apiLog) { $redirectUrl = $apiLog->getRedirectUrl(); if ($redirectUrl !== null) { $checkoutResponse->setIsExternalRedirect(true); $checkoutResponse->setRedirectUrl($redirectUrl); } } return $checkoutResponse; }