From: <bo...@us...> - 2010-09-14 11:30:51
|
Revision: 479 http://xmlunit.svn.sourceforge.net/xmlunit/?rev=479&view=rev Author: bodewig Date: 2010-09-14 11:30:44 +0000 (Tue, 14 Sep 2010) Log Message: ----------- can also deal with custom DifferenceListener Modified Paths: -------------- trunk/xmlunit/src/main/java-legacy/org/custommonkey/xmlunit/Diff.java trunk/xmlunit/src/main/java-legacy/org/custommonkey/xmlunit/NewDifferenceEngine.java trunk/xmlunit/src/tests/java-legacy/org/custommonkey/xmlunit/test_IgnoreTextAndAttributeValuesDifferenceListener.java Removed Paths: ------------- trunk/xmlunit/src/main/java-legacy/org/custommonkey/xmlunit/DifferenceEvaluator.java Modified: trunk/xmlunit/src/main/java-legacy/org/custommonkey/xmlunit/Diff.java =================================================================== --- trunk/xmlunit/src/main/java-legacy/org/custommonkey/xmlunit/Diff.java 2010-09-14 10:25:52 UTC (rev 478) +++ trunk/xmlunit/src/main/java-legacy/org/custommonkey/xmlunit/Diff.java 2010-09-14 11:30:44 UTC (rev 479) @@ -72,7 +72,7 @@ * <br />Examples and more at <a href="http://xmlunit.sourceforge.net"/>xmlunit.sourceforge.net</a> */ public class Diff - implements DifferenceEvaluator, DifferenceListener, ComparisonController { + implements DifferenceListener, ComparisonController { private final Document controlDoc; private final Document testDoc; private boolean similar = true; @@ -425,8 +425,6 @@ && !XMLUnit.getNormalizeWhitespace() && - differenceListenerDelegate == null - && (!usesUnknownElementQualifier() || XMLUnit.getCompareUnmatched()) ) { Deleted: trunk/xmlunit/src/main/java-legacy/org/custommonkey/xmlunit/DifferenceEvaluator.java =================================================================== --- trunk/xmlunit/src/main/java-legacy/org/custommonkey/xmlunit/DifferenceEvaluator.java 2010-09-14 10:25:52 UTC (rev 478) +++ trunk/xmlunit/src/main/java-legacy/org/custommonkey/xmlunit/DifferenceEvaluator.java 2010-09-14 11:30:44 UTC (rev 479) @@ -1,55 +0,0 @@ -/* -****************************************************************** -Copyright (c) 2010, Jeff Martin, Tim Bacon -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - * Neither the name of the xmlunit.sourceforge.net nor the names - of its contributors may be used to endorse or promote products - derived from this software without specific prior written - permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. - -****************************************************************** -*/ - -package org.custommonkey.xmlunit; - -/** - * Contains the pure evaluation logic of DifferenceListener - */ -public interface DifferenceEvaluator { - /** - * Receive notification of a difference and decides whether 2 - * nodes are different. - * @param difference a Difference instance as defined in {@link - * DifferenceConstants DifferenceConstants} describing the cause - * of the difference and containing the detail of the nodes that - * differ - * @return int one of the RETURN_... constants of - * DifferenceListener describing how this difference was - * interpreted - */ - int evaluate(Difference difference); -} Modified: trunk/xmlunit/src/main/java-legacy/org/custommonkey/xmlunit/NewDifferenceEngine.java =================================================================== --- trunk/xmlunit/src/main/java-legacy/org/custommonkey/xmlunit/NewDifferenceEngine.java 2010-09-14 10:25:52 UTC (rev 478) +++ trunk/xmlunit/src/main/java-legacy/org/custommonkey/xmlunit/NewDifferenceEngine.java 2010-09-14 11:30:44 UTC (rev 479) @@ -50,6 +50,7 @@ import net.sf.xmlunit.diff.ComparisonType; import net.sf.xmlunit.diff.DOMDifferenceEngine; import net.sf.xmlunit.diff.DefaultNodeMatcher; +import net.sf.xmlunit.diff.DifferenceEvaluator; import net.sf.xmlunit.diff.DifferenceEvaluators; import net.sf.xmlunit.diff.ElementSelector; import net.sf.xmlunit.diff.NodeMatcher; @@ -138,34 +139,19 @@ .addMatchListener(new MatchTracker2ComparisonListener(matchTracker)); } - net.sf.xmlunit.diff.DifferenceEvaluator controllerAsEvaluator = + DifferenceEvaluator controllerAsEvaluator = new ComparisonController2DifferenceEvaluator(controller); - net.sf.xmlunit.diff.DifferenceEvaluator ev = null; + DifferenceEvaluator ev = null; if (listener != null) { - net.sf.xmlunit.diff.DifferenceEvaluator e = null; - if (listener instanceof org.custommonkey.xmlunit.DifferenceEvaluator) { - e = new DifferenceEvaluatorAdapter((DifferenceEvaluator) listener); - final ComparisonListener l = new DifferenceListener2ComparisonListener(listener); - engine - .addDifferenceListener(new ComparisonListener() { - public void comparisonPerformed(Comparison comparison, - ComparisonResult outcome) { - if (!swallowComparison(comparison, outcome, - checkPrelude)) { - l.comparisonPerformed(comparison, outcome); - } - } - }); - } else { - e = new DifferenceListener2DifferenceEvaluator(listener); - } - ev = DifferenceEvaluators.first(e, controllerAsEvaluator); + ev = DifferenceEvaluators + .first(new DifferenceListener2DifferenceEvaluator(listener), + controllerAsEvaluator); } else { ev = controllerAsEvaluator; } final net.sf.xmlunit.diff.DifferenceEvaluator evaluator = ev; engine - .setDifferenceEvaluator(new net.sf.xmlunit.diff.DifferenceEvaluator() { + .setDifferenceEvaluator(new DifferenceEvaluator() { public ComparisonResult evaluate(Comparison comparison, ComparisonResult outcome) { if (!swallowComparison(comparison, outcome, @@ -394,7 +380,7 @@ } public static class ComparisonController2DifferenceEvaluator - implements net.sf.xmlunit.diff.DifferenceEvaluator { + implements DifferenceEvaluator { private final ComparisonController cc; public ComparisonController2DifferenceEvaluator(ComparisonController c) { cc = c; @@ -410,33 +396,6 @@ } } - public static class DifferenceEvaluatorAdapter - implements net.sf.xmlunit.diff.DifferenceEvaluator { - private final DifferenceEvaluator de; - public DifferenceEvaluatorAdapter(DifferenceEvaluator d) { - de = d; - } - - public ComparisonResult evaluate(Comparison comparison, - ComparisonResult outcome) { - Difference diff = toDifference(comparison); - if (diff != null) { - switch (de.evaluate(diff)) { - case DifferenceListener - .RETURN_IGNORE_DIFFERENCE_NODES_IDENTICAL: - return ComparisonResult.EQUAL; - case DifferenceListener - .RETURN_IGNORE_DIFFERENCE_NODES_SIMILAR: - return ComparisonResult.SIMILAR; - case DifferenceListener - .RETURN_UPGRADE_DIFFERENCE_NODES_DIFFERENT: - return ComparisonResult.DIFFERENT; - } - } - return outcome; - } - } - public static class ElementQualifier2ElementSelector implements ElementSelector { private final ElementQualifier eq; @@ -453,7 +412,7 @@ } public static class DifferenceListener2DifferenceEvaluator - implements net.sf.xmlunit.diff.DifferenceEvaluator { + implements DifferenceEvaluator { private final DifferenceListener dl; public DifferenceListener2DifferenceEvaluator(DifferenceListener dl) { Modified: trunk/xmlunit/src/tests/java-legacy/org/custommonkey/xmlunit/test_IgnoreTextAndAttributeValuesDifferenceListener.java =================================================================== --- trunk/xmlunit/src/tests/java-legacy/org/custommonkey/xmlunit/test_IgnoreTextAndAttributeValuesDifferenceListener.java 2010-09-14 10:25:52 UTC (rev 478) +++ trunk/xmlunit/src/tests/java-legacy/org/custommonkey/xmlunit/test_IgnoreTextAndAttributeValuesDifferenceListener.java 2010-09-14 11:30:44 UTC (rev 479) @@ -146,9 +146,9 @@ new Diff(control, dissimilarTest)); dissimilarDetailedDiff.overrideDifferenceListener(listener); List differences = dissimilarDetailedDiff.getAllDifferences(); - assertEquals("wrong number of attributes, missing attribute, different attribute value, and missing text node. " + assertEquals("has children, wrong number of attributes, missing attribute, different attribute value, and missing text node. " + dissimilarDetailedDiff.toString(), - 4, differences.size()); + 5, differences.size()); int recoverable = 0; for (Iterator iter = differences.iterator(); iter.hasNext(); ) { Difference aDifference = (Difference) iter.next(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |