1414import java .util .stream .Stream ;
1515
1616import static org .assertj .core .api .Assertions .assertThat ;
17+ import static org .example .http .HttpResponseBuilder .*;
1718
1819class HttpResponseBuilderTest {
1920
@@ -25,13 +26,14 @@ private String asString(byte[] response) {
2526 @ Test
2627 void build_returnsValidHttpResponse () {
2728 HttpResponseBuilder builder = new HttpResponseBuilder ();
29+ builder .setStatusCode (SC_OK );
2830 builder .setBody ("Hello" );
2931
3032 byte [] result = builder .build ();
3133 String resultStr = asString (result );
3234
3335 assertThat (resultStr )
34- .contains ("HTTP/1.1 200 OK" )
36+ .contains ("HTTP/1.1 " + SC_OK + " OK" )
3537 .contains ("Content-Length: 5" )
3638 .contains ("\r \n \r \n " )
3739 .contains ("Hello" );
@@ -49,6 +51,7 @@ void build_returnsValidHttpResponse() {
4951 @ DisplayName ("Should calculate correct Content-Length for various strings" )
5052 void build_handlesUtf8ContentLength (String body , int expectedLength ) {
5153 HttpResponseBuilder builder = new HttpResponseBuilder ();
54+ builder .setStatusCode (SC_OK );
5255 builder .setBody (body );
5356
5457 byte [] result = builder .build ();
@@ -62,6 +65,7 @@ void build_handlesUtf8ContentLength(String body, int expectedLength) {
6265 void setHeader_addsHeaderToResponse () {
6366 HttpResponseBuilder builder = new HttpResponseBuilder ();
6467 builder .setHeader ("Content-Type" , "text/html; charset=UTF-8" );
68+ builder .setStatusCode (SC_OK );
6569 builder .setBody ("Hello" );
6670
6771 byte [] result = builder .build ();
@@ -76,6 +80,7 @@ void setHeader_allowsMultipleHeaders() {
7680 HttpResponseBuilder builder = new HttpResponseBuilder ();
7781 builder .setHeader ("Content-Type" , "application/json" );
7882 builder .setHeader ("Cache-Control" , "no-cache" );
83+ builder .setStatusCode (SC_OK );
7984 builder .setBody ("{}" );
8085
8186 byte [] result = builder .build ();
@@ -107,6 +112,7 @@ void setHeader_allowsMultipleHeaders() {
107112 void setContentTypeFromFilename_detectsVariousTypes (String filename , String expectedContentType ) {
108113 HttpResponseBuilder builder = new HttpResponseBuilder ();
109114 builder .setContentTypeFromFilename (filename );
115+ builder .setStatusCode (SC_OK );
110116 builder .setBody ("test content" );
111117
112118 byte [] result = builder .build ();
@@ -130,6 +136,7 @@ void setContentTypeFromFilename_detectsVariousTypes(String filename, String expe
130136 void setContentTypeFromFilename_allCases (String filename , String expectedContentType ) {
131137 HttpResponseBuilder builder = new HttpResponseBuilder ();
132138 builder .setContentTypeFromFilename (filename );
139+ builder .setStatusCode (SC_OK );
133140 builder .setBody ("test" );
134141
135142 byte [] result = builder .build ();
@@ -143,6 +150,7 @@ void setContentTypeFromFilename_allCases(String filename, String expectedContent
143150 @ DisplayName ("Should not duplicate headers when manually set" )
144151 void build_doesNotDuplicateHeaders (String headerName , String manualValue , String bodyContent ) {
145152 HttpResponseBuilder builder = new HttpResponseBuilder ();
153+ builder .setStatusCode (SC_OK );
146154 builder .setHeader (headerName , manualValue );
147155 builder .setBody (bodyContent );
148156
@@ -179,6 +187,7 @@ void setHeaders_preservesCaseInsensitivity() {
179187 builder .setHeaders (headers );
180188
181189 builder .setHeader ("Content-Length" , "100" );
190+ builder .setStatusCode (SC_OK );
182191 builder .setBody ("Hello" );
183192
184193 byte [] result = builder .build ();
@@ -287,6 +296,7 @@ void build_handlesUnknownStatusCodes(int statusCode) {
287296 @ DisplayName ("Should auto-append headers when not manually set" )
288297 void build_autoAppendsHeadersWhenNotSet () {
289298 HttpResponseBuilder builder = new HttpResponseBuilder ();
299+ builder .setStatusCode (SC_OK );
290300 builder .setBody ("Hello" );
291301
292302 byte [] result = builder .build ();
@@ -303,6 +313,7 @@ void build_combinesCustomAndAutoHeaders() {
303313 HttpResponseBuilder builder = new HttpResponseBuilder ();
304314 builder .setHeader ("Content-Type" , "text/html" );
305315 builder .setHeader ("Cache-Control" , "no-cache" );
316+ builder .setStatusCode (SC_OK );
306317 builder .setBody ("Hello" );
307318
308319 byte [] result = builder .build ();
@@ -328,6 +339,7 @@ void setHeader_caseInsensitive(String headerName, String headerValue) {
328339 HttpResponseBuilder builder = new HttpResponseBuilder ();
329340
330341 builder .setHeader (headerName , headerValue );
342+ builder .setStatusCode (SC_OK );
331343 builder .setBody ("Hello" );
332344
333345 byte [] result = builder .build ();
@@ -350,13 +362,14 @@ void setHeader_caseInsensitive(String headerName, String headerValue) {
350362 @ DisplayName ("Should handle empty and null body" )
351363 void build_emptyAndNullBody (String body , int expectedLength ) {
352364 HttpResponseBuilder builder = new HttpResponseBuilder ();
365+ builder .setStatusCode (SC_OK );
353366 builder .setBody (body );
354367
355368 byte [] result = builder .build ();
356369 String resultStr = asString (result );
357370
358371 assertThat (resultStr )
359- .contains ("HTTP/1.1 200 OK" )
372+ .contains ("HTTP/1.1 " + SC_OK + " OK" )
360373 .contains ("Content-Length: " + expectedLength );
361374 }
362375
@@ -373,6 +386,7 @@ void setHeader_overridesPreviousValue(String headerName, String firstValue, Stri
373386 HttpResponseBuilder builder = new HttpResponseBuilder ();
374387 builder .setHeader (headerName , firstValue );
375388 builder .setHeader (headerName , secondValue ); // Override
389+ builder .setStatusCode (SC_OK );
376390 builder .setBody ("Test" );
377391
378392 byte [] result = builder .build ();
@@ -390,6 +404,7 @@ void setHeader_overridesPreviousValue(String headerName, String firstValue, Stri
390404 void build_autoAppendsSpecificHeaders (String body , boolean setContentLength , boolean setConnection ,
391405 String expectedContentLength , String expectedConnection ) {
392406 HttpResponseBuilder builder = new HttpResponseBuilder ();
407+ builder .setStatusCode (SC_OK );
393408
394409 if (setContentLength ) {
395410 builder .setHeader ("Content-Length" , "999" );
@@ -425,6 +440,7 @@ private static Stream<Arguments> provideAutoAppendScenarios() {
425440 @ DisplayName ("Should preserve binary content without corruption" )
426441 void build_preservesBinaryContent () {
427442 HttpResponseBuilder builder = new HttpResponseBuilder ();
443+ builder .setStatusCode (SC_OK );
428444
429445 // Create binary data with non-UTF-8 bytes
430446 byte [] binaryData = new byte []{
@@ -455,4 +471,4 @@ void build_preservesBinaryContent() {
455471
456472 assertThat (actualBody ).isEqualTo (binaryData );
457473 }
458- }
474+ }
0 commit comments