|
From: <bo...@us...> - 2010-08-19 14:28:57
|
Revision: 430
http://xmlunit.svn.sourceforge.net/xmlunit/?rev=430&view=rev
Author: bodewig
Date: 2010-08-19 14:28:50 +0000 (Thu, 19 Aug 2010)
Log Message:
-----------
schema location comparisons
Modified Paths:
--------------
trunk/xmlunit/src/main/java-core/net/sf/xmlunit/diff/DOMDifferenceEngine.java.xml
trunk/xmlunit/src/main/net-core/diff/DOMDifferenceEngine.xml
trunk/xmlunit/src/tests/java-core/net/sf/xmlunit/diff/DOMDifferenceEngineTest.java
trunk/xmlunit/src/tests/net-core/diff/DOMDifferenceEngineTest.cs
Modified: trunk/xmlunit/src/main/java-core/net/sf/xmlunit/diff/DOMDifferenceEngine.java.xml
===================================================================
--- trunk/xmlunit/src/main/java-core/net/sf/xmlunit/diff/DOMDifferenceEngine.java.xml 2010-08-19 14:04:16 UTC (rev 429)
+++ trunk/xmlunit/src/main/java-core/net/sf/xmlunit/diff/DOMDifferenceEngine.java.xml 2010-08-19 14:28:50 UTC (rev 430)
@@ -218,6 +218,16 @@
testExpr="Boolean.TRUE"/>
<literal><![CDATA[
}
+]]></literal>
+ <compareExpr type="SCHEMA_LOCATION"
+ controlExpr="controlAttributes.schemaLocation != null ? controlAttributes.schemaLocation.getValue() : null"
+ testExpr="testAttributes.schemaLocation != null ? testAttributes.schemaLocation.getValue() : null"
+ />
+ <compareExpr type="NO_NAMESPACE_SCHEMA_LOCATION"
+ controlExpr="controlAttributes.noNamespaceSchemaLocation != null ? controlAttributes.noNamespaceSchemaLocation.getValue() : null"
+ testExpr="testAttributes.noNamespaceSchemaLocation != null ? testAttributes.noNamespaceSchemaLocation.getValue() : null"
+ />
+ <literal><![CDATA[
return lastResult;
}
@@ -320,9 +330,9 @@
private final List<Attr> remainingAttributes;
private Attributes(Attr schemaLocation, Attr noNamespaceSchemaLocation,
List<Attr> remainingAttributes) {
- this.schemaLocation = schemaLocation;
+ this.schemaLocation = schemaLocation;
this.noNamespaceSchemaLocation = noNamespaceSchemaLocation;
- this.remainingAttributes = remainingAttributes;
+ this.remainingAttributes = remainingAttributes;
}
}
Modified: trunk/xmlunit/src/main/net-core/diff/DOMDifferenceEngine.xml
===================================================================
--- trunk/xmlunit/src/main/net-core/diff/DOMDifferenceEngine.xml 2010-08-19 14:04:16 UTC (rev 429)
+++ trunk/xmlunit/src/main/net-core/diff/DOMDifferenceEngine.xml 2010-08-19 14:28:50 UTC (rev 430)
@@ -211,6 +211,14 @@
<literal><![CDATA[
}
]]></literal>
+ <compareExpr type="SCHEMA_LOCATION"
+ controlExpr="controlAttributes.SchemaLocation != null ? controlAttributes.SchemaLocation.Value : null"
+ testExpr="testAttributes.SchemaLocation != null ? testAttributes.SchemaLocation.Value : null"
+ />
+ <compareExpr type="NO_NAMESPACE_SCHEMA_LOCATION"
+ controlExpr="controlAttributes.NoNamespaceSchemaLocation != null ? controlAttributes.NoNamespaceSchemaLocation.Value : null"
+ testExpr="testAttributes.NoNamespaceSchemaLocation != null ? testAttributes.NoNamespaceSchemaLocation.Value : null"
+ />
<literal><![CDATA[
return lastResult;
}
@@ -316,9 +324,9 @@
internal Attributes(XmlAttribute schemaLocation,
XmlAttribute noNamespaceSchemaLocation,
IList<XmlAttribute> remainingAttributes) {
- this.SchemaLocation = schemaLocation;
+ this.SchemaLocation = schemaLocation;
this.NoNamespaceSchemaLocation = noNamespaceSchemaLocation;
- this.RemainingAttributes = remainingAttributes;
+ this.RemainingAttributes = remainingAttributes;
}
}
Modified: trunk/xmlunit/src/tests/java-core/net/sf/xmlunit/diff/DOMDifferenceEngineTest.java
===================================================================
--- trunk/xmlunit/src/tests/java-core/net/sf/xmlunit/diff/DOMDifferenceEngineTest.java 2010-08-19 14:04:16 UTC (rev 429)
+++ trunk/xmlunit/src/tests/java-core/net/sf/xmlunit/diff/DOMDifferenceEngineTest.java 2010-08-19 14:28:50 UTC (rev 430)
@@ -543,4 +543,53 @@
assertEquals(ComparisonResult.CRITICAL, d.compareNodes(e1, e2));
assertEquals(1, ex.invoked);
}
+
+ @Test public void schemaLocationDifferences() {
+ Element e1 = doc.createElement("foo");
+ Element e2 = doc.createElement("foo");
+ e1.setAttributeNS("http://www.w3.org/2001/XMLSchema-instance",
+ "schemaLocation", "somewhere");
+ e2.setAttributeNS("http://www.w3.org/2001/XMLSchema-instance",
+ "schemaLocation", "somewhere else");
+
+ DOMDifferenceEngine d = new DOMDifferenceEngine();
+ DiffExpecter ex = new DiffExpecter(ComparisonType.SCHEMA_LOCATION);
+ d.addDifferenceListener(ex);
+ d.setDifferenceEvaluator(new DifferenceEvaluator() {
+ public ComparisonResult evaluate(Comparison comparison,
+ ComparisonResult outcome) {
+ if (comparison.getType() == ComparisonType.SCHEMA_LOCATION) {
+ assertEquals(ComparisonResult.DIFFERENT, outcome);
+ return ComparisonResult.CRITICAL;
+ }
+ assertEquals(ComparisonResult.EQUAL, outcome);
+ return ComparisonResult.EQUAL;
+ }
+ });
+ assertEquals(ComparisonResult.CRITICAL, d.compareNodes(e1, e2));
+ assertEquals(1, ex.invoked);
+
+ e1 = doc.createElement("foo");
+ e2 = doc.createElement("foo");
+ e1.setAttributeNS("http://www.w3.org/2001/XMLSchema-instance",
+ "noNamespaceSchemaLocation", "somewhere");
+ e2.setAttributeNS("http://www.w3.org/2001/XMLSchema-instance",
+ "noNamespaceSchemaLocation", "somewhere else");
+ d = new DOMDifferenceEngine();
+ ex = new DiffExpecter(ComparisonType.NO_NAMESPACE_SCHEMA_LOCATION);
+ d.addDifferenceListener(ex);
+ d.setDifferenceEvaluator(new DifferenceEvaluator() {
+ public ComparisonResult evaluate(Comparison comparison,
+ ComparisonResult outcome) {
+ if (comparison.getType() == ComparisonType.NO_NAMESPACE_SCHEMA_LOCATION) {
+ assertEquals(ComparisonResult.DIFFERENT, outcome);
+ return ComparisonResult.CRITICAL;
+ }
+ assertEquals(ComparisonResult.EQUAL, outcome);
+ return ComparisonResult.EQUAL;
+ }
+ });
+ assertEquals(ComparisonResult.CRITICAL, d.compareNodes(e1, e2));
+ assertEquals(1, ex.invoked);
+ }
}
Modified: trunk/xmlunit/src/tests/net-core/diff/DOMDifferenceEngineTest.cs
===================================================================
--- trunk/xmlunit/src/tests/net-core/diff/DOMDifferenceEngineTest.cs 2010-08-19 14:04:16 UTC (rev 429)
+++ trunk/xmlunit/src/tests/net-core/diff/DOMDifferenceEngineTest.cs 2010-08-19 14:28:50 UTC (rev 430)
@@ -540,5 +540,55 @@
Assert.AreEqual(ComparisonResult.CRITICAL, d.CompareNodes(e1, e2));
Assert.AreEqual(1, ex.invoked);
}
+
+ [Test]
+ public void SchemaLocationDifferences() {
+ XmlElement e1 = doc.CreateElement("foo");
+ XmlElement e2 = doc.CreateElement("foo");
+ e1.SetAttribute("schemaLocation",
+ "http://www.w3.org/2001/XMLSchema-instance",
+ "somewhere");
+ e2.SetAttribute("schemaLocation",
+ "http://www.w3.org/2001/XMLSchema-instance",
+ "somewhere else");
+
+ DOMDifferenceEngine d = new DOMDifferenceEngine();
+ DiffExpecter ex = new DiffExpecter(ComparisonType.SCHEMA_LOCATION);
+ d.DifferenceListener += ex.ComparisonPerformed;
+ d.DifferenceEvaluator = delegate(Comparison comparison,
+ ComparisonResult outcome) {
+ if (comparison.Type == ComparisonType.SCHEMA_LOCATION) {
+ Assert.AreEqual(ComparisonResult.DIFFERENT, outcome);
+ return ComparisonResult.CRITICAL;
+ }
+ Assert.AreEqual(ComparisonResult.EQUAL, outcome);
+ return ComparisonResult.EQUAL;
+ };
+ Assert.AreEqual(ComparisonResult.CRITICAL, d.CompareNodes(e1, e2));
+ Assert.AreEqual(1, ex.invoked);
+
+ e1 = doc.CreateElement("foo");
+ e2 = doc.CreateElement("foo");
+ e1.SetAttribute("noNamespaceSchemaLocation",
+ "http://www.w3.org/2001/XMLSchema-instance",
+ "somewhere");
+ e2.SetAttribute("noNamespaceSchemaLocation",
+ "http://www.w3.org/2001/XMLSchema-instance",
+ "somewhere else");
+ d = new DOMDifferenceEngine();
+ ex = new DiffExpecter(ComparisonType.NO_NAMESPACE_SCHEMA_LOCATION);
+ d.DifferenceListener += ex.ComparisonPerformed;
+ d.DifferenceEvaluator = delegate(Comparison comparison,
+ ComparisonResult outcome) {
+ if (comparison.Type == ComparisonType.NO_NAMESPACE_SCHEMA_LOCATION) {
+ Assert.AreEqual(ComparisonResult.DIFFERENT, outcome);
+ return ComparisonResult.CRITICAL;
+ }
+ Assert.AreEqual(ComparisonResult.EQUAL, outcome);
+ return ComparisonResult.EQUAL;
+ };
+ Assert.AreEqual(ComparisonResult.CRITICAL, d.CompareNodes(e1, e2));
+ Assert.AreEqual(1, ex.invoked);
+ }
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|