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 "😸";
+ }
+ }
}