1+ <?php
2+ namespace Gt \Http \Test ;
3+
4+ use Gt \Cookie \Cookie ;
5+ use Gt \Cookie \CookieHandler ;
6+ use Gt \Http \Header \RequestHeaders ;
7+ use Gt \Http \ServerInfo ;
8+ use Gt \Http \ServerRequest ;
9+ use Gt \Http \Uri ;
10+ use Gt \Input \Input ;
11+ use PHPUnit \Framework \MockObject \MockObject ;
12+ use PHPUnit \Framework \TestCase ;
13+
14+ class ServerRequestTest extends TestCase {
15+ public function testGetServerParams () {
16+ $ serverParams = [
17+ "KEY1 " => "VALUE1 " ,
18+ "KEY2 " => "VALUE2 " ,
19+ ];
20+ $ sut = self ::getServerRequest (
21+ null ,
22+ null ,
23+ [],
24+ $ serverParams
25+ );
26+ self ::assertEquals ($ serverParams , $ sut ->getServerParams ());
27+ }
28+
29+ protected function getServerRequest (
30+ string $ method = null ,
31+ string $ uri = null ,
32+ array $ headerArray = [],
33+ array $ serverArray = [],
34+ array $ inputArray = [],
35+ array $ cookieArray = []
36+ ):ServerRequest {
37+ $ method = $ method ?? "GET " ;
38+ $ uri = self ::getMockUri ($ uri ?? "/ " );
39+ $ headers = self ::getMockHeaders ($ headerArray );
40+ $ serverInfo = self ::getMockServerInfo ($ serverArray );
41+ $ input = self ::getMockInput ($ inputArray );
42+ $ cookieHandler = self ::getMockCookieHandler ($ cookieArray );
43+
44+ $ sut = new ServerRequest (
45+ $ method ,
46+ $ uri ,
47+ $ headers ,
48+ $ serverInfo ,
49+ $ input ,
50+ $ cookieHandler
51+ );
52+
53+ return $ sut ;
54+ }
55+
56+ /** @return MockObject|Uri */
57+ protected function getMockUri (string $ uriPath ):MockObject {
58+ $ mock = self ::createMock (Uri::class);
59+ return $ mock ;
60+ }
61+
62+ /** @return MockObject|RequestHeaders */
63+ protected function getMockHeaders (array $ headers = []):MockObject {
64+ $ mock = self ::createMock (RequestHeaders::class);
65+ return $ mock ;
66+ }
67+
68+ /** @return MockObject|ServerInfo */
69+ protected function getMockServerInfo (array $ server = []):MockObject {
70+ $ mock = self ::createMock (ServerInfo::class);
71+ $ mock ->method ("getParams " )
72+ ->willReturn ($ server );
73+ return $ mock ;
74+ }
75+
76+ /** @return MockObject|Input */
77+ protected function getMockInput (array $ input = []):MockObject {
78+ $ mock = self ::createMock (Input::class);
79+ return $ mock ;
80+ }
81+
82+ /** @return MockObject|CookieHandler */
83+ protected function getMockCookieHandler (array $ cookies = []):MockObject {
84+ $ mock = self ::createMock (CookieHandler::class);
85+ return $ mock ;
86+ }
87+ }
0 commit comments