From 04225de5823749aa9cfaa308ca8394acd2dd7e8f Mon Sep 17 00:00:00 2001 From: Marat Radchenko Date: Sun, 12 May 2019 16:43:20 +0300 Subject: [PATCH] Fix test failures on Windows causes by unexpected \r in JSON serialization --- .../test/java/ru/bozaro/gitlfs/client/HttpReplay.java | 6 +++++- .../main/java/ru/bozaro/gitlfs/common/JsonHelper.java | 10 ++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/gitlfs-client/src/test/java/ru/bozaro/gitlfs/client/HttpReplay.java b/gitlfs-client/src/test/java/ru/bozaro/gitlfs/client/HttpReplay.java index db2f94e..a7f2ab8 100644 --- a/gitlfs-client/src/test/java/ru/bozaro/gitlfs/client/HttpReplay.java +++ b/gitlfs-client/src/test/java/ru/bozaro/gitlfs/client/HttpReplay.java @@ -28,7 +28,11 @@ public HttpReplay(@NotNull List records) { public HttpResponse executeMethod(@NotNull HttpUriRequest request) throws IOException { final HttpRecord record = records.pollFirst(); Assert.assertNotNull(record); - Assert.assertEquals(record.getRequest().toString(), new HttpRecord.Request(request).toString()); + + final String expected = record.getRequest().toString(); + final String actual = new HttpRecord.Request(request).toString(); + Assert.assertEquals(actual, expected); + return record.getResponse().toHttpResponse(); } diff --git a/gitlfs-common/src/main/java/ru/bozaro/gitlfs/common/JsonHelper.java b/gitlfs-common/src/main/java/ru/bozaro/gitlfs/common/JsonHelper.java index f5c6f27..b90dc03 100644 --- a/gitlfs-common/src/main/java/ru/bozaro/gitlfs/common/JsonHelper.java +++ b/gitlfs-common/src/main/java/ru/bozaro/gitlfs/common/JsonHelper.java @@ -2,11 +2,15 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.util.DefaultIndenter; +import com.fasterxml.jackson.core.util.DefaultPrettyPrinter; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.databind.util.StdDateFormat; import org.jetbrains.annotations.NotNull; +import static com.fasterxml.jackson.core.util.DefaultPrettyPrinter.DEFAULT_ROOT_VALUE_SEPARATOR; + /** * Json utility class. * @@ -25,6 +29,12 @@ public static ObjectMapper createMapper() { mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS); mapper.enable(SerializationFeature.INDENT_OUTPUT); mapper.setDateFormat(new StdDateFormat()); + + // By default, pretty printer uses system newline. Explicitly configure it to use \n + mapper.setDefaultPrettyPrinter( + new DefaultPrettyPrinter(DEFAULT_ROOT_VALUE_SEPARATOR) + .withObjectIndenter(new DefaultIndenter(" ", "\n"))); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); return mapper; }