From: <bo...@us...> - 2014-12-01 04:05:08
|
Revision: 561 http://sourceforge.net/p/xmlunit/code/561 Author: bodewig Date: 2014-12-01 04:05:05 +0000 (Mon, 01 Dec 2014) Log Message: ----------- more porting work Modified Paths: -------------- trunk/xmlunit/src/main/java-core/net/sf/xmlunit/diff/DOMDifferenceEngine.java trunk/xmlunit/src/main/net-core/diff/DOMDifferenceEngine.cs Modified: trunk/xmlunit/src/main/java-core/net/sf/xmlunit/diff/DOMDifferenceEngine.java =================================================================== --- trunk/xmlunit/src/main/java-core/net/sf/xmlunit/diff/DOMDifferenceEngine.java 2014-11-30 05:13:52 UTC (rev 560) +++ trunk/xmlunit/src/main/java-core/net/sf/xmlunit/diff/DOMDifferenceEngine.java 2014-12-01 04:05:05 UTC (rev 561) @@ -418,21 +418,18 @@ XPathContext controlContext, ProcessingInstruction test, XPathContext testContext) { - ComparisonResult lastResult = + return new ComparisonChain( compare(new Comparison(ComparisonType.PROCESSING_INSTRUCTION_TARGET, control, getXPath(controlContext), control.getTarget(), test, getXPath(testContext), - test.getTarget())); - if (lastResult == ComparisonResult.CRITICAL) { - return lastResult; - } - - return compare(new Comparison(ComparisonType.PROCESSING_INSTRUCTION_DATA, - control, getXPath(controlContext), - control.getData(), - test, getXPath(testContext), - test.getData())); + test.getTarget()))) + .andThen(comparer(new Comparison(ComparisonType.PROCESSING_INSTRUCTION_DATA, + control, getXPath(controlContext), + control.getData(), + test, getXPath(testContext), + test.getData()))) + .getFinalResult(); } /** @@ -539,6 +536,8 @@ if (!mustChangeControlContext && !mustChangeTestContext) { return ComparisonResult.EQUAL; } + boolean attributePresentOnBothSides = mustChangeControlContext + && mustChangeTestContext; try { if (mustChangeControlContext) { @@ -551,34 +550,24 @@ testContext.addAttribute(q); testContext.navigateToAttribute(q); } - ComparisonResult lastResult = + return new ComparisonChain( compare(new Comparison(ComparisonType.ATTR_NAME_LOOKUP, controlAttr, getXPath(controlContext), mustChangeControlContext, testAttr, getXPath(testContext), - mustChangeTestContext)); - if (lastResult == ComparisonResult.CRITICAL) { - return lastResult; - } - if (mustChangeControlContext && mustChangeTestContext) { - lastResult = - compareAttributeExplicitness(controlAttr, controlContext, - testAttr, testContext); - if (lastResult == ComparisonResult.CRITICAL) { - return lastResult; - } - QName controlQName = valueAsQName(controlAttr); - QName testQName = valueAsQName(testAttr); - lastResult = - compare(new Comparison(ComparisonType.ATTR_VALUE, - controlAttr, - getXPath(controlContext), - controlQName.toString(), - testAttr, - getXPath(testContext), - testQName.toString())); - } - return lastResult; + mustChangeTestContext))) + .andIfTrueThen(attributePresentOnBothSides, + compareAttributeExplicitness(controlAttr, controlContext, + testAttr, testContext)) + .andIfTrueThen(attributePresentOnBothSides, + comparer(new Comparison(ComparisonType.ATTR_VALUE, + controlAttr, + getXPath(controlContext), + valueAsQName(controlAttr).toString(), + testAttr, + getXPath(testContext), + valueAsQName(testAttr).toString()))) + .getFinalResult(); } finally { if (mustChangeControlContext) { controlContext.navigateToParent(); @@ -596,28 +585,25 @@ XPathContext controlContext, Attr test, XPathContext testContext) { - ComparisonResult lastResult = + return new ComparisonChain( compareAttributeExplicitness(control, controlContext, test, - testContext); - if (lastResult == ComparisonResult.CRITICAL) { - return lastResult; - } - - return compare(new Comparison(ComparisonType.ATTR_VALUE, - control, getXPath(controlContext), - control.getValue(), - test, getXPath(testContext), - test.getValue())); + testContext).apply()) + .andThen(comparer(new Comparison(ComparisonType.ATTR_VALUE, + control, getXPath(controlContext), + control.getValue(), + test, getXPath(testContext), + test.getValue()))) + .getFinalResult(); } /** * Compares whether two attributes are specified explicitly. */ - private ComparisonResult + private DeferredComparison compareAttributeExplicitness(Attr control, XPathContext controlContext, Attr test, XPathContext testContext) { return - compare(new Comparison(ComparisonType.ATTR_VALUE_EXPLICITLY_SPECIFIED, + comparer(new Comparison(ComparisonType.ATTR_VALUE_EXPLICITLY_SPECIFIED, control, getXPath(controlContext), control.getSpecified(), test, getXPath(testContext), Modified: trunk/xmlunit/src/main/net-core/diff/DOMDifferenceEngine.cs =================================================================== --- trunk/xmlunit/src/main/net-core/diff/DOMDifferenceEngine.cs 2014-11-30 05:13:52 UTC (rev 560) +++ trunk/xmlunit/src/main/net-core/diff/DOMDifferenceEngine.cs 2014-12-01 04:05:05 UTC (rev 561) @@ -560,7 +560,6 @@ test, GetXPath(testContext), mustChangeTestContext))) .AndIfTrueThen(attributePresentOnBothSides, - () => CompareAttributeExplicitness(control, controlContext, test, testContext)) .AndIfTrueThen(attributePresentOnBothSides, @@ -591,7 +590,7 @@ XPathContext testContext) { return new ComparisonChain( CompareAttributeExplicitness(control, controlContext, - test, testContext)) + test, testContext)()) .AndThen(Comparer(new Comparison(ComparisonType.ATTR_VALUE, control, GetXPath(controlContext), control.Value, @@ -603,17 +602,17 @@ /// <summary> // Compares whether two attributes are specified explicitly. /// </summary> - private ComparisonResult + private Func<ComparisonResult> CompareAttributeExplicitness(XmlAttribute control, XPathContext controlContext, XmlAttribute test, XPathContext testContext) { return - Compare(new Comparison(ComparisonType.ATTR_VALUE_EXPLICITLY_SPECIFIED, - control, GetXPath(controlContext), - control.Specified, - test, GetXPath(testContext), - test.Specified)); + Comparer(new Comparison(ComparisonType.ATTR_VALUE_EXPLICITLY_SPECIFIED, + control, GetXPath(controlContext), + control.Specified, + test, GetXPath(testContext), + test.Specified)); } /// <summary> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |