private StringBuffer checkDifferences( StringBuffer errors, String prefix, URI leftURI, URI rightURI, Collection<EcoreDifference> differences) { if (differences.size() > 0) { if (errors == null) errors = new StringBuffer(); else errors.append("\n "); errors.append(differences.size() + prefix + "model differences between\n "); errors.append(leftURI); errors.append("\n "); errors.append(rightURI); for (EcoreDifference difference : differences) { errors.append("\n"); errors.append(difference.toString()); } } return errors; }
protected void assertDifferencesEquals( EquivalenceMap ecoreComparator, URI leftURI, URI rightURI, Set<EcoreDifference> expectedDifferences) { List<EcoreDifference> actualDifferences = ecoreComparator.computeDifferences(); List<EcoreDifference> extraDifferences = new ArrayList<EcoreDifference>(); for (EcoreDifference expectedDifference : expectedDifferences) { EcoreDifference gotIt = null; for (EcoreDifference actualDifference : actualDifferences) { if (expectedDifference.isSameLeftElseRight(actualDifference)) gotIt = actualDifference; } if (gotIt != null) actualDifferences.remove(gotIt); else extraDifferences.add(expectedDifference); } Collections.sort(actualDifferences); Collections.sort(extraDifferences); StringBuffer s = null; s = checkDifferences(s, " missing ", leftURI, rightURI, actualDifferences); s = checkDifferences(s, " extra ", leftURI, rightURI, extraDifferences); if (s != null) fail(s.toString()); }