34
34
import org .junit .jupiter .api .BeforeEach ;
35
35
import org .junit .jupiter .api .Test ;
36
36
import org .w3c .dom .Document ;
37
+ import org .w3c .dom .Element ;
38
+ import org .w3c .dom .NodeList ;
37
39
38
40
class CustomLogFactory implements LoggerContextFactory {
39
41
private final org .apache .logging .log4j .spi .LoggerContext ctx ;
@@ -72,12 +74,15 @@ public void removeContext(org.apache.logging.log4j.spi.LoggerContext context) {
72
74
73
75
public class XmlDiffTest {
74
76
77
+ private static DocumentBuilder docBuilder ;
75
78
private XmlMerge xmlMerge ;
76
79
77
80
@ BeforeAll
78
81
public static void setupOnce () throws Exception {
79
82
new File ("target/test" ).mkdirs ();
80
83
LogManager .setFactory (new CustomLogFactory ());
84
+ DocumentBuilderFactory docFactory = DocumentBuilderFactory .newInstance ();
85
+ docBuilder = docFactory .newDocumentBuilder ();
81
86
}
82
87
83
88
/**
@@ -95,9 +100,6 @@ public void unordered() throws Exception {
95
100
final String diffFilename = "target/test/unordereddiff.xml" ;
96
101
XmlDiff .main (new String [] {"src/test/resources/DiffTest1.xml" , "src/test/resources/DiffTest2.xml" , diffFilename , "-u" });
97
102
98
-
99
- DocumentBuilderFactory docFactory = DocumentBuilderFactory .newInstance ();
100
- DocumentBuilder docBuilder = docFactory .newDocumentBuilder ();
101
103
Document doc = docBuilder .parse (diffFilename );
102
104
103
105
// Expectation:
@@ -127,9 +129,6 @@ public void ordered() throws Exception {
127
129
final String diffFilename = "target/test/ordereddiff.xml" ;
128
130
XmlDiff .main (new String [] {"src/test/resources/DiffTest1.xml" , "src/test/resources/DiffTest2.xml" , diffFilename });
129
131
130
-
131
- DocumentBuilderFactory docFactory = DocumentBuilderFactory .newInstance ();
132
- DocumentBuilder docBuilder = docFactory .newDocumentBuilder ();
133
132
Document doc = docBuilder .parse (diffFilename );
134
133
135
134
assertEquals (3 , doc .getElementsByTagName ("add" ).getLength ());
@@ -160,11 +159,29 @@ public void epDiff() throws Exception {
160
159
}
161
160
}
162
161
163
-
164
162
@ Test
165
163
public void xsdDiff () throws Exception {
166
164
final String diffFilename = "target/test/xsddiff.xml" ;
167
165
XmlDiff .main (new String [] {"src/test/resources/Enums-new.xsd" , "src/test/resources/Enums-old.xsd" , diffFilename , "-u" });
168
166
}
169
167
168
+ @ Test
169
+ public void removeAttribute () throws Exception {
170
+ final String mergedFilename = "target/test/Instrument-merged.xml" ;
171
+ final String diffFilename = "src/test/resources/Instrument-diff.xml" ;
172
+ final String baseFilename = "src/test/resources/Instrument-base.xml" ;
173
+
174
+ try (
175
+ final FileInputStream is1Baseline = new FileInputStream (baseFilename );
176
+ final FileInputStream isDiff = new FileInputStream (diffFilename );
177
+ final FileOutputStream osMerge = new FileOutputStream (mergedFilename )) {
178
+ xmlMerge .merge (is1Baseline , isDiff , osMerge );
179
+
180
+ Document doc = docBuilder .parse (mergedFilename );
181
+ NodeList elements = doc .getElementsByTagName ("fixr:component" );
182
+ Element element = (Element ) elements .item (0 );
183
+ assertEquals (0 , element .getAttribute ("added" ).length ());
184
+ }
185
+ }
186
+
170
187
}
0 commit comments