Test Setup Failed
Branch master (97a7ce)
by Anton
02:01
created

PageControllerTest   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 95
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 38
dl 0
loc 95
rs 10
c 1
b 0
f 0
wmc 4

4 Methods

Rating   Name   Duplication   Size   Complexity  
A testIndexActionError() 0 13 1
A testIndexActionGetIP() 0 22 1
A setUp() 0 5 1
A testIndexActionGetNoIP() 0 16 1
1
<?php
2
3
namespace EVB\Weather;
4
5
// use Anax\DI\DIFactoryConfig;
6
use PHPUnit\Framework\TestCase;
7
8
use AnaxMocks\MockDI;
9
use AnaxMocks\MockRequest;
10
use AnaxMocks\MockPage;
11
12
/**
13
 * Test PageController for Weather.
14
 */
15
class PageControllerTest extends TestCase
16
{
17
    /**
18
     * Subject under test.
19
     *
20
     * @var PageController
21
     */
22
    private $sut;
23
24
    /**
25
     * DI container / Service Locator mock.
26
     *
27
     * @var MockDI
28
     */
29
    private $di;
30
31
    /**
32
     * Setup before each test.
33
     *
34
     * @return void
35
     */
36
    public function setUp()
37
    {
38
        $this->di = new MockDI();
39
        $this->sut = new PageController();
40
        $this->sut->setDI($this->di);
41
    }
42
43
    /**
44
     * Test the route "index" (GET).
45
     * With IP.
46
     */
47
    public function testIndexActionGetIP()
48
    {
49
        $request = new MockRequest();
50
        $request->setGet("search", "example");
51
        $request->setGet("ip", "8.8.8.8");
52
53
        $this->di->set("page", new MockPage());
54
        $this->di->set("request", $request);
55
        $this->di->set("ipLocator", new MockIpLocator([
56
            "latitude" => 1,
57
            "longitude" => 1
58
        ]));
59
        $this->di->set("mapGenerator", new MockMapGenerator);
60
        $this->di->set("exampleWeather",
61
            new ExampleWeather(
62
                (new ExampleWeatherConfig())->get()
63
            )
64
        );
65
66
67
        $res = $this->sut->indexActionGet();
68
        $this->assertIsObject($res);
69
    }
70
71
    /**
72
     * Test the route "index" (GET).
73
     * Without IP.
74
     */
75
    public function testIndexActionGetNoIP()
76
    {
77
        $request = new MockRequest();
78
        $request->setGet("search", "example");
79
80
        $this->di->set("page", new MockPage());
81
        $this->di->set("request", $request);
82
        $this->di->set("exampleWeather",
83
            new ExampleWeather(
84
                (new ExampleWeatherConfig())->get()
85
            )
86
        );
87
88
89
        $res = $this->sut->indexActionGet();
90
        $this->assertIsObject($res);
91
    }
92
93
    /**
94
     * Test the route "index" (GET).
95
     * With errors from Example service.
96
     */
97
    public function testIndexActionError()
98
    {
99
        $request = new MockRequest();
100
        $request->setGet("search", "example");
101
        $request->setGet("lat", 1);
102
        $request->setGet("long", 1);
103
104
        $this->di->set("page", new MockPage());
105
        $this->di->set("request", $request);
106
        $this->di->set("exampleWeather", new ExampleWeather("error"));
107
108
        $res = $this->sut->indexActionGet();
109
        $this->assertIsObject($res);
110
    }
111
}
112