66use Gt \Http \Response ;
77use Gt \Http \ServerRequest ;
88use Gt \Http \Uri ;
9+ use Gt \Logger \Log ;
910use Gt \ProtectedGlobal \Protection ;
1011use GT \WebEngine \Application ;
1112use GT \WebEngine \Debug \OutputBuffer ;
@@ -33,9 +34,22 @@ public function testStart_callsRedirectExecute():void {
3334 $ requestFactory = self ::createMock (RequestFactory::class);
3435 $ requestFactory ->method ("createServerRequestFromGlobalState " )
3536 ->willReturn ($ serverRequest );
37+ $ dispatcher = self ::createMock (Dispatcher::class);
38+ $ response = self ::createMock (Response::class);
39+ $ response ->method ('getStatusCode ' )->willReturn (200 );
40+ $ response ->method ('getHeaders ' )->willReturn (['Content-Type ' => ['text/html ' ]]);
41+ $ response ->method ('getBody ' )->willReturn (new \Gt \Http \Stream ());
42+ $ dispatcher ->method ('generateResponse ' )->willReturn ($ response );
43+ $ dispatcherFactory = self ::createMock (DispatcherFactory::class);
44+ $ dispatcherFactory ->method ('create ' )->willReturn ($ dispatcher );
45+
46+ // Avoid warnings by ensuring server params contain REMOTE_ADDR
47+ $ serverRequest ->method ('getServerParams ' )->willReturn (['REMOTE_ADDR ' => '127.0.0.1 ' ]);
48+
3649 $ sut = new Application (
3750 redirect: $ redirect ,
3851 requestFactory: $ requestFactory ,
52+ dispatcherFactory: $ dispatcherFactory ,
3953 globalProtection: $ globalProtection ,
4054 );
4155 $ sut ->start ();
@@ -50,8 +64,27 @@ public function testStart_callsTimerFunctions():void {
5064 $ timer ->expects (self ::once ())
5165 ->method ("logDelta " );
5266
67+ $ dispatcher = self ::createMock (Dispatcher::class);
68+ $ response = self ::createMock (Response::class);
69+ $ response ->method ('getStatusCode ' )->willReturn (200 );
70+ $ response ->method ('getHeaders ' )->willReturn (['Content-Type ' => ['text/html ' ]]);
71+ $ response ->method ('getBody ' )->willReturn (new \Gt \Http \Stream ());
72+ $ dispatcher ->method ('generateResponse ' )->willReturn ($ response );
73+ $ dispatcherFactory = self ::createMock (DispatcherFactory::class);
74+ $ dispatcherFactory ->method ('create ' )->willReturn ($ dispatcher );
75+
76+ $ requestFactory = self ::createMock (RequestFactory::class);
77+ $ serverRequest = self ::createMock (ServerRequest::class);
78+ $ serverRequest ->method ('getServerParams ' )->willReturn (['REMOTE_ADDR ' => '127.0.0.1 ' ]);
79+ $ serverRequest ->method ('getUri ' )->willReturn (self ::createMock (Uri::class));
80+ $ serverRequest ->method ('getHeaderLine ' )->with ('accept ' )->willReturn ('*/* ' );
81+ $ serverRequest ->method ('getMethod ' )->willReturn ('GET ' );
82+ $ requestFactory ->method ('createServerRequestFromGlobalState ' )->willReturn ($ serverRequest );
83+
5384 $ sut = new Application (
5485 timer: $ timer ,
86+ requestFactory: $ requestFactory ,
87+ dispatcherFactory: $ dispatcherFactory ,
5588 );
5689 $ sut ->start ();
5790 }
@@ -65,22 +98,60 @@ public function testStart_callsOutputBufferFunctions():void {
6598
6699 $ globalProtection = self ::createMock (Protection::class);
67100
101+ $ dispatcher = self ::createMock (Dispatcher::class);
102+ $ response = self ::createMock (Response::class);
103+ $ response ->method ('getStatusCode ' )->willReturn (200 );
104+ $ response ->method ('getHeaders ' )->willReturn (['Content-Type ' => ['text/html ' ]]);
105+ $ response ->method ('getBody ' )->willReturn (new \Gt \Http \Stream ());
106+ $ dispatcher ->method ('generateResponse ' )->willReturn ($ response );
107+ $ dispatcherFactory = self ::createMock (DispatcherFactory::class);
108+ $ dispatcherFactory ->method ('create ' )->willReturn ($ dispatcher );
109+
110+ $ requestFactory = self ::createMock (RequestFactory::class);
111+ $ serverRequest = self ::createMock (ServerRequest::class);
112+ $ serverRequest ->method ('getServerParams ' )->willReturn (['REMOTE_ADDR ' => '127.0.0.1 ' ]);
113+ $ serverRequest ->method ('getUri ' )->willReturn (self ::createMock (Uri::class));
114+ $ serverRequest ->method ('getHeaderLine ' )->with ('accept ' )->willReturn ('*/* ' );
115+ $ serverRequest ->method ('getMethod ' )->willReturn ('GET ' );
116+ $ requestFactory ->method ('createServerRequestFromGlobalState ' )->willReturn ($ serverRequest );
117+
68118 $ sut = new Application (
69119 outputBuffer: $ outputBuffer ,
120+ requestFactory: $ requestFactory ,
121+ dispatcherFactory: $ dispatcherFactory ,
70122 globalProtection: $ globalProtection ,
71123 );
72124 $ sut ->start ();
125+ self ::addToAssertionCount (1 );
73126 }
74127
75128 public function testStart_callsRequestFactoryFunctions ():void {
76129 $ requestFactory = self ::createMock (RequestFactory::class);
77130 $ requestFactory ->expects (self ::once ())
78131 ->method ("createServerRequestFromGlobalState " );
79132
133+ $ dispatcher = self ::createMock (Dispatcher::class);
134+ $ response = self ::createMock (Response::class);
135+ $ response ->method ('getStatusCode ' )->willReturn (200 );
136+ $ response ->method ('getHeaders ' )->willReturn (['Content-Type ' => ['text/html ' ]]);
137+ $ response ->method ('getBody ' )->willReturn (new \Gt \Http \Stream ());
138+ $ dispatcher ->method ('generateResponse ' )->willReturn ($ response );
139+ $ dispatcherFactory = self ::createMock (DispatcherFactory::class);
140+ $ dispatcherFactory ->method ('create ' )->willReturn ($ dispatcher );
141+
142+ $ serverRequest = self ::createMock (ServerRequest::class);
143+ $ serverRequest ->method ('getServerParams ' )->willReturn (['REMOTE_ADDR ' => '127.0.0.1 ' ]);
144+ $ serverRequest ->method ('getUri ' )->willReturn (self ::createMock (Uri::class));
145+ $ serverRequest ->method ('getHeaderLine ' )->with ('accept ' )->willReturn ('*/* ' );
146+ $ serverRequest ->method ('getMethod ' )->willReturn ('GET ' );
147+ $ requestFactory ->method ('createServerRequestFromGlobalState ' )->willReturn ($ serverRequest );
148+
80149 $ sut = new Application (
81150 requestFactory: $ requestFactory ,
151+ dispatcherFactory: $ dispatcherFactory ,
82152 );
83153 $ sut ->start ();
154+ self ::addToAssertionCount (1 );
84155 }
85156
86157 /**
@@ -102,11 +173,14 @@ public function testStart_callsDispatcherFactoryFunctions():void {
102173 ->willReturn ($ response );
103174
104175 $ response ->expects (self ::once ())
105- ->method ("getStatusCode " );
176+ ->method ("getStatusCode " )
177+ ->willReturn (200 );
106178 $ response ->expects (self ::once ())
107- ->method ("getHeaders " );
179+ ->method ("getHeaders " )
180+ ->willReturn (['Content-Type ' => ['text/html ' ]]);
108181 $ response ->expects (self ::once ())
109- ->method ("getBody " );
182+ ->method ("getBody " )
183+ ->willReturn (new \Gt \Http \Stream ());
110184
111185 $ globalProtection = self ::createMock (Protection::class);
112186
@@ -115,5 +189,6 @@ public function testStart_callsDispatcherFactoryFunctions():void {
115189 globalProtection: $ globalProtection ,
116190 );
117191 $ sut ->start ();
192+ self ::addToAssertionCount (1 );
118193 }
119194}
0 commit comments