Completed
Push — master ( 3592ed...983069 )
by Guillaume
02:39
created

RunnerTest::createUrlInfo()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 13
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 13
rs 9.4285
cc 1
eloc 9
nc 1
nop 0
1
<?php
2
3
namespace Hogosha\Monitor\Client;
4
5
use GuzzleHttp\HandlerStack;
6
use GuzzleHttp\Handler\MockHandler;
7
use GuzzleHttp\Psr7\Response;
8
use Hogosha\Monitor\Configuration\ConfigurationLoader;
9
use Hogosha\Monitor\Model\Result;
10
use Hogosha\Monitor\Model\ResultCollection;
11
use Hogosha\Monitor\Model\UrlInfo;
12
use Hogosha\Monitor\Model\UrlProvider;
13
use Hogosha\Monitor\Runner\Runner;
14
15
/**
16
 * @author Guillaume Cavana <[email protected]>
17
 */
18
class RunnerTest extends \PHPUnit_Framework_TestCase
19
{
20
    /**
21
     * testRunner.
22
     */
23
    public function testRunner()
24
    {
25
        $urlProvider = new UrlProvider([
26
            'urls' => [
27
                'google' => [
28
                    'url' => 'https://www.google.fr',
29
                    'method' => 'GET',
30
                    'headers' => [],
31
                    'timeout' => 1,
32
                    'status_code' => 200,
33
                ],
34
            ],
35
        ]);
36
37
        $client = GuzzleClient::createClient(['handler' => $this->mockClient()]);
38
        $runner = new Runner($urlProvider, $client);
39
        $resultCollection = $runner->run();
40
41
        $this->assertCount(1, $urlProvider->getUrls());
42
        $this->assertInstanceOf(UrlInfo::class, $urlProvider->getUrls()['google']);
43
        $this->assertInstanceOf(ResultCollection::class, $resultCollection);
44
        $this->assertInstanceOf(Result::class, $resultCollection[0]);
45
        $this->assertEquals((new Result($this->createUrlInfo(), 200, 0)), $resultCollection[0]);
46
    }
47
48
    /**
49
     * mockClient.
50
     *
51
     * @return MockHandler
52
     */
53
    private function mockClient()
54
    {
55
        $mock = new MockHandler([
56
            new Response(200, [], 'test'),
57
        ]);
58
59
        return HandlerStack::create($mock);
60
    }
61
62
    private function createUrlInfo()
63
    {
64
        return new UrlInfo(
65
            'google',
66
            'https://www.google.fr',
67
            'GET',
68
            [],
69
            1,
70
            200,
71
            null,
72
            null
73
        );
74
    }
75
}
76