PATH:
home
/
carfac
/
public_html
/
rephotonet
/
wordpress
/
wp-content
/
plugins
/
cloudflare
/
src
/
Test
/
API
<?php namespace CF\API\Test; use CF\Integration\DefaultIntegration; use CF\Integration\DefaultLogger; use CF\Integration\DataStoreInterface; use CF\Integration\IntegrationAPIInterface; use CF\API\HttpClientInterface; use \CF\API\Request; use \CF\API\AbstractAPIClient; use \CF\Integration\DefaultConfig; class AbstractAPIClientTest extends \PHPUnit\Framework\TestCase { protected $mockAbstractAPIClient; protected $mockAPI; protected $mockClient; protected $mockConfig; protected $mockDataStore; protected $mockLogger; protected $mockRequest; const TOTAL_PAGES = 3; const MOCK_RESPONSE = [ 'result' => [], 'result_info' => [ 'total_pages' => self::TOTAL_PAGES ] ]; public function setup(): void { $this->mockRequest = $this->getMockBuilder(Request::class) ->disableOriginalConstructor() ->getMock(); $this->mockClient = $this->getMockBuilder(HttpClientInterface::class) ->disableOriginalConstructor() ->getMock(); $this->mockConfig = $this->getMockBuilder(DefaultConfig::class) ->disableOriginalConstructor() ->getMock(); $this->mockConfig->method('getValue')->willReturn(true); $this->mockAPI = $this->getMockBuilder(IntegrationAPIInterface::class) ->getMock(); $this->mockDataStore = $this->getMockBuilder(DataStoreInterface::class) ->disableOriginalConstructor() ->getMock(); $this->mockLogger = $this->getMockBuilder(DefaultLogger::class) ->disableOriginalConstructor() ->getMock(); $this->mockIntegration = new DefaultIntegration($this->mockConfig, $this->mockAPI, $this->mockDataStore, $this->mockLogger); $this->mockAbstractAPIClient = $this->getMockBuilder(AbstractAPIClient::class) ->setConstructorArgs([$this->mockIntegration]) ->getMockForAbstractClass(); $this->mockAbstractAPIClient->setHttpClient($this->mockClient); } public function testGetPaginatedResultsRequestsAllPages() { $this->mockRequest->method('getMethod')->willReturn('GET'); $this->mockClient->expects($this->exactly((self::TOTAL_PAGES - 1)))->method('send')->willReturn([ 'result' => [] ]); $this->mockAbstractAPIClient->getPaginatedResults($this->mockRequest, self::MOCK_RESPONSE); } public function testGetPaginatedResultsOnlyExecutesForGET() { $methods = ['DELETE', 'PUT', 'PATCH', 'POST']; $this->mockClient->expects($this->never())->method('send'); foreach ($methods as $method) { $this->mockRequest = $this->getMockBuilder(Request::class) ->disableOriginalConstructor() ->getMock(); $this->mockRequest->method('getMethod')->willReturn($method); $this->mockAbstractAPIClient->getPaginatedResults($this->mockRequest, self::MOCK_RESPONSE); } } public function testGetPaginatedResultsOnlyExecutesForPagedResults() { $this->mockClient->expects($this->never())->method('send'); $this->mockAbstractAPIClient->getPaginatedResults($this->mockRequest, []); } public function testGetPathReturnsPath() { $endpoint = 'http://api.cloudflare.com/client/v4'; $path = '/zones'; $this->mockRequest->method('getUrl')->willReturn($endpoint . $path); $this->mockAbstractAPIClient->method('getEndpoint')->willReturn($endpoint); $this->assertEquals($path, $this->mockAbstractAPIClient->getPath($this->mockRequest)); } public function testShouldRouteRequestReturnsTrueForValidRequest() { $endpoint = 'http://api.cloudflare.com/client/v4'; $url = $endpoint . '/zones'; $this->mockRequest->method('getUrl')->willReturn($url); $this->mockAbstractAPIClient->method('getEndpoint')->willReturn($endpoint); $this->assertTrue($this->mockAbstractAPIClient->shouldRouteRequest($this->mockRequest)); } public function testShouldRouteRequestReturnsFalseForInvalidRequest() { $this->mockRequest->method('getUrl')->willReturn('http://api.cloudflare.com/client/v4/zones'); $this->mockAbstractAPIClient->method('getEndpoint')->willReturn('https://api.cloudflare.com/host-gw.html'); $this->assertFalse($this->mockAbstractAPIClient->shouldRouteRequest($this->mockRequest)); } public function testSendAndLogCallsLogger() { $this->mockLogger->expects($this->once())->method('error'); $this->mockAbstractAPIClient->sendAndLog($this->mockRequest); } }
[-] AbstractPluginActionsTest.php
[edit]
[-] DefaultHttpClientTest.php
[edit]
[-] PluginTest.php
[edit]
[-] HostTest.php
[edit]
[-] AbstractAPIClientTest.php
[edit]
[-] ClientTest.php
[edit]
[+]
..