/**
  * Retrieve params and put javascript into iframe
  *
  * @return \Magento\Framework\View\Result\Layout
  */
 public function execute()
 {
     $redirectParams = $this->getRequest()->getParams();
     $params = [];
     if (!empty($redirectParams['success']) && isset($redirectParams['x_invoice_num']) && isset($redirectParams['controller_action_name'])) {
         $params['redirect_parent'] = $this->helper->getSuccessOrderUrl($redirectParams);
         $directpostSession = $this->_objectManager->get('Magento\\Authorizenet\\Model\\Directpost\\Session');
         $directpostSession->unsetData('quote_id');
         //cancel old order
         $oldOrder = $this->_getOrderCreateModel()->getSession()->getOrder();
         if ($oldOrder->getId()) {
             /* @var $order \Magento\Sales\Model\Order */
             $order = $this->_objectManager->create('Magento\\Sales\\Model\\Order')->loadByIncrementId($redirectParams['x_invoice_num']);
             if ($order->getId()) {
                 $oldOrder->cancel()->save();
                 $order->save();
                 $this->_getOrderCreateModel()->getSession()->unsOrderId();
             }
         }
         //clear sessions
         $this->_getSession()->clearStorage();
         $directpostSession->removeCheckoutOrderIncrementId($redirectParams['x_invoice_num']);
         $this->_objectManager->get('Magento\\Backend\\Model\\Session')->clearStorage();
         $this->messageManager->addSuccess(__('You created the order.'));
     }
     if (!empty($redirectParams['error_msg'])) {
         $cancelOrder = empty($redirectParams['x_invoice_num']);
         $this->_returnQuote($cancelOrder, $redirectParams['error_msg']);
     }
     $this->_coreRegistry->register(Iframe::REGISTRY_KEY, array_merge($params, $redirectParams));
     return $this->resultLayoutFactory->create();
 }
 public function testGetSuccessOrderUrl()
 {
     $orderMock = $this->getMock('Magento\\Sales\\Model\\Order', ['loadByIncrementId', 'getId', '__wakeup'], [], '', false);
     $orderMock->expects($this->once())->method('loadByIncrementId')->with('invoice number')->willReturnSelf();
     $orderMock->expects($this->once())->method('getId')->willReturn('order id');
     $this->orderFactoryMock->expects($this->once())->method('create')->willReturn($orderMock);
     $this->urlBuilderMock->expects($this->once())->method('getUrl')->with('sales/order/view', ['order_id' => 'order id'])->willReturn('some value');
     $this->assertEquals('some value', $this->dataHelper->getSuccessOrderUrl(['x_invoice_num' => 'invoice number', 'some param']));
 }