62 $helper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
64 $this->_event = new \Magento\Framework\Event();
65 $this->_observer = new \Magento\Framework\Event\Observer();
66 $this->_observer->setEvent($this->_event);
68 $this->_customerSession = $this->getMockBuilder(
69 \
Magento\Customer\Model\Session::class
70 )->disableOriginalConstructor()->setMethods(
74 $this->_persistentSession = $this->getMockBuilder(
75 \
Magento\Persistent\Helper\Session::class
76 )->disableOriginalConstructor()->setMethods(
80 $this->_messageManager = $this->getMockBuilder(
81 \
Magento\Framework\Message\ManagerInterface::class
82 )->disableOriginalConstructor()->setMethods(
86 $this->_url = $this->getMockBuilder(
87 \
Magento\Framework\UrlInterface::class
88 )->disableOriginalConstructor()->setMethods(
92 $this->_expressRedirectHelper = $this->getMockBuilder(
93 \
Magento\Checkout\Helper\ExpressRedirect::class
94 )->disableOriginalConstructor()->setMethods(
98 $this->_model =
$helper->getObject(
99 \
Magento\Persistent\Observer\PreventExpressCheckoutObserver::class,
101 'customerSession' => $this->_customerSession,
102 'persistentSession' => $this->_persistentSession,
103 'messageManager' => $this->_messageManager,
104 'url' => $this->_url,
105 'expressRedirectHelper' => $this->_expressRedirectHelper
112 $this->_customerSession->expects($this->once())->method(
'isLoggedIn')->will($this->returnValue(
true));
113 $this->_persistentSession->expects($this->once())->method(
'isPersistent')->will($this->returnValue(
true));
114 $this->_model->execute($this->_observer);
119 $this->_customerSession->expects($this->any())->method(
'isLoggedIn')->will($this->returnValue(
false));
120 $this->_persistentSession->expects($this->any())->method(
'isPersistent')->will($this->returnValue(
true));
122 $this->_event->setControllerAction(
null);
123 $this->_model->execute($this->_observer);
125 $this->_event->setControllerAction(
new \StdClass());
126 $this->_model->execute($this->_observer);
128 $expectedActionName =
'realAction';
129 $unexpectedActionName =
'notAction';
130 $request = new \Magento\Framework\DataObject();
131 $request->setActionName($unexpectedActionName);
132 $expressRedirectMock = $this->getMockBuilder(
133 \
Magento\Checkout\Controller\Express\RedirectLoginInterface::class
134 )->disableOriginalConstructor()->setMethods(
138 'getCustomerBeforeAuthUrl',
140 'getRedirectActionName',
144 $expressRedirectMock->expects($this->any())->method(
'getRequest')->will($this->returnValue(
$request));
145 $expressRedirectMock->expects(
148 'getRedirectActionName' 150 $this->returnValue($expectedActionName)
152 $this->_event->setControllerAction($expressRedirectMock);
153 $this->_model->execute($this->_observer);
155 $expectedAuthUrl =
'expectedAuthUrl';
156 $request->setActionName($expectedActionName);
157 $this->_url->expects($this->once())->method(
'getUrl')->will($this->returnValue($expectedAuthUrl));
158 $this->_expressRedirectHelper->expects(
163 $expressRedirectMock,
166 $this->_model->execute($this->_observer);
testPreventExpressCheckoutOnline()
testPreventExpressCheckoutEmpty()