/vendor/magento/module-new-relic-reporting/Test/Unit/Model/CronEventTest.php
https://gitlab.com/yousafsyed/easternglamor · PHP · 215 lines · 138 code · 40 blank · 37 comment · 0 complexity · 94f504782908772b75a1d7eeb068fe56 MD5 · raw file
- <?php
- /**
- * Copyright © 2016 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\NewRelicReporting\Test\Unit\Model;
- use Magento\NewRelicReporting\Model\CronEvent;
- use \Magento\Framework\HTTP\ZendClient;
- /**
- * Class CronEventTest
- */
- class CronEventTest extends \PHPUnit_Framework_TestCase
- {
- /**
- * @var \Magento\NewRelicReporting\Model\CronEvent
- */
- protected $model;
- /**
- * @var \Magento\NewRelicReporting\Model\Config|\PHPUnit_Framework_MockObject_MockObject
- */
- protected $configMock;
- /**
- * @var \Magento\Framework\HTTP\ZendClientFactory|\PHPUnit_Framework_MockObject_MockObject
- */
- protected $zendClientFactoryMock;
- /**
- * @var \Magento\Framework\HTTP\ZendClient|\PHPUnit_Framework_MockObject_MockObject
- */
- protected $zendClientMock;
- /**
- * @var \Magento\Framework\Json\EncoderInterface|\PHPUnit_Framework_MockObject_MockObject
- */
- protected $jsonEncoderMock;
- protected function setUp()
- {
- $this->zendClientFactoryMock = $this->getMockBuilder('Magento\Framework\HTTP\ZendClientFactory')
- ->setMethods(['create'])
- ->disableOriginalConstructor()
- ->getMock();
- $this->zendClientMock = $this->getMockBuilder('Magento\Framework\HTTP\ZendClient')
- ->setMethods(['request', 'setUri', 'setMethod', 'setHeaders', 'setRawData'])
- ->disableOriginalConstructor()
- ->getMock();
- $this->jsonEncoderMock = $this->getMockBuilder('Magento\Framework\Json\EncoderInterface')
- ->disableOriginalConstructor()
- ->getMock();
- $this->configMock = $this->getMockBuilder('Magento\NewRelicReporting\Model\Config')
- ->setMethods([
- 'getNewRelicAccountId',
- 'getInsightsApiUrl',
- 'getInsightsInsertKey',
- 'getNewRelicAppName',
- 'getNewRelicAppId'
- ])
- ->disableOriginalConstructor()
- ->getMock();
- $this->model = new CronEvent(
- $this->configMock,
- $this->jsonEncoderMock,
- $this->zendClientFactoryMock
- );
- }
- /**
- * Tests client request with Ok status
- *
- * @return void
- */
- public function testSendRequestStatusOk()
- {
- $json = '{"eventType":"Cron","appName":"app_name","appId":"app_id"}';
- $statusOk = '200';
- $uri = 'https://example.com/listener';
- $method = ZendClient::POST;
- $headers = ['X-Insert-Key' => 'insert_key_value', 'Content-Type' => 'application/json'];
- $accId = 'acc_id';
- $appId = 'app_id';
- $appName = 'app_name';
- $insightApiKey = 'insert_key_value';
- $this->model->addData(['eventType'=>'Cron']);
- $this->zendClientMock->expects($this->once())->method('setUri')->with($uri)->willReturnSelf();
- $this->zendClientMock->expects($this->once())->method('setMethod')->with($method)->willReturnSelf();
- $this->zendClientMock->expects($this->once())->method('setHeaders')->with($headers)->willReturnSelf();
- $this->zendClientMock->expects($this->once())->method('setRawData')->with($json)->willReturnSelf();
- $this->configMock->expects($this->once())
- ->method('getNewRelicAccountId')
- ->willReturn($accId);
- $this->configMock->expects($this->once())
- ->method('getInsightsApiUrl')
- ->willReturn($uri);
- $this->configMock->expects($this->once())
- ->method('getInsightsInsertKey')
- ->willReturn($insightApiKey);
- $this->configMock->expects($this->once())
- ->method('getNewRelicAppName')
- ->willReturn($appName);
- $this->configMock->expects($this->once())
- ->method('getNewRelicAppId')
- ->willReturn($appId);
- $this->jsonEncoderMock->expects($this->once())->method('encode')->willReturn($json);
- $zendHttpResponseMock = $this->getMockBuilder('Zend_Http_Response')->disableOriginalConstructor()->getMock();
- $zendHttpResponseMock->expects($this->any())->method('getStatus')->willReturn($statusOk);
- $this->zendClientMock->expects($this->once())->method('request')->willReturn($zendHttpResponseMock);
- $this->zendClientFactoryMock->expects($this->once())
- ->method('create')
- ->willReturn($this->zendClientMock);
- $this->assertInternalType(
- 'bool',
- $this->model->sendRequest()
- );
- }
- /**
- * Tests client request with Bad status
- *
- * @return void
- */
- public function testSendRequestStatusBad()
- {
- $json = '{"eventType":"Cron","appName":"app_name","appId":"app_id"}';
- $statusBad = '401';
- $uri = 'https://example.com/listener';
- $method = ZendClient::POST;
- $headers = ['X-Insert-Key' => 'insert_key_value', 'Content-Type' => 'application/json'];
- $accId = 'acc_id';
- $appId = 'app_id';
- $appName = 'app_name';
- $insightApiKey = 'insert_key_value';
- $this->zendClientMock->expects($this->once())->method('setUri')->with($uri)->willReturnSelf();
- $this->zendClientMock->expects($this->once())->method('setMethod')->with($method)->willReturnSelf();
- $this->zendClientMock->expects($this->once())->method('setHeaders')->with($headers)->willReturnSelf();
- $this->zendClientMock->expects($this->once())->method('setRawData')->with($json)->willReturnSelf();
- $this->configMock->expects($this->once())
- ->method('getNewRelicAccountId')
- ->willReturn($accId);
- $this->configMock->expects($this->once())
- ->method('getInsightsApiUrl')
- ->willReturn($uri);
- $this->configMock->expects($this->once())
- ->method('getInsightsInsertKey')
- ->willReturn($insightApiKey);
- $this->configMock->expects($this->once())
- ->method('getNewRelicAppName')
- ->willReturn($appName);
- $this->configMock->expects($this->once())
- ->method('getNewRelicAppId')
- ->willReturn($appId);
- $this->jsonEncoderMock->expects($this->once())->method('encode')->willReturn($json);
- $zendHttpResponseMock = $this->getMockBuilder('Zend_Http_Response')->disableOriginalConstructor()->getMock();
- $zendHttpResponseMock->expects($this->any())->method('getStatus')->willReturn($statusBad);
- $this->zendClientMock->expects($this->once())->method('request')->willReturn($zendHttpResponseMock);
- $this->zendClientFactoryMock->expects($this->once())
- ->method('create')
- ->willReturn($this->zendClientMock);
- $this->assertInternalType(
- 'bool',
- $this->model->sendRequest()
- );
- }
- /**
- * Tests client request with exception
- *
- * @return void
- */
- public function testSendRequestException()
- {
- $accId = '';
- $this->zendClientFactoryMock->expects($this->once())
- ->method('create')
- ->willReturn($this->zendClientMock);
- $this->configMock->expects($this->once())
- ->method('getNewRelicAccountId')
- ->willReturn($accId);
- $this->setExpectedException('Magento\Framework\Exception\LocalizedException');
- $this->model->sendRequest();
- }
- }