package org.opendaylight.mdsal.binding.testutils;
import ch.vorburger.xtendbeans.AssertBeans;
-import com.github.difflib.algorithm.DiffException;
import java.util.Objects;
import org.junit.ComparisonFailure;
import org.opendaylight.yangtools.yang.binding.DataObject;
*
* @see AssertBeans#assertEqualBeans(Object, Object)
*/
- public static void assertEqualBeans(Object expected, Object actual) throws ComparisonFailure {
+ public static void assertEqualBeans(final Object expected, final Object actual) throws ComparisonFailure {
if (!Objects.equals(expected, actual)) {
String expectedText = GENERATOR.getExpression(expected);
assertEqualByText(expectedText, actual);
}
// package local method used only in the self tests of this utility (not intended for usage by client code)
- static void assertEqualByText(String expectedText, Object actual) throws ComparisonFailure {
+ static void assertEqualByText(final String expectedText, final Object actual) throws ComparisonFailure {
String actualText = GENERATOR.getExpression(actual);
if (!expectedText.equals(actualText)) {
- try {
- String diff = DiffUtil.diff(expectedText, actualText);
- LOG.warn("diff for ComparisonFailure about to be thrown:\n{}", diff);
- } catch (DiffException e) {
- LOG.error("Error generating a comparison diff", e);
- }
+ String diff = DiffUtil.diff(expectedText, actualText);
+ LOG.warn("diff for ComparisonFailure about to be thrown:\n{}", diff);
throw new ComparisonFailure("Expected and actual beans do not match", expectedText, actualText);
}
}
-
}
import com.github.difflib.DiffUtils;
import com.github.difflib.UnifiedDiffUtils;
-import com.github.difflib.algorithm.DiffException;
import com.github.difflib.patch.Patch;
import com.google.common.base.Joiner;
import com.google.common.base.Splitter;
*/
// package-local: no need to expose this, consider it an implementation detail; public API is the AssertDataObjects
final class DiffUtil {
-
// Configuration which we could tune as we use this more
private static final int MAX_DIFFS = 1;
// number of lines of context output around each difference
private static final Splitter SPLITTER = Splitter.on(System.getProperty("line.separator"));
private static final Joiner JOINER = Joiner.on(System.getProperty("line.separator"));
- public static String diff(String expectedText, String actualText) throws DiffException {
+ private DiffUtil() {
+
+ }
+
+ static String diff(final String expectedText, final String actualText) {
List<String> originalLines = SPLITTER.splitToList(expectedText);
List<String> revisedLines = SPLITTER.splitToList(actualText);
Patch<String> patch = DiffUtils.diff(originalLines, revisedLines);
}
return header + JOINER.join(diff);
}
-
- private DiffUtil() {
-
- }
}