Package com.streambase.sb.unittest
Class FieldBasedTupleComparator
- java.lang.Object
-
- com.streambase.sb.unittest.FieldBasedTupleComparator
-
- All Implemented Interfaces:
TupleComparator
public class FieldBasedTupleComparator extends Object implements TupleComparator
ATupleComparatorthat compares tuples in a naive field-by-field manner. Comparison of individual field types can be controlled usingFieldBasedTupleComparator.CompareFunctors. A subset of the fields for a tuple can by explicitly specifying the field names.DEFAULT_COMPARATORprovides a reasonable default comparison of tuples.DEFAULT_COMPARE_REGISTRYprovides a filled in registry of defaultFieldBasedTupleComparator.CompareFunctors.- Since:
- 6.6
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classFieldBasedTupleComparator.CompareFunctorA strategy object for handling comparisons of specific field types.static classFieldBasedTupleComparator.DoubleCompareFunctorCompare double values using a ratio test and a tolerance.static classFieldBasedTupleComparator.IgnoreTimestampCompareFunctorstatic classFieldBasedTupleComparator.ListCompareFunctorstatic classFieldBasedTupleComparator.NaiveObjectCompareFunctorstatic classFieldBasedTupleComparator.RegexCompareFunctorCheck if the second argument matches the regex defined for the first argument.static classFieldBasedTupleComparator.TupleCompareFunctor
-
Field Summary
Fields Modifier and Type Field Description static FieldBasedTupleComparatorDEFAULT_COMPARATORstatic DataType.Registry<FieldBasedTupleComparator.CompareFunctor>DEFAULT_COMPARE_REGISTRYstatic Map<DataType,FieldBasedTupleComparator.CompareFunctor>DEFAULT_FUNCTOR_MAPstatic FieldBasedTupleComparatorIGNORE_TIMESTAMP_COMPARATORstatic FieldBasedTupleComparatorREGEX_COMPARATOR
-
Constructor Summary
Constructors Constructor Description FieldBasedTupleComparator(DataType.Registry<FieldBasedTupleComparator.CompareFunctor> comparators, String... fields)FieldBasedTupleComparator(FieldBasedTupleComparator baseComparator, String... fields)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleancompare(Tuple expected, Tuple actual)Compare two tuples.booleancompareValues(CompleteDataType cdt, Object expected, Object actual)Compare two values withCompleteDataTypecdt.StringformatForErrorMessage(Tuple t)Convert the provided Tuple into a string appropriate for error messages.
-
-
-
Field Detail
-
DEFAULT_FUNCTOR_MAP
public static final Map<DataType,FieldBasedTupleComparator.CompareFunctor> DEFAULT_FUNCTOR_MAP
-
DEFAULT_COMPARE_REGISTRY
public static final DataType.Registry<FieldBasedTupleComparator.CompareFunctor> DEFAULT_COMPARE_REGISTRY
-
DEFAULT_COMPARATOR
public static final FieldBasedTupleComparator DEFAULT_COMPARATOR
-
REGEX_COMPARATOR
public static final FieldBasedTupleComparator REGEX_COMPARATOR
-
IGNORE_TIMESTAMP_COMPARATOR
public static final FieldBasedTupleComparator IGNORE_TIMESTAMP_COMPARATOR
-
-
Constructor Detail
-
FieldBasedTupleComparator
public FieldBasedTupleComparator(DataType.Registry<FieldBasedTupleComparator.CompareFunctor> comparators, String... fields) throws StreamBaseException
- Throws:
StreamBaseException
-
FieldBasedTupleComparator
public FieldBasedTupleComparator(FieldBasedTupleComparator baseComparator, String... fields) throws StreamBaseException
- Throws:
StreamBaseException
-
-
Method Detail
-
compare
public boolean compare(Tuple expected, Tuple actual) throws StreamBaseException
Description copied from interface:TupleComparatorCompare two tuples.- Specified by:
comparein interfaceTupleComparator- Parameters:
expected- The expected valueactual- The actual value- Returns:
- true if the tuples are equal
- Throws:
StreamBaseException
-
compareValues
public boolean compareValues(CompleteDataType cdt, Object expected, Object actual) throws StreamBaseException
Description copied from interface:TupleComparatorCompare two values withCompleteDataTypecdt.- Specified by:
compareValuesin interfaceTupleComparator- Parameters:
cdt- TheCompleteDataTypefor the objects being comparedexpected- The expected valueactual- The actual value- Returns:
- true if the values are equal
- Throws:
StreamBaseException
-
formatForErrorMessage
public String formatForErrorMessage(Tuple t)
Description copied from interface:TupleComparatorConvert the provided Tuple into a string appropriate for error messages. Some comparators may wish to omit fields that are not salient to the comparison.- Specified by:
formatForErrorMessagein interfaceTupleComparator- Parameters:
t- The tuple to format- Returns:
- A human readable string.
-
-