I am trying to use Java XMLUnit to check if these two XML's are the same, ignoring order. I have tried using the Diff approach as well as using NodeMatcher but neither worked. I have tried a variety of ElementQualifiers as well. What am I missing here?
These are the two XMLs:
<?xml version="1.0" encoding="UTF-8"?>
<test>
<entry>
<key>foo</key>
<value>global</value>
</entry>
<entry>
<key>my_boolean</key>
<value>false</value>
</entry>
<entry>
<key>my_number</key>
<value>0</value>
</entry>
<entry>
<key>my_json</key>
<value>[]</value>
</entry>
</test>
<?xml version="1.0" encoding="UTF-8"?>
<test>
<entry>
<key>my_json</key>
<value>[]</value>
</entry>
<entry>
<key>foo</key>
<value>global</value>
</entry>
<entry>
<key>my_boolean</key>
<value>false</value>
</entry>
<entry>
<key>my_number</key>
<value>0</value>
</entry>
</test>
Here are the code snippets I have tried:
XmlAssert.assertThat(actualXmlString)
.and(expectedXmlString)
.withNodeMatcher(new DefaultNodeMatcher(ElementSelectors.byNameAndText))
.ignoreChildNodesOrder()
// .ignoreWhitespace()
.normalizeWhitespace()
.areSimilar();
Diff diff = new Diff(actualXmlString, expectedXmlString);
diff.overrideElementQualifier(new ElementNameAndTextQualifier());
assertXMLEqual(diff, true);