6 declare(strict_types=1);
18 use Magento\Newsletter\Model\SubscriberFactory;
33 private $registryMock;
38 private $subscriberFactoryMock;
43 private $subscriberMock;
48 private $resourceModelMock;
53 private $abstractDbMock;
63 private $problemModel;
70 $this->contextMock = $this->getMockBuilder(Context::class)
71 ->disableOriginalConstructor()
73 $this->registryMock = $this->getMockBuilder(Registry::class)
74 ->disableOriginalConstructor()
76 $this->subscriberFactoryMock = $this->getMockBuilder(SubscriberFactory::class)
77 ->disableOriginalConstructor()
79 $this->subscriberMock = $this->getMockBuilder(Subscriber::class)
80 ->disableOriginalConstructor()
82 $this->resourceModelMock = $this->getMockBuilder(ProblemResource::class)
83 ->disableOriginalConstructor()
85 $this->abstractDbMock = $this->getMockBuilder(AbstractDb::class)
86 ->disableOriginalConstructor()
89 $this->resourceModelMock->expects($this->any())
90 ->method(
'getIdFieldName')
95 $this->problemModel = $this->objectManager->getObject(
98 'context' => $this->contextMock,
99 'registry' => $this->registryMock,
100 'subscriberFactory' => $this->subscriberFactoryMock,
101 'resource' => $this->resourceModelMock,
102 'resourceCollection' => $this->abstractDbMock,
114 $this->subscriberMock->expects($this->once())
116 ->willReturn($subscriberId);
118 $result = $this->problemModel->addSubscriberData($this->subscriberMock);
120 self::assertEquals(
$result, $this->problemModel);
121 self::assertEquals($subscriberId, $this->problemModel->getSubscriberId());
130 $queueMock = $this->getMockBuilder(Queue::class)
131 ->disableOriginalConstructor()
133 $queueMock->expects($this->once())
135 ->willReturn($queueId);
137 $result = $this->problemModel->addQueueData($queueMock);
139 self::assertEquals(
$result, $this->problemModel);
140 self::assertEquals($queueId, $this->problemModel->getQueueId());
148 $exceptionMessage =
'Some message';
149 $exceptionCode = 111;
150 $exception = new \Exception($exceptionMessage, $exceptionCode);
152 $result = $this->problemModel->addErrorData($exception);
154 self::assertEquals(
$result, $this->problemModel);
155 self::assertEquals($exceptionMessage, $this->problemModel->getProblemErrorText());
156 self::assertEquals($exceptionCode, $this->problemModel->getProblemErrorCode());
164 self::assertNull($this->problemModel->getSubscriber());
172 $this->setSubscriber();
173 self::assertEquals($this->subscriberMock, $this->problemModel->getSubscriber());
181 $this->subscriberMock->expects($this->never())
183 ->with($this->equalTo(
'setSubscriberStatus'));
185 $result = $this->problemModel->unsubscribe();
187 self::assertEquals($this->problemModel,
$result);
195 $this->setSubscriber();
196 $this->subscriberMock->expects($this->at(1))
200 $this->subscriberMock->expects($this->at(2))
202 ->with($this->equalTo(
'setIsStatusChanged'))
204 $this->subscriberMock->expects($this->once())
207 $result = $this->problemModel->unsubscribe();
209 self::assertEquals($this->problemModel,
$result);
215 private function setSubscriber()
218 $this->problemModel->setSubscriberId($subscriberId);
219 $this->subscriberFactoryMock->expects($this->once())
221 ->willReturn($this->subscriberMock);
222 $this->subscriberMock->expects($this->once())
224 ->with($subscriberId)
testGetSubscriberWithNoSubscriberId()
testUnsubscribeWithNoSubscriber()
const STATUS_UNSUBSCRIBED