Skip to content

Commit b080898

Browse files
committed
test: update phpunit tests post-refactor
1 parent 951a23d commit b080898

File tree

2 files changed

+85
-9
lines changed

2 files changed

+85
-9
lines changed

test/phpunit/ApplicationTest.php

Lines changed: 78 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
use Gt\Http\Response;
77
use Gt\Http\ServerRequest;
88
use Gt\Http\Uri;
9+
use Gt\Logger\Log;
910
use Gt\ProtectedGlobal\Protection;
1011
use GT\WebEngine\Application;
1112
use 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
}

test/phpunit/View/BaseViewTest.php

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,24 +29,25 @@ public function getMetadata($key = null) { return null; }
2929

3030
private function newTestableView(StreamInterface $stream): BaseView {
3131
return new class($stream) extends BaseView {
32-
public function createViewModel():mixed { return ""; }
32+
public function createViewModel():mixed { return new \Gt\Dom\HTMLDocument(""); }
3333
public function getViewFiles(): array { return $this->viewFileArray; }
3434
};
3535
}
3636

3737
public function testStream_writesStringToOutput():void {
3838
$stream = $this->newRecordingStream();
3939
$sut = $this->newTestableView($stream);
40-
$sut->stream("hello world");
41-
self::assertSame("hello world", (string)$stream);
40+
$doc = new \Gt\Dom\HTMLDocument("hello world");
41+
$sut->stream($doc);
42+
self::assertSame((string)$doc, (string)$stream);
4243
}
4344

4445
public function testStream_castsNonStringToString():void {
4546
$stream = $this->newRecordingStream();
4647
$sut = $this->newTestableView($stream);
47-
$object = new class(){ public function __toString():string { return "obj-str"; } };
48-
$sut->stream($object);
49-
self::assertSame("obj-str", (string)$stream);
48+
$doc = new \Gt\Dom\HTMLDocument("<p>obj-str</p>");
49+
$sut->stream($doc);
50+
self::assertSame((string)$doc, (string)$stream);
5051
}
5152

5253
public function testAddViewFile_appendsInOrder():void {

0 commit comments

Comments
 (0)