Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ dependencies {
compileOnly group: 'com.squareup.retrofit2', name: 'converter-jackson', version: "${retrofitVersion}"

// https://mvnrepository.com/artifact/com.squareup.okhttp3/logging-interceptor
compileOnly group: 'com.squareup.okhttp3', name: 'logging-interceptor', version: '4.12.0'
compileOnly group: 'com.squareup.okhttp3', name: 'logging-interceptor', version: '5.3.2'

// https://mvnrepository.com/artifact/de.siegmar/logback-gelf
compileOnly group: 'de.siegmar', name: 'logback-gelf', version: '6.1.+'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;
import java.util.zip.GZIPOutputStream;

import static org.junit.jupiter.api.Assertions.*;
import static org.mockito.Mockito.*;

@Tag("unit")
class RetrofitResponseBodyMapperTest {
Expand All @@ -22,21 +22,13 @@ class RetrofitResponseBodyMapperTest {
void isRedactUrl() {
var mapper = new RetrofitResponseBodyMapper(Set.of("https://www.google.com/"), 0);

var response = new Response(
request("GET"),
Protocol.HTTP_1_0,
"message",
200,
null,
new Headers.Builder().build(),
ResponseBody.create("123".getBytes(), MediaType.get("application/text")),
null,
null,
null,
1,
2,
null
);
var response = new Response.Builder()
.request(request("GET"))
.protocol(Protocol.HTTP_1_0)
.message("message")
.code(200)
.body(ResponseBody.create("123".getBytes(), MediaType.get("application/text")))
.build();

var value = mapper.getValue(null, response);

Expand All @@ -48,21 +40,13 @@ void isRedactUrl() {
void promisesBody() {
var mapper = new RetrofitResponseBodyMapper(new HashSet<>(), 0);

var response = new Response(
request("HEAD"),
Protocol.HTTP_1_0,
"message",
201,
null,
new Headers.Builder().build(),
ResponseBody.create("123".getBytes(), MediaType.get("application/text")),
null,
null,
null,
1,
2,
null
);
var response = new Response.Builder()
.request(request("HEAD"))
.protocol(Protocol.HTTP_1_0)
.message("message")
.code(201)
.body(ResponseBody.create("123".getBytes(), MediaType.get("application/text")))
.build();

var value = mapper.getValue(null, response);

Expand All @@ -74,21 +58,14 @@ void promisesBody() {
void bodyHasUnknownEncoding() {
var mapper = new RetrofitResponseBodyMapper(new HashSet<>(), 0);

var response = new Response(
request("GET"),
Protocol.HTTP_1_0,
"message",
201,
null,
new Headers.Builder().add("Content-Encoding", "unknownEncoding").build(),
ResponseBody.create("123".getBytes(), MediaType.get("application/text")),
null,
null,
null,
1,
2,
null
);
var response = new Response.Builder()
.request(request("GET"))
.protocol(Protocol.HTTP_1_0)
.message("message")
.code(201)
.header("Content-Encoding", "unknownEncoding")
.body(ResponseBody.create("123".getBytes(), MediaType.get("application/text")))
.build();

var value = mapper.getValue(null, response);

Expand All @@ -100,21 +77,12 @@ void bodyHasUnknownEncoding() {
void bodyMissing() {
var mapper = new RetrofitResponseBodyMapper(new HashSet<>(), 0);

var response = new Response(
request("GET"),
Protocol.HTTP_1_0,
"message",
201,
null,
new Headers.Builder().build(),
null,
null,
null,
null,
1,
2,
null
);
// In OkHttp 5.x, Response.body() is non-null by design, so we need to mock it
var response = mock(Response.class);
when(response.request()).thenReturn(request("GET"));
when(response.code()).thenReturn(201);
when(response.headers()).thenReturn(new Headers.Builder().build());
when(response.body()).thenReturn(null);

var value = mapper.getValue(null, response);

Expand All @@ -125,21 +93,13 @@ void bodyMissing() {
@DisplayName("Response body is correctly returned")
void bodyAvailable() {
var mapper = new RetrofitResponseBodyMapper(new HashSet<>(), 4096);
var response = new Response(
request("GET"),
Protocol.HTTP_2,
"OK",
200,
null,
new Headers.Builder().build(),
ResponseBody.create("123".getBytes(), MediaType.get("application/text")),
null,
null,
null,
1,
2,
null
);
var response = new Response.Builder()
.request(request("GET"))
.protocol(Protocol.HTTP_2)
.message("OK")
.code(200)
.body(ResponseBody.create("123".getBytes(), MediaType.get("application/text")))
.build();

assertEquals("123", mapper.getValue(null, response));
}
Expand All @@ -148,21 +108,13 @@ void bodyAvailable() {
@DisplayName("Response body is correctly shortened")
void bodyIsShortened() {
var mapper = new RetrofitResponseBodyMapper(new HashSet<>(), 2);
var response = new Response(
request("GET"),
Protocol.HTTP_2,
"OK",
200,
null,
new Headers.Builder().build(),
ResponseBody.create("123".getBytes(), MediaType.get("application/text")),
null,
null,
null,
1,
2,
null
);
var response = new Response.Builder()
.request(request("GET"))
.protocol(Protocol.HTTP_2)
.message("OK")
.code(200)
.body(ResponseBody.create("123".getBytes(), MediaType.get("application/text")))
.build();

assertEquals("12 ... Content size: 3 characters", mapper.getValue(null, response));
}
Expand All @@ -171,21 +123,13 @@ void bodyIsShortened() {
@DisplayName("Response body is correctly returned when empty")
void bodyIsEmpty() {
var mapper = new RetrofitResponseBodyMapper(new HashSet<>(), 4096);
var response = new Response(
request("GET"),
Protocol.HTTP_2,
"OK",
200,
null,
new Headers.Builder().build(),
ResponseBody.create(new byte[]{}, MediaType.get("application/text")),
null,
null,
null,
1,
2,
null
);
var response = new Response.Builder()
.request(request("GET"))
.protocol(Protocol.HTTP_2)
.message("OK")
.code(200)
.body(ResponseBody.create(new byte[]{}, MediaType.get("application/text")))
.build();

assertEquals("", mapper.getValue(null, response));
}
Expand All @@ -194,21 +138,14 @@ void bodyIsEmpty() {
@DisplayName("Response body is correctly returned when response is gzipped")
void bodyIsGzipped() throws IOException {
var mapper = new RetrofitResponseBodyMapper(new HashSet<>(), 4096);
var response = new Response(
request("GET"),
Protocol.HTTP_2,
"OK",
200,
null,
new Headers.Builder().add("Content-Encoding", "gzip").build(),
ResponseBody.create(gzip("some amount of data"), MediaType.get("application/text")),
null,
null,
null,
1,
2,
null
);
var response = new Response.Builder()
.request(request("GET"))
.protocol(Protocol.HTTP_2)
.message("OK")
.code(200)
.header("Content-Encoding", "gzip")
.body(ResponseBody.create(gzip("some amount of data"), MediaType.get("application/text")))
.build();

assertEquals("some amount of data", mapper.getValue(null, response));
}
Expand All @@ -220,16 +157,13 @@ void responseIsNull() {
}

private Request request(String method) {
return new Request(
new HttpUrl.Builder()
return new Request.Builder()
.url(new HttpUrl.Builder()
.scheme("https")
.host("www.google.com")
.build(),
method,
new Headers.Builder().build(),
RequestBody.create("123".getBytes(), MediaType.get("application/text")),
new HashMap<>()
);
.build())
.method(method, method.equals("GET") || method.equals("HEAD") ? null : RequestBody.create("123".getBytes(), MediaType.get("application/text")))
.build();
}

private byte[] gzip(String data) throws IOException {
Expand Down