diff --git a/README.md b/README.md index 8797d3fef..5c0e6ceee 100644 --- a/README.md +++ b/README.md @@ -83,7 +83,7 @@ If you're using Maven, add this to your pom file: com.approvaltests approvaltests - 24.2.0 + 24.3.0 test ``` @@ -92,7 +92,7 @@ If you're using Maven, add this to your pom file: ```gradle dependencies { - testImplementation("com.approvaltests:approvaltests:24.2.0") + testImplementation("com.approvaltests:approvaltests:24.3.0") } ``` diff --git a/approvaltests-tests/pom.xml b/approvaltests-tests/pom.xml index 41349db35..2f06d3b4c 100644 --- a/approvaltests-tests/pom.xml +++ b/approvaltests-tests/pom.xml @@ -69,7 +69,7 @@ org.easymock easymock - 5.3.0 + 5.4.0 test @@ -81,7 +81,7 @@ net.jqwik jqwik - 1.8.5 + 1.9.0 @@ -97,12 +97,12 @@ com.fasterxml.jackson.core jackson-core - 2.17.1 + 2.17.2 com.fasterxml.jackson.core jackson-databind - 2.17.1 + 2.17.2 org.apache.camel @@ -118,7 +118,7 @@ commons-logging commons-logging - 1.3.2 + 1.3.3 com.sun.mail @@ -128,7 +128,7 @@ com.github.javaparser javaparser-core - 3.26.0 + 3.26.1 @@ -140,7 +140,7 @@ maven-surefire-plugin - 3.3.0 + 3.3.1 DiffReporter,QuietReporter diff --git a/approvaltests-tests/src/test/java/org/approvaltests/DocumentHelpersTest.listAllVerifyFunctions.approved.md b/approvaltests-tests/src/test/java/org/approvaltests/DocumentHelpersTest.listAllVerifyFunctions.approved.md index e6f4cfb4c..332338058 100644 --- a/approvaltests-tests/src/test/java/org/approvaltests/DocumentHelpersTest.listAllVerifyFunctions.approved.md +++ b/approvaltests-tests/src/test/java/org/approvaltests/DocumentHelpersTest.listAllVerifyFunctions.approved.md @@ -51,10 +51,11 @@ * CombinationApprovals. [verifyBestCoveringPairs ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/combinations/CombinationApprovals.java#L291-L299) (Function7, Object[], Object[], Object[], Object[], Object[], Object[], Object[], $\color{#AAA}{\textsf{Options}}$) * CombinationApprovals. [verifyBestCoveringPairs ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/combinations/CombinationApprovals.java#L309-L317) (Function8, Object[], Object[], Object[], Object[], Object[], Object[], Object[], Object[], $\color{#AAA}{\textsf{Options}}$) * CombinationApprovals. [verifyBestCoveringPairs ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/combinations/CombinationApprovals.java#L326-L333) (Function9, Object[], Object[], Object[], Object[], Object[], Object[], Object[], Object[], Object[], $\color{#AAA}{\textsf{Options}}$) - * JsonApprovals. [verifyAsJson ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/JsonApprovals.java#L44-L47) (Object, $\color{#AAA}{\textsf{Options}}$) - * JsonApprovals. [verifyAsJson ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/JsonApprovals.java#L39-L42) (Object, Function1, $\color{#AAA}{\textsf{Options}}$) - * JsonApprovals. [verifyJson ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/JsonApprovals.java#L18-L21) (String, $\color{#AAA}{\textsf{Options}}$) - * JsonApprovals. [verifyJson ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/JsonApprovals.java#L26-L30) (String, boolean, $\color{#AAA}{\textsf{Options}}$) + * JsonApprovals. [verifyAsJson ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/JsonApprovals.java#L53-L56) (Object, $\color{#AAA}{\textsf{Options}}$) + * JsonApprovals. [verifyAsJson ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/JsonApprovals.java#L48-L51) (Object, Function1, $\color{#AAA}{\textsf{Options}}$) + * JsonApprovals. [verifyJson ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/JsonApprovals.java#L17-L20) (String, $\color{#AAA}{\textsf{Options}}$) + * JsonApprovals. [verifyJson ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/JsonApprovals.java#L35-L39) (String, boolean, $\color{#AAA}{\textsf{Options}}$) + * JsonApprovals. [verifyJson ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/JsonApprovals.java#L29-L34) (String, boolean, Function1, $\color{#AAA}{\textsf{Options}}$) * JsonJacksonApprovals. [verifyAsJson ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/JsonJacksonApprovals.java#L14-L17) (Object, $\color{#AAA}{\textsf{Options}}$) * JsonXstreamApprovals. [verifyAsJson ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/JsonXstreamApprovals.java#L18-L21) (Object, $\color{#AAA}{\textsf{Options}}$) * VelocityApprovals. [verify ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/velocity/VelocityApprovals.java#L16-L24) (ContextAware, $\color{#AAA}{\textsf{Options}}$) diff --git a/approvaltests-tests/src/test/java/org/approvaltests/JsonApprovalsTest.java b/approvaltests-tests/src/test/java/org/approvaltests/JsonApprovalsTest.java new file mode 100644 index 000000000..bdabf71b7 --- /dev/null +++ b/approvaltests-tests/src/test/java/org/approvaltests/JsonApprovalsTest.java @@ -0,0 +1,28 @@ +package org.approvaltests; + +import com.spun.util.Wrapper; +import org.junit.jupiter.api.Test; + +import java.time.LocalDateTime; + +public class JsonApprovalsTest +{ + @Test + void nullDateTest() + { + LocalDateWrapper localDateWrapper = new LocalDateWrapper(); + JsonApprovals.verifyAsJson(localDateWrapper, g -> g.serializeNulls()); + } + private class LocalDateWrapper + { + public LocalDateTime getLocalDate() + { + return localDate; + } + public void setLocalDate(LocalDateTime localDate) + { + this.localDate = localDate; + } + private LocalDateTime localDate; + } +} diff --git a/approvaltests-tests/src/test/java/org/approvaltests/JsonApprovalsTest.nullDateTest.approved.json b/approvaltests-tests/src/test/java/org/approvaltests/JsonApprovalsTest.nullDateTest.approved.json new file mode 100644 index 000000000..6c31a16c8 --- /dev/null +++ b/approvaltests-tests/src/test/java/org/approvaltests/JsonApprovalsTest.nullDateTest.approved.json @@ -0,0 +1,3 @@ +{ + "localDate": null +} \ No newline at end of file diff --git a/approvaltests-tests/src/test/java/org/approvaltests/JsonFormattingTest.java b/approvaltests-tests/src/test/java/org/approvaltests/JsonFormattingTest.java index 04f93ae5d..993f2bdc8 100644 --- a/approvaltests-tests/src/test/java/org/approvaltests/JsonFormattingTest.java +++ b/approvaltests-tests/src/test/java/org/approvaltests/JsonFormattingTest.java @@ -69,4 +69,11 @@ public void testJsonFieldOrdering() JsonApprovals.verifyJson(JsonUtils.reorderFields(json1)); JsonApprovals.verifyJson(JsonUtils.reorderFields(json2)); } + @Test + public void testJsonFieldOrderingWithNulls() + { + Approvals.settings().allowMultipleVerifyCallsForThisMethod(); + String json1 = "{\"infos\":{\"address\":null,\"phone\":\"my phone\"},\"insurance\":{\"forks\":[14,53,123],\"prices\":[5,8,\"3%\"]}}"; + JsonApprovals.verifyJson(json1, true, g -> g.serializeNulls()); + } } diff --git a/approvaltests-tests/src/test/java/org/approvaltests/JsonFormattingTest.testJsonFieldOrderingWithNulls.approved.json b/approvaltests-tests/src/test/java/org/approvaltests/JsonFormattingTest.testJsonFieldOrderingWithNulls.approved.json new file mode 100644 index 000000000..47bfd23f7 --- /dev/null +++ b/approvaltests-tests/src/test/java/org/approvaltests/JsonFormattingTest.testJsonFieldOrderingWithNulls.approved.json @@ -0,0 +1,18 @@ +{ + "infos": { + "address": null, + "phone": "my phone" + }, + "insurance": { + "forks": [ + 14, + 53, + 123 + ], + "prices": [ + 5, + 8, + "3%" + ] + } +} \ No newline at end of file diff --git a/approvaltests-util-tests/pom.xml b/approvaltests-util-tests/pom.xml index 353f18cad..c9d79695a 100644 --- a/approvaltests-util-tests/pom.xml +++ b/approvaltests-util-tests/pom.xml @@ -83,7 +83,7 @@ maven-surefire-plugin - 3.3.0 + 3.3.1 diff --git a/approvaltests-util-tests/src/test/java/com/spun/util/persistence/LoadersAndSaversExamplesTest.java b/approvaltests-util-tests/src/test/java/com/spun/util/persistence/LoadersAndSaversExamplesTest.java index 1341b63ea..a9babf333 100644 --- a/approvaltests-util-tests/src/test/java/com/spun/util/persistence/LoadersAndSaversExamplesTest.java +++ b/approvaltests-util-tests/src/test/java/com/spun/util/persistence/LoadersAndSaversExamplesTest.java @@ -86,17 +86,37 @@ public void sendOutSeniorDiscounts(DataBase database, MailServer mailServer) } // end-snippet } - class Step3 + class Step2b { - // begin-snippet: step3 + // begin-snippet: step2_b public void sendOutSeniorDiscounts(DataBase database, MailServer mailServer) { - sendOutSeniorDiscounts(mailServer, database::getSeniorCustomers); // + + Loader> seniorCustomerLoader = database::getSeniorCustomers; + List seniorCustomers = seniorCustomerLoader.load(); + // ... + // end-snippet + for (Customer customer : seniorCustomers) + { + Discount seniorDiscount = getSeniorDiscount(); + String message = generateDiscountMessage(customer, seniorDiscount); + mailServer.sendMessage(customer, message); + } + } + } + class Step3a + { + // begin-snippet: step3_a + public void sendOutSeniorDiscounts(DataBase database, MailServer mailServer) + { + Loader> seniorCustomerLoader = database::getSeniorCustomers; + sendOutSeniorDiscounts(mailServer, seniorCustomerLoader); // + } // + // + - public void sendOutSeniorDiscounts(MailServer mailServer, Loader> seniorCustomerLoader) + public void sendOutSeniorDiscounts(MailServer mailServer, Loader> seniorCustomerLoader) // + { // + List seniorCustomers = seniorCustomerLoader.load(); + // ... + // end-snippet for (Customer customer : seniorCustomers) { Discount seniorDiscount = getSeniorDiscount(); @@ -104,7 +124,25 @@ public void sendOutSeniorDiscounts(MailServer mailServer, Loader> mailServer.sendMessage(customer, message); } } + // begin-snippet: step0_b + @Test + public void senior_customer_list_includes_only_those_over_age_65() + { + Loader> mailingList = () -> List.of(new Customer("Bob"), new Customer("Mary"), + new Customer("Tom")); + MailServer mailServer = initializeMailServer(); + sendOutSeniorDiscounts(mailServer, mailingList); + Approvals.verifyAll("", mailServer.getRecipients()); + } // end-snippet + private MailServer initializeMailServer() + { + return new MailServer(); + } + private DataBase initializeDatabase() + { + return null; + } } private String generateDiscountMessage(Customer customer, Discount seniorDiscount) { diff --git a/approvaltests-util/docs/how_to/LoadersAndSavers.md b/approvaltests-util/docs/how_to/LoadersAndSavers.md index 079258347..e9e2acdb6 100644 --- a/approvaltests-util/docs/how_to/LoadersAndSavers.md +++ b/approvaltests-util/docs/how_to/LoadersAndSavers.md @@ -120,6 +120,7 @@ List.of(new Customer("Bob, Jones, 123 Elm St., Tempe, AZ, 14-MAR-1958"), ### Step 4: In the original method, replace the function call with a Loader +
  public void sendOutSeniorDiscounts(DataBase database, MailServer mailServer) {
     List<Customer> seniorCustomers = database.getSeniorCustomers(); 
@@ -145,41 +146,57 @@ List.of(new Customer("Bob, Jones, 123 Elm St., Tempe, AZ, 14-MAR-1958"),
 
 Step 5: Now we introduce the new loader function as a parameter to the original function. (If you use the IDE's refactoring tools to do this it will save a lot of effort).
 
-```
-public void sendOutSeniorDiscounts(DataBase database, MailServer mailServer) {
-
-    List<Customer> seniorCustomers = ((Loader<List) () -> database.getSeniorCustomers()).load();
-
-        // ...
-
-}
-```
-
-becomes
-
-```
-public void sendOutSeniorDiscounts(DataBase database, MailServer mailServer, Loader<List seniorCustomerLoader) {
-
-    List<Customer> seniorCustomers = seniorCustomerLoader.load();
-
-    // ...
-
-}
-```
-
-Step 6: Update the calls to this function (including tests) to use the new Loader parameter.
+
 
-public void senior_customer_list_includes_only_those_over_age_65() {
-
-    MailServer mailServer = // initialize server
+
+        public void sendOutSeniorDiscounts(DataBase database, MailServer mailServer) {
+            Loader<List<Customer>> seniorCustomerLoader = database::getSeniorCustomers;
+            List<Customer> seniorCustomers = seniorCustomerLoader.load();
+            // ...
+        }
+
+# ⇓ extract method +
+        public void sendOutSeniorDiscounts(DataBase database, MailServer mailServer) {
+            Loader<List<Customer>> seniorCustomerLoader = database::getSeniorCustomers;
+            sendOutSeniorDiscounts(mailServer, seniorCustomerLoader); 
+        } 
+          
+        public void sendOutSeniorDiscounts(MailServer mailServer, Loader<List<Customer>> seniorCustomerLoader) { 
+            List<Customer> seniorCustomers = seniorCustomerLoader.load();
+            // ...
+        }
+
-  List<Customer> seniorCustomers = List.of(new Customer("Bob", "Jones", /\* ... /), / ... \*/); +Step 6: Update the unit tests to use the new Loader parameter. +We have now removed the reliance on the database to retrieve the data. +We still rely on a mail server to send the results. -  sendOutSeniorDiscounts(null, mailServer, () -> seniorCustomers)); + -  Approvals.verifyAll(mailServer.getRecipients()); +
+    @Test
+    public void senior_customer_list_includes_only_those_over_age_65()
+    {
+      DataBase database = initializeDatabase(); 
+      MailServer mailServer = initializeMailServer();
+      sendOutSeniorDiscounts( mailServer, database ); 
+      Approvals.verifyAll("", mailServer.getRecipients());
+    }
+
+# ⇓ +
+    @Test
+    public void senior_customer_list_includes_only_those_over_age_65()
+    {
+      DataBase database = initializeDatabase();  
+      Loader<List<Customer>> mailingList = () -> List.of(new Customer("Bob"), new Customer("Mary"), new Customer("Tom")); 
+      MailServer mailServer = initializeMailServer();
+      sendOutSeniorDiscounts( mailServer, database  mailingList ); 
+      Approvals.verifyAll("", mailServer.getRecipients());
+    }
+
-} Step 7: Now we can remove the DataBase as a parameter altogether. diff --git a/approvaltests-util/pom.xml b/approvaltests-util/pom.xml index 6bcaf41b3..278a75a06 100644 --- a/approvaltests-util/pom.xml +++ b/approvaltests-util/pom.xml @@ -69,7 +69,7 @@ org.apache.commons commons-lang3 - 3.14.0 + 3.16.0 diff --git a/approvaltests-util/src/main/java/com/spun/util/JsonUtils.java b/approvaltests-util/src/main/java/com/spun/util/JsonUtils.java index 90cfee33b..feee66f20 100644 --- a/approvaltests-util/src/main/java/com/spun/util/JsonUtils.java +++ b/approvaltests-util/src/main/java/com/spun/util/JsonUtils.java @@ -66,9 +66,13 @@ private static GsonBuilder addHandlingForDateObjects(GsonBuilder builder) return builder; } public static String reorderFields(String json) + { + return reorderFields(json, g -> g); + } + public static String reorderFields(String json, Function1 gsonBuilder) { JsonObject sortedJsonObject = sortJsonObject(json); - return asJson(sortedJsonObject); + return asJson(sortedJsonObject, gsonBuilder); } public static JsonObject sortJsonObject(String json) { @@ -112,7 +116,14 @@ public static class LocalDateTimeAdapter extends TypeAdapter @Override public void write(JsonWriter jsonWriter, LocalDateTime instant) throws IOException { - jsonWriter.value(instant.toString()); + if (instant == null) + { + jsonWriter.nullValue(); + } + else + { + jsonWriter.value("" + instant); + } } @Override public LocalDateTime read(JsonReader jsonReader) throws IOException diff --git a/approvaltests/docs/how_to/CreateCustomizedVerifyMethods.md b/approvaltests/docs/how_to/CreateCustomizedVerifyMethods.md index 18fef113e..b13b5dccb 100644 --- a/approvaltests/docs/how_to/CreateCustomizedVerifyMethods.md +++ b/approvaltests/docs/how_to/CreateCustomizedVerifyMethods.md @@ -20,7 +20,7 @@ public static void verifyAsJson(Object o, Options options) Approvals.verify(JsonUtils.asJson(o), options.forFile().withExtension(".json")); } ``` -snippet source | anchor +snippet source | anchor ## Create a `Verifiable` Object diff --git a/approvaltests/docs/reference/Verify.md b/approvaltests/docs/reference/Verify.md index f771607a4..0f40382d4 100644 --- a/approvaltests/docs/reference/Verify.md +++ b/approvaltests/docs/reference/Verify.md @@ -67,10 +67,11 @@ Here is a list: * CombinationApprovals. [verifyBestCoveringPairs ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/combinations/CombinationApprovals.java#L291-L299) (Function7, Object[], Object[], Object[], Object[], Object[], Object[], Object[], $\color{#AAA}{\textsf{Options}}$) * CombinationApprovals. [verifyBestCoveringPairs ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/combinations/CombinationApprovals.java#L309-L317) (Function8, Object[], Object[], Object[], Object[], Object[], Object[], Object[], Object[], $\color{#AAA}{\textsf{Options}}$) * CombinationApprovals. [verifyBestCoveringPairs ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/combinations/CombinationApprovals.java#L326-L333) (Function9, Object[], Object[], Object[], Object[], Object[], Object[], Object[], Object[], Object[], $\color{#AAA}{\textsf{Options}}$) - * JsonApprovals. [verifyAsJson ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/JsonApprovals.java#L44-L47) (Object, $\color{#AAA}{\textsf{Options}}$) - * JsonApprovals. [verifyAsJson ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/JsonApprovals.java#L39-L42) (Object, Function1, $\color{#AAA}{\textsf{Options}}$) - * JsonApprovals. [verifyJson ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/JsonApprovals.java#L18-L21) (String, $\color{#AAA}{\textsf{Options}}$) - * JsonApprovals. [verifyJson ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/JsonApprovals.java#L26-L30) (String, boolean, $\color{#AAA}{\textsf{Options}}$) + * JsonApprovals. [verifyAsJson ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/JsonApprovals.java#L53-L56) (Object, $\color{#AAA}{\textsf{Options}}$) + * JsonApprovals. [verifyAsJson ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/JsonApprovals.java#L48-L51) (Object, Function1, $\color{#AAA}{\textsf{Options}}$) + * JsonApprovals. [verifyJson ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/JsonApprovals.java#L17-L20) (String, $\color{#AAA}{\textsf{Options}}$) + * JsonApprovals. [verifyJson ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/JsonApprovals.java#L35-L39) (String, boolean, $\color{#AAA}{\textsf{Options}}$) + * JsonApprovals. [verifyJson ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/JsonApprovals.java#L29-L34) (String, boolean, Function1, $\color{#AAA}{\textsf{Options}}$) * JsonJacksonApprovals. [verifyAsJson ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/JsonJacksonApprovals.java#L14-L17) (Object, $\color{#AAA}{\textsf{Options}}$) * JsonXstreamApprovals. [verifyAsJson ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/JsonXstreamApprovals.java#L18-L21) (Object, $\color{#AAA}{\textsf{Options}}$) * VelocityApprovals. [verify ](https://github.com/approvals/ApprovalTests.Java/blob/master/approvaltests/src/main/java/org/approvaltests/velocity/VelocityApprovals.java#L16-L24) (ContextAware, $\color{#AAA}{\textsf{Options}}$) diff --git a/approvaltests/pom.xml b/approvaltests/pom.xml index ba7add413..d2330f434 100644 --- a/approvaltests/pom.xml +++ b/approvaltests/pom.xml @@ -53,7 +53,7 @@ com.fasterxml.jackson.core jackson-databind - 2.17.1 + 2.17.2 true @@ -100,7 +100,7 @@ org.junit.jupiter junit-jupiter-api - 5.10.2 + 5.10.3 compile true @@ -113,13 +113,13 @@ org.junit.jupiter junit-jupiter-engine - 5.10.2 + 5.10.3 test org.junit.vintage junit-vintage-engine - 5.10.2 + 5.10.3 test diff --git a/approvaltests/src/main/java/org/approvaltests/JsonApprovals.java b/approvaltests/src/main/java/org/approvaltests/JsonApprovals.java index 4857da891..8afc4ca8f 100644 --- a/approvaltests/src/main/java/org/approvaltests/JsonApprovals.java +++ b/approvaltests/src/main/java/org/approvaltests/JsonApprovals.java @@ -1,7 +1,6 @@ package org.approvaltests; import com.google.gson.GsonBuilder; -import com.spun.util.FormattedException; import com.spun.util.JsonUtils; import org.approvaltests.core.Options; import org.lambda.functions.Function1; @@ -23,6 +22,16 @@ public static void verifyJson(String json, boolean reorderJson) { verifyJson(json, reorderJson, new Options()); } + public static void verifyJson(String json, boolean reorderJson, Function1 gsonBuilder) + { + verifyJson(json, reorderJson, gsonBuilder, new Options()); + } + public static void verifyJson(String json, boolean reorderJson, Function1 gsonBuilder, + Options options) + { + String formattedJson = reorderJson ? JsonUtils.reorderFields(json, gsonBuilder) : JsonUtils.prettyPrint(json); + Approvals.verify(formattedJson, options.forFile().withExtension(".json")); + } public static void verifyJson(String json, boolean reorderJson, Options options) { String formattedJson = reorderJson ? JsonUtils.reorderFields(json) : JsonUtils.prettyPrint(json); diff --git a/pom.xml b/pom.xml index 2d199afe1..b3d0adbab 100644 --- a/pom.xml +++ b/pom.xml @@ -100,7 +100,7 @@ maven-surefire-plugin - 3.3.0 + 3.3.1 -Duser.language=en -Duser.region=US @@ -124,6 +124,16 @@ true + + org.apache.maven.plugins + maven-site-plugin + 3.12.1 + + + org.apache.maven.plugins + maven-project-info-reports-plugin + 3.6.2 + @@ -151,7 +161,7 @@ org.apache.maven.plugins maven-surefire-plugin - 3.3.0 + 3.3.1 org.apache.maven.plugins @@ -191,7 +201,7 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.7.0 + 3.8.0 attach-javadocs