ValueComparerBase.java
- package org.dbunit.assertion.comparer.value;
- import org.dbunit.DatabaseUnitException;
- import org.dbunit.dataset.ITable;
- import org.dbunit.dataset.datatype.DataType;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- /**
- * Base class for {@link ValueComparer}s providing a template method and common
- * elements, mainly consistent log message and toString.
- *
- * @author Jeff Jensen
- * @since 2.6.0
- */
- public abstract class ValueComparerBase implements ValueComparer
- {
- private final Logger log = LoggerFactory.getLogger(getClass());
- /**
- * Format String for consistent fail message; substitution strings are:
- * actual, fail phrase, expected.
- */
- public static final String BASE_FAIL_MSG =
- "Actual value='%s' is %s expected value='%s'";
- /**
- * {@inheritDoc}
- *
- * This implementation calls
- * {@link #doCompare(ITable, ITable, int, String, DataType, Object, Object)}.
- */
- public String compare(final ITable expectedTable, final ITable actualTable,
- final int rowNum, final String columnName, final DataType dataType,
- final Object expectedValue, final Object actualValue)
- throws DatabaseUnitException
- {
- final String failMessage;
- failMessage = doCompare(expectedTable, actualTable, rowNum, columnName,
- dataType, expectedValue, actualValue);
- log.debug(
- "compare: rowNum={}, columnName={}, expectedValue={},"
- + " actualValue={}, failMessage={}",
- rowNum, columnName, expectedValue, actualValue, failMessage);
- return failMessage;
- }
- /**
- * Do the comparison and return a fail message or null if comparison passes.
- *
- * @see ValueComparer#compare(ITable, ITable, int, String, DataType, Object,
- * Object)
- */
- protected abstract String doCompare(final ITable expectedTable,
- final ITable actualTable, final int rowNum, final String columnName,
- final DataType dataType, final Object expectedValue,
- final Object actualValue) throws DatabaseUnitException;
- @Override
- public String toString()
- {
- return getClass().getName();
- }
- }