Skip to content

Commit 69d5e6c

Browse files
LarsEckartJayBazuziisidore
committed
- F XmlXomApprovals fixes #466
Co-authored-by: Jay Bazuzi <[email protected]> Co-authored-by: Llewellyn Falco <[email protected]>
1 parent aa8d2c3 commit 69d5e6c

File tree

5 files changed

+50
-41
lines changed

5 files changed

+50
-41
lines changed

approvaltests-tests/src/test/java/org/approvaltests/ParsingFilesTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public void getLineNumberOfThisMethod() throws Exception
1919
var expected = """
2020
(line 5,col 3)-(line 7,col 3)
2121
""";
22-
Method method = XmlApprovals.class.getMethod("verify", String.class);
22+
Method method = XmlXomApprovals.class.getMethod("verify", String.class);
2323
Range r = ParserUtilities.getLineNumbersForMethod(method);
2424
Approvals.verify(r, new Options().inline(expected));
2525
}
Lines changed: 1 addition & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,10 @@
11
package org.approvaltests;
22

3-
import nu.xom.*;
43
import org.approvaltests.core.Options;
54
import org.junit.jupiter.api.Test;
65

7-
import java.io.*;
8-
96
class XmlFormattingTest
107
{
11-
// @Disabled("SPIKE for #466 - continue next time")
128
@Test
139
void xmlWithEmojiesAndAmpersands()
1410
{
@@ -19,33 +15,6 @@ void xmlWithEmojiesAndAmpersands()
1915
</a>
2016
""";
2117
String minimizedXml = expected.replaceAll("\n", " ").replace(" ", "");
22-
verifyXml(minimizedXml, expected);
23-
}
24-
private static void verifyXml(String minimizedXml, String expected)
25-
{
26-
Options options = new Options().inline(expected);
27-
final String formattedXml = prettyPrintXml(minimizedXml, 2);
28-
Approvals.verify(formattedXml, options.forFile().withExtension(".xml"));
29-
}
30-
private static String prettyPrintXml(String minimizedXml, int indent)
31-
{
32-
try
33-
{
34-
Builder builder = new Builder();
35-
Document doc = builder.build(new StringReader(minimizedXml));
36-
// create a string output stream
37-
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
38-
Serializer serializer = new Serializer(byteArrayOutputStream, "UTF-8");
39-
serializer.setIndent(indent); // Increase indentation to make XML more readable
40-
serializer.setLineSeparator("\n"); // Ensure new lines are added
41-
serializer.setMaxLength(0); // Prevent line wrapping
42-
serializer.write(doc);
43-
return byteArrayOutputStream.toString("UTF-8");
44-
}
45-
catch (Exception e)
46-
{
47-
e.printStackTrace();
48-
return minimizedXml + "\n\nXML Parsing Error:\n" + e.getMessage();
49-
}
18+
XmlXomApprovals.verifyXml(minimizedXml, new Options().inline(expected));
5019
}
5120
}

approvaltests/pom.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,13 @@
104104
<scope>compile</scope>
105105
<optional>true</optional>
106106
</dependency>
107+
<dependency>
108+
<groupId>xom</groupId>
109+
<artifactId>xom</artifactId>
110+
<version>1.3.9</version>
111+
<scope>compile</scope>
112+
<optional>true</optional>
113+
</dependency>
107114
<dependency>
108115
<groupId>org.junit.jupiter</groupId>
109116
<artifactId>junit-jupiter</artifactId>

approvaltests/src/main/java/org/approvaltests/XmlApprovals.java

Lines changed: 0 additions & 8 deletions
This file was deleted.
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package org.approvaltests;
2+
3+
import nu.xom.Builder;
4+
import nu.xom.Document;
5+
import nu.xom.Serializer;
6+
import org.approvaltests.core.Options;
7+
8+
import java.io.ByteArrayOutputStream;
9+
import java.io.StringReader;
10+
11+
public class XmlXomApprovals
12+
{
13+
public static void verifyXml(String xml)
14+
{
15+
verifyXml(xml, new Options());
16+
}
17+
public static void verifyXml(String xml, Options options)
18+
{
19+
Approvals.verifyXml(xml, x -> prettyPrintXml(x, 2), options);
20+
}
21+
public static String prettyPrintXml(String minimizedXml, int indent)
22+
{
23+
try
24+
{
25+
Builder builder = new Builder();
26+
Document doc = builder.build(new StringReader(minimizedXml));
27+
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
28+
Serializer serializer = new Serializer(byteArrayOutputStream, "UTF-8");
29+
serializer.setIndent(indent);
30+
serializer.setLineSeparator("\n");
31+
serializer.setMaxLength(0);
32+
serializer.write(doc);
33+
return byteArrayOutputStream.toString("UTF-8");
34+
}
35+
catch (Exception e)
36+
{
37+
e.printStackTrace();
38+
return minimizedXml + "\n\nXML Parsing Error:\n" + e.getMessage();
39+
}
40+
}
41+
}

0 commit comments

Comments
 (0)