Hi, for better Explanations, here are my checkins:
All changes for implementing DiffBuilder and ComparisonFormatter so far: https://github.com/brabenetz/xmlunit/commit/f4408ea23eca8afaff28b5b11dfea6bc67735f4e "DifferenceEvaluators.sequence(...)" (I has updated the DifferenceEvaluatorsTest in the next commit): https://github.com/brabenetz/xmlunit/commit/cd88ac571d72582451a59f21b7a8cdffbff8b903 DiffBuilder.withDifferenceEvaluators(...) and withDifferenceEvaluators.deactivateDefaultDifferenceEvaluator(): https://github.com/brabenetz/xmlunit/commit/f05706c13a4d4a19602857b052971bb865f5ae06 Let me know what you think, I will merge all you want together for a single push request. with friendly regards, Harald > Gesendet: Samstag, 17. Januar 2015 um 00:27 Uhr > Von: "Harald Brabenetz" <braben...@gmx.net> > An: "Stefan Bodewig" <bode...@apache.org>, > xmlunit-general@lists.sourceforge.net > Betreff: Re: [Xmlunit-general] xmlunit.org > > > Hi, > > I have a few questions about the DifferenceEvaluators: > > >> But I think that one DifferenceEvaluator is not enough. > >> At least DifferenceEvaluators.Default should always be part of, > >> otherwise there is no ComparisonResult.SIMILAR. > > > >IMHO this is something the user of the API should take care of. If they > >want to have DEFAULT's behaviour then they should include it explicitly. > > > You think, that the code should look like the following?: > ---------- > Diff myDiff = DiffBuilder.compare(control).withTest(test) > .withDifferenceEvaluator(DifferenceEvaluators.first( > DifferenceEvaluators.Default, > new IgnoreAttributeDifferenceEvaluator("attr"))) > .checkForSimilar() > .build(); > ---------- > I think "checkForSimilar" will be the preferred method to compare two XMLs. > But checkForSimilar() makes no sense without "DifferenceEvaluators.Default". > On the other site I can't think of a situation where the > "DifferenceEvaluators.Default" must be ignored to get a special goal? > Even this rare cases could simply be handled with a method > ".deactivateDefaultDifferenceEvaluator()" > > I checked in the UnitTest: > https://github.com/brabenetz/xmlunit/commit/4a8e5eb676809344a6dbaf814289a6495db80728 > > >> But then I need a method like DifferenceEvaluators.inSequence(...) > >> instead of DifferenceEvaluators.first(...). > > > >first() picks the first that changes the outcome, what would be the > >result of inSequence()? > > > Simply passes the result to the next evaluator. > Reason: The custom DifferenceEvaluator should also be triggered (e.g.: for > Ignore) even if a Node was marked as "similar" before. > And maybe the custom DifferenceEvaluator want to check if the > Difference was "similar". > > > >> I also think about a general SimpleIgnoreNodesDifferenceEvaluator > >> (ignore some nodes) or a SimpleBigDecimalNodesDifferenceEvaluator > >> (which evaluates "1" similar "1.00") implementations. > > > >The first one hints at the missing feature of ignoring parts completely. > >I don't think DifferenceEvaluator is the best place for this. The > >second one sounds like a third jar of xmlunit-library rather than -core? > > > Yes, it could be a third jar of xmlunit-library. > What you mean with "DifferenceEvaluator is not the best place for this"? Is > there another way? > > > Thanks, > Harald > > ------------------------------------------------------------------------------ > New Year. New Location. New Benefits. New Data Center in Ashburn, VA. > GigeNET is offering a free month of service with a new server in Ashburn. > Choose from 2 high performing configs, both with 100TB of bandwidth. > Higher redundancy.Lower latency.Increased capacity.Completely compliant. > http://p.sf.net/sfu/gigenet > _______________________________________________ > Xmlunit-general mailing list > Xmlunit-general@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/xmlunit-general > ------------------------------------------------------------------------------ New Year. New Location. New Benefits. New Data Center in Ashburn, VA. GigeNET is offering a free month of service with a new server in Ashburn. Choose from 2 high performing configs, both with 100TB of bandwidth. Higher redundancy.Lower latency.Increased capacity.Completely compliant. http://p.sf.net/sfu/gigenet _______________________________________________ Xmlunit-general mailing list Xmlunit-general@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xmlunit-general