Skip to content

Commit 897a29a

Browse files
committed
feat: Add Response.html convenience method
1 parent ab7e426 commit 897a29a

2 files changed

Lines changed: 17 additions & 0 deletions

File tree

src/main/java/com/retailsvc/http/Response.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,12 @@ public static Response text(int status, String body) {
101101
status, body.getBytes(StandardCharsets.UTF_8), "text/plain; charset=UTF-8", Map.of());
102102
}
103103

104+
/** {@code status} with {@code body} written as UTF-8 with {@code Content-Type: text/html}. */
105+
public static Response html(int status, String body) {
106+
return new Response(
107+
status, body.getBytes(StandardCharsets.UTF_8), "text/html; charset=UTF-8", Map.of());
108+
}
109+
104110
/**
105111
* {@code status} with pre-serialised {@code bytes} written verbatim under {@code contentType}.
106112
*/

src/test/java/com/retailsvc/http/ResponseTest.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@
44
import static java.net.HttpURLConnection.HTTP_CREATED;
55
import static java.net.HttpURLConnection.HTTP_NOT_FOUND;
66
import static java.net.HttpURLConnection.HTTP_NOT_IMPLEMENTED;
7+
import static java.net.HttpURLConnection.HTTP_OK;
78
import static org.assertj.core.api.Assertions.assertThat;
89

10+
import java.nio.charset.StandardCharsets;
911
import java.util.Map;
1012
import org.junit.jupiter.api.Test;
1113

@@ -64,6 +66,15 @@ void notFoundWithBody() {
6466
assertThat(r.body()).isEqualTo(problem);
6567
}
6668

69+
@Test
70+
void htmlBody() {
71+
Response r = Response.html(HTTP_OK, "<h1>hi</h1>");
72+
73+
assertThat(r.status()).isEqualTo(HTTP_OK);
74+
assertThat(r.contentType()).isEqualTo("text/html; charset=UTF-8");
75+
assertThat((byte[]) r.body()).isEqualTo("<h1>hi</h1>".getBytes(StandardCharsets.UTF_8));
76+
}
77+
6778
@Test
6879
void notImplementedNoBody() {
6980
Response r = Response.notImplemented();

0 commit comments

Comments
 (0)