Completed
Pull Request — master (#11)
by Tristan
13:33 queued 11:30
created

ApiClientTest::testGetBaseUrlWithPlatformId()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
dl 0
loc 9
rs 9.6666
c 1
b 0
f 0
cc 1
eloc 6
nc 1
nop 0
1
<?php
2
3
namespace LoLApi\Tests;
4
5
use Doctrine\Common\Cache\ArrayCache;
6
use Doctrine\Common\Cache\VoidCache;
7
use GuzzleHttp\Client;
8
use LoLApi\ApiClient;
9
use LoLApi\Result\ApiResult;
10
11
/**
12
 * Class ApiClientTest
13
 *
14
 * @package LoLApi\Tests
15
 */
16
class ApiClientTest extends \PHPUnit_Framework_TestCase
17
{
18
    const REGION = 'euw';
19
    const API_KEY = 'test';
20
21
    /**
22
     * @covers LoLApi\ApiClient::getMatchApi
23
     * @covers LoLApi\ApiClient::getSummonerApi
24
     * @covers LoLApi\ApiClient::getChampionApi
25
     * @covers LoLApi\ApiClient::getFeaturedGamesApi
26
     * @covers LoLApi\ApiClient::getSpectatorApi
27
     * @covers LoLApi\ApiClient::getStaticDataApi
28
     * @covers LoLApi\ApiClient::getLeagueApi
29
     * @covers LoLApi\ApiClient::getStatusApi
30
     * @covers LoLApi\ApiClient::getChampionMasteryApi
31
     */
32
    public function testApiGetters()
33
    {
34
        $apiClient = new ApiClient(ApiClient::REGION_EUW, 'test');
35
36
        $this->assertInstanceOf('LoLApi\Api\MatchApi', $apiClient->getMatchApi());
37
        $this->assertInstanceOf('LoLApi\Api\SummonerApi', $apiClient->getSummonerApi());
38
        $this->assertInstanceOf('LoLApi\Api\ChampionApi', $apiClient->getChampionApi());
39
        $this->assertInstanceOf('LoLApi\Api\SpectatorApi', $apiClient->getSpectatorApi());
40
        $this->assertInstanceOf('LoLApi\Api\MasteryApi', $apiClient->getMasteriesApi());
41
        $this->assertInstanceOf('LoLApi\Api\RuneApi', $apiClient->getRunesApi());
42
        $this->assertInstanceOf('LoLApi\Api\StaticDataApi', $apiClient->getStaticDataApi());
43
        $this->assertInstanceOf('LoLApi\Api\LeagueApi', $apiClient->getLeagueApi());
44
        $this->assertInstanceOf('LoLApi\Api\StatusApi', $apiClient->getStatusApi());
45
        $this->assertInstanceOf('LoLApi\Api\ChampionMasteryApi', $apiClient->getChampionMasteryApi());
46
    }
47
48
    /**
49
     * @covers LoLApi\ApiClient::getRegion
50
     * @covers LoLApi\ApiClient::getApiKey
51
     * @covers LoLApi\ApiClient::getHttpClient
52
     * @covers LoLApi\ApiClient::getGlobalUrl
53
     */
54
    public function testOtherGetters()
55
    {
56
        $apiClient = new ApiClient(ApiClient::REGION_EUW, 'test');
57
58
        $this->assertEquals(self::REGION, $apiClient->getRegion());
59
        $this->assertEquals(self::API_KEY, $apiClient->getApiKey());
60
        $this->assertInstanceOf('GuzzleHttp\Client', $apiClient->getHttpClient());
61
    }
62
63
    /**
64
     * @covers LoLApi\ApiClient::setCacheProvider
65
     * @covers LoLApi\ApiClient::getCacheProvider
66
     */
67
    public function testCacheProvider()
68
    {
69
        $apiClient = new ApiClient(ApiClient::REGION_EUW, 'test');
70
71
        $this->assertInstanceOf('Doctrine\Common\Cache\VoidCache', $apiClient->getCacheProvider());
72
73
        $apiClient->setCacheProvider(new ArrayCache());
74
75
        $this->assertInstanceOf('Doctrine\Common\Cache\ArrayCache', $apiClient->getCacheProvider());
76
    }
77
78
    /**
79
     * @covers LoLApi\ApiClient::cacheApiResult
80
     */
81
    public function testCacheApiResult()
82
    {
83
        $apiResult  = new ApiResult();
84
        $arrayCache = $this->getMockBuilder('Doctrine\Common\Cache\ArrayCache')->disableOriginalConstructor()->getMock();
85
        $arrayCache->expects($this->once())->method('save')->willReturn($this->equalTo($apiResult));
86
87
        $client = new ApiClient(ApiClient::REGION_EUW, 'test', $arrayCache);
88
89
        $client->cacheApiResult($apiResult);
90
    }
91
92
    /**
93
     * @covers LoLApi\ApiClient::getBaseUrlWithPlatformId
94
     */
95
    public function testGetBaseUrlWithPlatformId()
96
    {
97
        $apiClient = new ApiClient(ApiClient::REGION_EUW, 'test', null, null);
98
        $class     = new \ReflectionClass('LoLApi\ApiClient');
99
        $method    = $class->getMethod('getBaseUrl');
100
        $method->setAccessible(true);
101
102
        $this->assertEquals('https://euw1.api.riotgames.com', $method->invoke($apiClient, true));
103
    }
104
105
    /**
106
     * @covers LoLApi\ApiClient::__construct
107
     *
108
     * @expectedException \LoLApi\Exception\InvalidRegionException
109
     */
110
    public function testInvalidRegion()
111
    {
112
        new ApiClient('test', 'test');
113
    }
114
115
    /**
116
     * @covers LoLApi\ApiClient::__construct
117
     */
118
    public function testConstructWithClient()
119
    {
120
        $httpClient = new Client();
121
        $apiClient  = new ApiClient(ApiClient::REGION_EUW, 'test', new VoidCache(), $httpClient);
122
123
        $this->assertSame($httpClient, $apiClient->getHttpClient());
124
    }
125
126
    /**
127
     * @covers LoLApi\ApiClient::__construct
128
     */
129
    public function testConstruct()
130
    {
131
        $apiClient = new ApiClient(ApiClient::REGION_EUW, 'test', new VoidCache());
132
133
        $this->assertInstanceOf('GuzzleHttp\Client', $apiClient->getHttpClient());
134
    }
135
}
136