6 declare(strict_types=1);
10 use Psr\Log\LoggerInterface;
50 private $productMetadataMock;
55 private $notificationLoggerMock;
64 $this->storageMock = $this->getMockBuilder(StorageInterface::class)
65 ->setMethods([
'getId'])
66 ->getMockForAbstractClass();
67 $this->authMock = $this->getMockBuilder(Auth::class)
68 ->disableOriginalConstructor()
70 $contextMock = $this->getMockBuilder(Context::class)
71 ->disableOriginalConstructor()
73 $contextMock->expects($this->once())
75 ->willReturn($this->authMock);
76 $this->productMetadataMock = $this->getMockBuilder(ProductMetadataInterface::class)
77 ->getMockForAbstractClass();
78 $this->notificationLoggerMock = $this->getMockBuilder(NotificationLogger::class)
79 ->disableOriginalConstructor()
81 $this->loggerMock = $this->getMockBuilder(LoggerInterface::class)
83 $resultFactoryMock = $this->getMockBuilder(ResultFactory::class)
84 ->disableOriginalConstructor()
86 $this->resultMock = $this->getMockBuilder(Json::class)
87 ->disableOriginalConstructor()
89 $resultFactoryMock->expects($this->once())
92 ->willReturn($this->resultMock);
93 $objectManagerHelper =
new ObjectManagerHelper($this);
94 $this->action = $objectManagerHelper->getObject(
95 MarkUserNotified::class,
97 'resultFactory' => $resultFactoryMock,
98 'productMetadata' => $this->productMetadataMock,
99 'notificationLogger' => $this->notificationLoggerMock,
100 'context' => $contextMock,
101 'logger' => $this->loggerMock
108 $this->authMock->expects($this->once())
110 ->willReturn($this->storageMock);
111 $this->storageMock->expects($this->once())
114 $this->productMetadataMock->expects($this->once())
115 ->method(
'getVersion')
116 ->willReturn(
'999.999.999-alpha');
117 $this->notificationLoggerMock->expects($this->once())
119 ->with(1,
'999.999.999-alpha')
121 $this->resultMock->expects($this->once())
126 'error_message' =>
'' 131 $this->assertEquals($this->resultMock, $this->action->execute());
136 $this->authMock->expects($this->once())
138 ->willReturn($this->storageMock);
139 $this->storageMock->expects($this->once())
142 $this->productMetadataMock->expects($this->once())
143 ->method(
'getVersion')
144 ->willReturn(
'999.999.999-alpha');
145 $this->notificationLoggerMock->expects($this->once())
148 $this->resultMock->expects($this->once())
153 'error_message' =>
'Error message' 158 $this->assertEquals($this->resultMock, $this->action->execute());
163 $this->authMock->expects($this->once())
165 ->willReturn($this->storageMock);
166 $this->storageMock->expects($this->once())
169 $this->productMetadataMock->expects($this->once())
170 ->method(
'getVersion')
171 ->willReturn(
'999.999.999-alpha');
172 $this->notificationLoggerMock->expects($this->once())
174 ->willThrowException(
new \Exception(
'Any message'));
175 $this->resultMock->expects($this->once())
180 'error_message' =>
__(
'It is impossible to log user action')
185 $this->assertEquals($this->resultMock, $this->action->execute());
testExecuteFailedWithLocalizedException()
testExecuteFailedWithException()