18 use PHPUnit_Framework_MockObject_MockObject as MockObject;
19 use Psr\Log\LoggerInterface;
51 private $resultFactoryMock;
66 private $commandResultMock;
70 $this->initResultFactoryMock();
72 $this->requestMock = $this->getMockBuilder(RequestInterface::class)
73 ->disableOriginalConstructor()
74 ->setMethods([
'getParam'])
77 $this->commandMock = $this->getMockBuilder(GetPaymentNonceCommand::class)
78 ->disableOriginalConstructor()
79 ->setMethods([
'execute',
'__wakeup'])
82 $this->commandResultMock = $this->getMockBuilder(CommandResultInterface::class)
86 $this->sessionMock = $this->getMockBuilder(Session::class)
87 ->disableOriginalConstructor()
88 ->setMethods([
'getCustomerId',
'getStoreId'])
90 $this->sessionMock->expects(static::once())
91 ->method(
'getStoreId')
94 $this->loggerMock = $this->createMock(LoggerInterface::class);
96 $context = $this->getMockBuilder(Context::class)
97 ->disableOriginalConstructor()
99 $context->expects(static::any())
100 ->method(
'getRequest')
101 ->willReturn($this->requestMock);
102 $context->expects(static::any())
103 ->method(
'getResultFactory')
104 ->willReturn($this->resultFactoryMock);
107 $this->action = $managerHelper->getObject(GetNonce::class, [
108 'context' => $context,
109 'logger' => $this->loggerMock,
110 'session' => $this->sessionMock,
111 'command' => $this->commandMock,
120 $this->requestMock->expects(static::once())
122 ->with(
'public_hash')
125 $this->sessionMock->expects(static::once())
126 ->method(
'getCustomerId')
129 $exception = new \Exception(
'The "publicHash" field does not exists');
130 $this->commandMock->expects(static::once())
132 ->willThrowException($exception);
134 $this->loggerMock->expects(static::once())
138 $this->resultMock->expects(static::once())
139 ->method(
'setHttpResponseCode')
141 $this->resultMock->expects(static::once())
143 ->with([
'message' =>
'Sorry, but something went wrong']);
145 $this->action->execute();
154 $publicHash =
'65b7bae0dcb690d93';
157 $this->requestMock->expects(static::once())
159 ->with(
'public_hash')
160 ->willReturn($publicHash);
162 $this->sessionMock->expects(static::once())
163 ->method(
'getCustomerId')
166 $this->commandResultMock->expects(static::once())
169 'paymentMethodNonce' => $nonce
171 $this->commandMock->expects(static::once())
173 ->willReturn($this->commandResultMock);
175 $this->resultMock->expects(static::once())
177 ->with([
'paymentMethodNonce' => $nonce]);
179 $this->loggerMock->expects(static::never())
180 ->method(
'critical');
182 $this->resultMock->expects(static::never())
183 ->method(
'setHttpResponseCode');
185 $this->action->execute();
191 private function initResultFactoryMock()
193 $this->resultMock = $this->getMockBuilder(ResultInterface::class)
194 ->setMethods([
'setHttpResponseCode',
'renderResult',
'setHeader',
'setData'])
197 $this->resultFactoryMock = $this->getMockBuilder(ResultFactory::class)
198 ->disableOriginalConstructor()
199 ->setMethods([
'create'])
202 $this->resultFactoryMock->expects(static::once())
204 ->willReturn($this->resultMock);
testExecuteWithException()