From: <bo...@us...> - 2010-09-13 08:29:12
|
Revision: 465 http://xmlunit.svn.sourceforge.net/xmlunit/?rev=465&view=rev Author: bodewig Date: 2010-09-13 08:29:05 +0000 (Mon, 13 Sep 2010) Log Message: ----------- don't fire comparison events when just searching for matching nodes Modified Paths: -------------- trunk/xmlunit/src/main/java-core/net/sf/xmlunit/diff/AbstractDifferenceEngine.java trunk/xmlunit/src/main/java-core/net/sf/xmlunit/diff/DOMDifferenceEngine.java.xml trunk/xmlunit/src/main/net-core/diff/AbstractDifferenceEngine.cs trunk/xmlunit/src/main/net-core/diff/DOMDifferenceEngine.xml Modified: trunk/xmlunit/src/main/java-core/net/sf/xmlunit/diff/AbstractDifferenceEngine.java =================================================================== --- trunk/xmlunit/src/main/java-core/net/sf/xmlunit/diff/AbstractDifferenceEngine.java 2010-09-12 06:12:20 UTC (rev 464) +++ trunk/xmlunit/src/main/java-core/net/sf/xmlunit/diff/AbstractDifferenceEngine.java 2010-09-13 08:29:05 UTC (rev 465) @@ -82,16 +82,23 @@ * listeners and returns the outcome. */ protected final ComparisonResult compare(Comparison comp) { + ComparisonResult altered = compareDontFire(comp); + listeners.fireComparisonPerformed(comp, altered); + return altered; + } + + /** + * Compares the detail values for object equality, lets the + * difference evaluator evaluate the result + */ + protected final ComparisonResult compareDontFire(Comparison comp) { Object controlValue = comp.getControlDetails().getValue(); Object testValue = comp.getTestDetails().getValue(); boolean equal = controlValue == null ? testValue == null : controlValue.equals(testValue); ComparisonResult initial = equal ? ComparisonResult.EQUAL : ComparisonResult.DIFFERENT; - ComparisonResult altered = - getDifferenceEvaluator().evaluate(comp, initial); - listeners.fireComparisonPerformed(comp, altered); - return altered; + return getDifferenceEvaluator().evaluate(comp, initial); } protected static String getXPath(XPathContext ctx) { 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-09-12 06:12:20 UTC (rev 464) +++ trunk/xmlunit/src/main/java-core/net/sf/xmlunit/diff/DOMDifferenceEngine.java.xml 2010-09-13 08:29:05 UTC (rev 465) @@ -481,9 +481,9 @@ .canBeCompared((Element) n1, (Element) n2); } ComparisonResult r = - compare(new Comparison(ComparisonType.NODE_TYPE, - n1, null, n1.getNodeType(), - n2, null, n2.getNodeType())); + compareDontFire(new Comparison(ComparisonType.NODE_TYPE, + n1, null, n1.getNodeType(), + n2, null, n2.getNodeType())); return r != ComparisonResult.CRITICAL; } @@ -515,4 +515,4 @@ } }; ]]></literal> -</class> \ No newline at end of file +</class> Modified: trunk/xmlunit/src/main/net-core/diff/AbstractDifferenceEngine.cs =================================================================== --- trunk/xmlunit/src/main/net-core/diff/AbstractDifferenceEngine.cs 2010-09-12 06:12:20 UTC (rev 464) +++ trunk/xmlunit/src/main/net-core/diff/AbstractDifferenceEngine.cs 2010-09-13 08:29:05 UTC (rev 465) @@ -68,15 +68,23 @@ /// listeners and returns the outcome. /// </summary> protected internal ComparisonResult Compare(Comparison comp) { + ComparisonResult altered = CompareDontFire(comp); + FireComparisonPerformed(comp, altered); + return altered; + } + + /// <summary> + /// Compares the detail values for object equality, lets the + /// difference evaluator evaluate the result. + /// </summary> + protected internal ComparisonResult CompareDontFire(Comparison comp) { object controlValue = comp.ControlDetails.Value; object testValue = comp.TestDetails.Value; bool equal = controlValue == null ? testValue == null : controlValue.Equals(testValue); ComparisonResult initial = equal ? ComparisonResult.EQUAL : ComparisonResult.DIFFERENT; - ComparisonResult altered = DifferenceEvaluator(comp, initial); - FireComparisonPerformed(comp, altered); - return altered; + return DifferenceEvaluator(comp, initial); } private void FireComparisonPerformed(Comparison comp, Modified: trunk/xmlunit/src/main/net-core/diff/DOMDifferenceEngine.xml =================================================================== --- trunk/xmlunit/src/main/net-core/diff/DOMDifferenceEngine.xml 2010-09-12 06:12:20 UTC (rev 464) +++ trunk/xmlunit/src/main/net-core/diff/DOMDifferenceEngine.xml 2010-09-13 08:29:05 UTC (rev 465) @@ -512,9 +512,9 @@ return ElementSelector(n1 as XmlElement, n2 as XmlElement); } ComparisonResult r = - Compare(new Comparison(ComparisonType.NODE_TYPE, - n1, null, n1.NodeType, - n2, null, n2.NodeType)); + CompareDontFire(new Comparison(ComparisonType.NODE_TYPE, + n1, null, n1.NodeType, + n2, null, n2.NodeType)); return r != ComparisonResult.CRITICAL; } @@ -536,4 +536,4 @@ && n.NodeType != XmlNodeType.XmlDeclaration; } ]]></literal> -</class> \ No newline at end of file +</class> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |