diff --git a/approvaltests-tests/pom.xml b/approvaltests-tests/pom.xml index ce8ef62af..05aae119a 100644 --- a/approvaltests-tests/pom.xml +++ b/approvaltests-tests/pom.xml @@ -104,6 +104,11 @@ jackson-databind 2.16.1 + + com.fasterxml.jackson.dataformat + jackson-dataformat-xml + 2.16.1 + org.apache.camel camel-xstream diff --git a/approvaltests-tests/src/test/java/org/approvaltests/Parse1InputTest.java b/approvaltests-tests/src/test/java/org/approvaltests/Parse1InputTest.java index 27c167f3e..4fcac5f49 100644 --- a/approvaltests-tests/src/test/java/org/approvaltests/Parse1InputTest.java +++ b/approvaltests-tests/src/test/java/org/approvaltests/Parse1InputTest.java @@ -22,6 +22,7 @@ void testWithTypesTransformersAndBoth() """; ParseInput.from(expected).withTypes(Integer.class).verifyAll(Integer::toBinaryString); ParseInput.from(expected).transformTo(Integer::parseInt).verifyAll(Integer::toBinaryString); - ParseInput.from(expected).withTypes(String.class).transformTo(Integer::parseInt).verifyAll(Integer::toBinaryString); + ParseInput.from(expected).withTypes(String.class).transformTo(Integer::parseInt) + .verifyAll(Integer::toBinaryString); } } diff --git a/approvaltests-tests/src/test/java/org/approvaltests/Parse2InputTest.java b/approvaltests-tests/src/test/java/org/approvaltests/Parse2InputTest.java index cd8a92926..a586e10e3 100644 --- a/approvaltests-tests/src/test/java/org/approvaltests/Parse2InputTest.java +++ b/approvaltests-tests/src/test/java/org/approvaltests/Parse2InputTest.java @@ -8,12 +8,12 @@ public class Parse2InputTest void testWithTypesTransformersAndBoth() { var expected = """ - 1,2.2 -> 2.2 - 1,3.3 -> 3.3 - """; + 1,2.2 -> 2.2 + 1,3.3 -> 3.3 + """; ParseInput.from(expected).withTypes(Integer.class, Double.class).verifyAll(t -> t.getFirst() * t.getSecond()); // TODO: continue here -// ParseInput.from(expected).transformTo(Integer::parseInt).verifyAll(Integer::toBinaryString); -// ParseInput.from(expected).withTypes(String.class).transformTo(Integer::parseInt).verifyAll(Integer::toBinaryString); + // ParseInput.from(expected).transformTo(Integer::parseInt).verifyAll(Integer::toBinaryString); + // ParseInput.from(expected).withTypes(String.class).transformTo(Integer::parseInt).verifyAll(Integer::toBinaryString); } } diff --git a/approvaltests-tests/src/test/java/org/approvaltests/writers/ApprovalXmlWriterTest.java b/approvaltests-tests/src/test/java/org/approvaltests/writers/ApprovalXmlWriterTest.java index 16265f26e..1d9044bd2 100644 --- a/approvaltests-tests/src/test/java/org/approvaltests/writers/ApprovalXmlWriterTest.java +++ b/approvaltests-tests/src/test/java/org/approvaltests/writers/ApprovalXmlWriterTest.java @@ -1,10 +1,16 @@ package org.approvaltests.writers; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectWriter; +import com.fasterxml.jackson.dataformat.xml.XmlMapper; import org.approvaltests.Approvals; import org.approvaltests.core.Options; import org.approvaltests.scrubbers.RegExScrubber; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +import static com.fasterxml.jackson.dataformat.xml.ser.ToXmlGenerator.Feature.WRITE_XML_DECLARATION; + public class ApprovalXmlWriterTest { @Test @@ -36,4 +42,36 @@ public void invalidXml() Approvals.verifyXml("hi"); System.err.println("Note: The previous xml error () is expected "); } + @Test + void xmlOutputByJacksonIsHandledCorrectly() throws JsonProcessingException + { + ObjectWriter objectWriter = new XmlMapper().configure(WRITE_XML_DECLARATION, true).writer(); + String jacksonXml = objectWriter.writeValueAsString(new JacksonTestPOJO()); + String approvalsWriterXml = ApprovalXmlWriter.prettyPrint(jacksonXml, 2); + Assertions.assertEquals(jacksonXml, approvalsWriterXml); + } + @Test + void xmlOutputByJacksonIsHandledCorrectlyWhenPrettyPrintingIsEnabled() throws JsonProcessingException + { + ObjectWriter objectWriter = new XmlMapper().configure(WRITE_XML_DECLARATION, true) + .writerWithDefaultPrettyPrinter(); + String jacksonXml = objectWriter.writeValueAsString(new JacksonTestPOJO()); + String approvalsWriterXml = ApprovalXmlWriter.prettyPrint(jacksonXml, 2); + Assertions.assertEquals(jacksonXml, approvalsWriterXml); + } + private static class JacksonTestPOJO + { + public String getSomeText() + { + return "Some text"; + } + public String getSomeTextWithAmpersand() + { + return "Some more text & some more"; + } + public String getEmoji() + { + return "😸"; + } + } }