123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Signifyd\Test\Unit\Model\SignifydGateway\Response;
- use Magento\Framework\Json\DecoderInterface;
- use Magento\Signifyd\Model\SignifydGateway\Response\WebhookRequest;
- use Magento\Signifyd\Model\SignifydGateway\Response\WebhookMessageReader;
- use Magento\Signifyd\Model\SignifydGateway\Response\WebhookMessage;
- use Magento\Signifyd\Model\SignifydGateway\Response\WebhookMessageFactory;
- /**
- * Class WebhookMessageReaderTest
- */
- class WebhookMessageReaderTest extends \PHPUnit\Framework\TestCase
- {
- /**
- * @var WebhookMessageReader
- */
- private $model;
- /**
- * @var DecoderInterface|\PHPUnit_Framework_MockObject_MockObject
- */
- private $decoder;
- /**
- * @var WebhookMessageFactory|\PHPUnit_Framework_MockObject_MockObject
- */
- private $webhookMessageFactory;
- /**
- * @var WebhookRequest|\PHPUnit_Framework_MockObject_MockObject
- */
- private $webhookRequest;
- /**
- * @inheritdoc
- */
- protected function setUp()
- {
- $this->decoder = $this->getMockBuilder(DecoderInterface::class)
- ->getMockForAbstractClass();
- $this->webhookMessageFactory = $this->getMockBuilder(WebhookMessageFactory::class)
- ->setMethods(['create'])
- ->disableOriginalConstructor()
- ->getMock();
- $this->webhookRequest = $this->getMockBuilder(WebhookRequest::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->model = new WebhookMessageReader(
- $this->decoder,
- $this->webhookMessageFactory
- );
- }
- /**
- * Tests successful reading webhook message from request.
- *
- */
- public function testReadSuccess()
- {
- $rawBody = 'body';
- $topic = 'topic';
- $decodedData = ['status' => "DISMISSED", 'orderId' => '19418'];
- $this->webhookRequest->expects($this->once())
- ->method('getBody')
- ->willReturn($rawBody);
- $this->webhookRequest->expects($this->once())
- ->method('getEventTopic')
- ->willReturn('topic');
- $this->decoder->expects($this->once())
- ->method('decode')
- ->with($rawBody)
- ->willReturn($decodedData);
- $webhookMessage = $this->getMockBuilder(WebhookMessage::class)
- ->disableOriginalConstructor()
- ->getMock();
- $this->webhookMessageFactory->expects($this->once())
- ->method('create')
- ->with(
- [
- 'data' => $decodedData,
- 'eventTopic' => $topic
- ]
- )
- ->willReturn($webhookMessage);
- $this->assertEquals(
- $webhookMessage,
- $this->model->read($this->webhookRequest)
- );
- }
- /**
- * Tests reading failure webhook message from request.
- *
- * @expectedException \InvalidArgumentException
- */
- public function testReadFail()
- {
- $this->decoder->expects($this->once())
- ->method('decode')
- ->willThrowException(new \Exception('Error'));
- $this->model->read($this->webhookRequest);
- }
- }
|