From 897a29a935f8911c777889906dd43891c9d9846f Mon Sep 17 00:00:00 2001 From: Thomas Cederholm Date: Wed, 20 May 2026 16:13:12 +0200 Subject: [PATCH] feat: Add Response.html convenience method --- src/main/java/com/retailsvc/http/Response.java | 6 ++++++ src/test/java/com/retailsvc/http/ResponseTest.java | 11 +++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/main/java/com/retailsvc/http/Response.java b/src/main/java/com/retailsvc/http/Response.java index f3e35b3..69d6f5c 100644 --- a/src/main/java/com/retailsvc/http/Response.java +++ b/src/main/java/com/retailsvc/http/Response.java @@ -101,6 +101,12 @@ public static Response text(int status, String body) { status, body.getBytes(StandardCharsets.UTF_8), "text/plain; charset=UTF-8", Map.of()); } + /** {@code status} with {@code body} written as UTF-8 with {@code Content-Type: text/html}. */ + public static Response html(int status, String body) { + return new Response( + status, body.getBytes(StandardCharsets.UTF_8), "text/html; charset=UTF-8", Map.of()); + } + /** * {@code status} with pre-serialised {@code bytes} written verbatim under {@code contentType}. */ diff --git a/src/test/java/com/retailsvc/http/ResponseTest.java b/src/test/java/com/retailsvc/http/ResponseTest.java index 162c00f..1ffebf1 100644 --- a/src/test/java/com/retailsvc/http/ResponseTest.java +++ b/src/test/java/com/retailsvc/http/ResponseTest.java @@ -4,8 +4,10 @@ import static java.net.HttpURLConnection.HTTP_CREATED; import static java.net.HttpURLConnection.HTTP_NOT_FOUND; import static java.net.HttpURLConnection.HTTP_NOT_IMPLEMENTED; +import static java.net.HttpURLConnection.HTTP_OK; import static org.assertj.core.api.Assertions.assertThat; +import java.nio.charset.StandardCharsets; import java.util.Map; import org.junit.jupiter.api.Test; @@ -64,6 +66,15 @@ void notFoundWithBody() { assertThat(r.body()).isEqualTo(problem); } + @Test + void htmlBody() { + Response r = Response.html(HTTP_OK, "

hi

"); + + assertThat(r.status()).isEqualTo(HTTP_OK); + assertThat(r.contentType()).isEqualTo("text/html; charset=UTF-8"); + assertThat((byte[]) r.body()).isEqualTo("

hi

".getBytes(StandardCharsets.UTF_8)); + } + @Test void notImplementedNoBody() { Response r = Response.notImplemented();