public class RecursiveComparisonConfiguration
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
private FieldComparators |
fieldComparators |
private boolean |
ignoreAllActualNullFields |
private boolean |
ignoreAllOverriddenEquals |
private boolean |
ignoreCollectionOrder |
private java.util.Set<FieldLocation> |
ignoredCollectionOrderInFields |
private java.util.List<java.util.regex.Pattern> |
ignoredCollectionOrderInFieldsMatchingRegexes |
private java.util.Set<FieldLocation> |
ignoredFields |
private java.util.List<java.util.regex.Pattern> |
ignoredFieldsRegexes |
private java.util.List<FieldLocation> |
ignoredOverriddenEqualsForFields |
private java.util.List<java.lang.Class<?>> |
ignoredOverriddenEqualsForTypes |
private java.util.List<java.util.regex.Pattern> |
ignoredOverriddenEqualsRegexes |
static java.lang.String |
INDENT_LEVEL_2 |
private boolean |
strictTypeChecking |
private TypeComparators |
typeComparators |
Constructor and Description |
---|
RecursiveComparisonConfiguration() |
Modifier and Type | Method and Description |
---|---|
java.util.stream.Stream<java.util.Map.Entry<FieldLocation,java.util.Comparator<?>>> |
comparatorByFields() |
(package private) java.util.stream.Stream<java.util.Map.Entry<java.lang.Class<?>,java.util.Comparator<?>>> |
comparatorByTypes() |
private static java.lang.String |
concatenatedPath(java.lang.String parentPath,
java.lang.String name) |
private void |
describeComparatorForFields(java.lang.StringBuilder description) |
private void |
describeComparatorForTypes(java.lang.StringBuilder description) |
private void |
describeIgnoreAllActualNullFields(java.lang.StringBuilder description) |
private void |
describeIgnoreCollectionOrder(java.lang.StringBuilder description) |
private java.lang.String |
describeIgnoredCollectionOrderInFields() |
private void |
describeIgnoredCollectionOrderInFields(java.lang.StringBuilder description) |
private void |
describeIgnoredCollectionOrderInFieldsMatchingRegexes(java.lang.StringBuilder description) |
private java.lang.String |
describeIgnoredFields() |
private void |
describeIgnoredFields(java.lang.StringBuilder description) |
private void |
describeIgnoredFieldsRegexes(java.lang.StringBuilder description) |
private java.lang.String |
describeIgnoredOverriddenEqualsForFields() |
private java.lang.String |
describeIgnoredOverriddenEqualsForTypes(Representation representation) |
private void |
describeIgnoredOverriddenEqualsMethods(java.lang.StringBuilder description,
Representation representation) |
private void |
describeOverriddenEqualsMethodsUsage(java.lang.StringBuilder description,
Representation representation) |
private java.lang.String |
describeRegexes(java.util.List<java.util.regex.Pattern> regexes) |
private void |
describeRegisteredComparatorByTypes(java.lang.StringBuilder description) |
private void |
describeRegisteredComparatorForFields(java.lang.StringBuilder description) |
private void |
describeTypeCheckingStrictness(java.lang.StringBuilder description) |
private java.lang.String |
formatRegisteredComparatorByType(java.util.Map.Entry<java.lang.Class<?>,java.util.Comparator<?>> next) |
private java.lang.String |
formatRegisteredComparatorForField(java.util.Map.Entry<FieldLocation,java.util.Comparator<?>> comparatorForField) |
java.util.Comparator<?> |
getComparatorForField(java.lang.String fieldName) |
java.util.Comparator<?> |
getComparatorForType(java.lang.Class<?> fieldType) |
FieldComparators |
getFieldComparators() |
(package private) boolean |
getIgnoreAllActualNullFields() |
(package private) boolean |
getIgnoreCollectionOrder() |
java.util.Set<FieldLocation> |
getIgnoredCollectionOrderInFields()
Returns the list of the object under test fields to ignore collection order in the recursive comparison.
|
java.util.List<java.util.regex.Pattern> |
getIgnoredCollectionOrderInFieldsMatchingRegexes()
Returns the list of regexes used to find the object under test fields to ignore collection order in the recursive comparison.
|
java.util.Set<FieldLocation> |
getIgnoredFields()
Returns the list of the object under test fields to ignore in the recursive comparison.
|
java.util.List<java.util.regex.Pattern> |
getIgnoredFieldsRegexes() |
java.util.List<FieldLocation> |
getIgnoredOverriddenEqualsForFields() |
java.util.List<java.lang.Class<?>> |
getIgnoredOverriddenEqualsForTypes() |
java.util.List<java.util.regex.Pattern> |
getIgnoredOverriddenEqualsRegexes() |
TypeComparators |
getTypeComparators() |
boolean |
hasComparatorForField(java.lang.String fieldName) |
boolean |
hasComparatorForType(java.lang.Class<?> keyType) |
boolean |
hasCustomComparators() |
void |
ignoreAllOverriddenEquals()
Force a recursive comparison on all fields (except java types).
|
void |
ignoreCollectionOrder(boolean ignoreCollectionOrder)
Sets whether to ignore collection order in the comparison.
|
void |
ignoreCollectionOrderInFields(java.lang.String... fieldsToIgnoreCollectionOrder)
Adds the given fields to the list of the object under test fields to ignore collection order in the recursive comparison.
|
void |
ignoreCollectionOrderInFieldsMatchingRegexes(java.lang.String... regexes)
Adds the given regexes to the list of regexes used to find the object under test fields to ignore collection order in the recursive comparison.
|
void |
ignoreFields(java.lang.String... fieldsToIgnore)
Adds the given fields to the list of the object under test fields to ignore in the recursive comparison.
|
void |
ignoreFieldsMatchingRegexes(java.lang.String... regexes)
Allows to ignore in the recursive comparison the object under test fields matching the given regexes.
|
void |
ignoreOverriddenEqualsForFields(java.lang.String... fields)
Adds the given fields to the list of fields to force a recursive comparison on.
|
void |
ignoreOverriddenEqualsForFieldsMatchingRegexes(java.lang.String... regexes)
Adds the given regexes to the list of regexes used find the fields to force a recursive comparison on.
|
void |
ignoreOverriddenEqualsForTypes(java.lang.Class<?>... types)
Adds the given types to the list of types to force a recursive comparison on.
|
private boolean |
isConfiguredToIgnoreSomeOverriddenEqualsMethods() |
boolean |
isInStrictTypeCheckingMode() |
private boolean |
matchesAnIgnoredCollectionOrderInField(DualValue dualKey) |
private boolean |
matchesAnIgnoredCollectionOrderInFieldRegex(DualValue dualKey) |
private boolean |
matchesAnIgnoredField(DualValue dualKey) |
private boolean |
matchesAnIgnoredField(java.lang.String fieldConcatenatedPath) |
private boolean |
matchesAnIgnoredFieldRegex(DualValue dualKey) |
private boolean |
matchesAnIgnoredFieldRegex(java.lang.String fieldConcatenatedPath) |
private boolean |
matchesAnIgnoredNullField(DualValue dualKey) |
private boolean |
matchesAnIgnoredOverriddenEqualsField(DualValue dualKey) |
private boolean |
matchesAnIgnoredOverriddenEqualsRegex(java.lang.Class<?> clazz) |
private boolean |
matchesAnIgnoredOverriddenEqualsType(java.lang.Class<?> clazz) |
java.lang.String |
multiLineDescription(Representation representation) |
void |
registerComparatorForField(java.util.Comparator<?> comparator,
FieldLocation fieldLocation)
Registers the given
Comparator to compare the fields with the given locations. |
<T> void |
registerComparatorForType(java.util.Comparator<? super T> comparator,
java.lang.Class<T> type)
Registers the given
Comparator to compare the fields with the given type. |
void |
setIgnoreAllActualNullFields(boolean ignoreAllActualNullFields)
Sets whether actual null fields are ignored in the recursive comparison.
|
(package private) boolean |
shouldIgnore(DualValue dualKey) |
(package private) boolean |
shouldIgnoreCollectionOrder(DualValue dualKey) |
(package private) boolean |
shouldIgnoreOverriddenEqualsOf(java.lang.Class<? extends java.lang.Object> clazz) |
(package private) boolean |
shouldIgnoreOverriddenEqualsOf(DualValue dualValue) |
(package private) java.util.function.Predicate<java.lang.String> |
shouldKeepField(java.lang.String parentConcatenatedPath) |
private boolean |
shouldKeepField(java.lang.String parentPath,
java.lang.String fieldName) |
void |
strictTypeChecking(boolean strictTypeChecking)
Sets whether the recursive comparison will check that actual's type is compatible with expected's type (the same applies for each field).
|
java.lang.String |
toString() |
public static final java.lang.String INDENT_LEVEL_2
private boolean strictTypeChecking
private boolean ignoreAllActualNullFields
private java.util.Set<FieldLocation> ignoredFields
private java.util.List<java.util.regex.Pattern> ignoredFieldsRegexes
private java.util.List<java.lang.Class<?>> ignoredOverriddenEqualsForTypes
private java.util.List<FieldLocation> ignoredOverriddenEqualsForFields
private java.util.List<java.util.regex.Pattern> ignoredOverriddenEqualsRegexes
private boolean ignoreAllOverriddenEquals
private boolean ignoreCollectionOrder
private java.util.Set<FieldLocation> ignoredCollectionOrderInFields
private java.util.List<java.util.regex.Pattern> ignoredCollectionOrderInFieldsMatchingRegexes
private TypeComparators typeComparators
private FieldComparators fieldComparators
public boolean hasComparatorForField(java.lang.String fieldName)
public java.util.Comparator<?> getComparatorForField(java.lang.String fieldName)
public FieldComparators getFieldComparators()
public boolean hasComparatorForType(java.lang.Class<?> keyType)
public boolean hasCustomComparators()
public java.util.Comparator<?> getComparatorForType(java.lang.Class<?> fieldType)
public TypeComparators getTypeComparators()
java.util.stream.Stream<java.util.Map.Entry<java.lang.Class<?>,java.util.Comparator<?>>> comparatorByTypes()
boolean getIgnoreAllActualNullFields()
public void setIgnoreAllActualNullFields(boolean ignoreAllActualNullFields)
See RecursiveComparisonAssert.ignoringActualNullFields()
for code examples.
ignoreAllActualNullFields
- whether to ingore actual null fields in the recursive comparisonpublic void ignoreFields(java.lang.String... fieldsToIgnore)
See RecursiveComparisonAssert#ignoringFields(String...)
for examples.
fieldsToIgnore
- the fields of the object under test to ignore in the comparison.public void ignoreFieldsMatchingRegexes(java.lang.String... regexes)
See RecursiveComparisonAssert#ignoringFieldsMatchingRegexes(String...)
for examples.
regexes
- regexes used to ignore fields in the comparison.public java.util.Set<FieldLocation> getIgnoredFields()
public void ignoreAllOverriddenEquals()
See RecursiveComparisonAssert.ignoringAllOverriddenEquals()
for examples.
public void ignoreOverriddenEqualsForFields(java.lang.String... fields)
See RecursiveComparisonAssert#ignoringOverriddenEqualsForFields(String...)
for examples.
fields
- the fields to force a recursive comparison on.public void ignoreOverriddenEqualsForFieldsMatchingRegexes(java.lang.String... regexes)
See RecursiveComparisonAssert#ignoringOverriddenEqualsForFieldsMatchingRegexes(String...)
for examples.
regexes
- regexes used to specify the fields we want to force a recursive comparison on.public void ignoreOverriddenEqualsForTypes(java.lang.Class<?>... types)
See RecursiveComparisonAssert#ignoringOverriddenEqualsForTypes(Class...)
for examples.
types
- the types to the list of types to force a recursive comparison on.boolean getIgnoreCollectionOrder()
public void ignoreCollectionOrder(boolean ignoreCollectionOrder)
See RecursiveComparisonAssert.ignoringCollectionOrder()
for code examples.
ignoreCollectionOrder
- whether to ignore collection order in the comparison.public void ignoreCollectionOrderInFields(java.lang.String... fieldsToIgnoreCollectionOrder)
See RecursiveComparisonAssert#ignoringCollectionOrderInFields(String...)
for examples.
fieldsToIgnoreCollectionOrder
- the fields of the object under test to ignore collection order in the comparison.public java.util.Set<FieldLocation> getIgnoredCollectionOrderInFields()
public void ignoreCollectionOrderInFieldsMatchingRegexes(java.lang.String... regexes)
See RecursiveComparisonAssert#ignoringCollectionOrderInFieldsMatchingRegexes(String...)
for examples.
regexes
- regexes used to find the object under test fields to ignore collection order in in the comparison.public java.util.List<java.util.regex.Pattern> getIgnoredCollectionOrderInFieldsMatchingRegexes()
public <T> void registerComparatorForType(java.util.Comparator<? super T> comparator, java.lang.Class<T> type)
Comparator
to compare the fields with the given type.
Comparators specified by this method have less precedence than comparators added with registerComparatorForField(Comparator, FieldLocation)
.
See RecursiveComparisonAssert.withComparatorForType(Comparator, Class)
for examples.
T
- the class type to register a comparator forcomparator
- the Comparator
to use to compare the given fieldtype
- the type to be compared with the given comparator.public void registerComparatorForField(java.util.Comparator<?> comparator, FieldLocation fieldLocation)
Comparator
to compare the fields with the given locations.
The field locations must be specified from the root object,
for example if Foo
has a Bar
field which has an id
, one can register to a comparator for Bar's id
by calling:
registerComparatorForField(new FieldLocation("bar.id"), idComparator)
Comparators specified by this method have precedence over comparators added with registerComparatorForType(Comparator, Class)
.
See RecursiveComparisonAssert#withComparatorForFields(Comparator, String...)
for examples.
comparator
- the Comparator
to use to compare the given fieldfieldLocation
- the location from the root object of the field the comparator should be used forpublic void strictTypeChecking(boolean strictTypeChecking)
See RecursiveComparisonAssert.withStrictTypeChecking()
for code examples.
strictTypeChecking
- whether the recursive comparison will check that actual's type is compatible with expected's type.public boolean isInStrictTypeCheckingMode()
public java.util.List<java.util.regex.Pattern> getIgnoredFieldsRegexes()
public java.util.List<java.lang.Class<?>> getIgnoredOverriddenEqualsForTypes()
public java.util.List<FieldLocation> getIgnoredOverriddenEqualsForFields()
public java.util.List<java.util.regex.Pattern> getIgnoredOverriddenEqualsRegexes()
public java.util.stream.Stream<java.util.Map.Entry<FieldLocation,java.util.Comparator<?>>> comparatorByFields()
public java.lang.String toString()
toString
in class java.lang.Object
public java.lang.String multiLineDescription(Representation representation)
boolean shouldIgnore(DualValue dualKey)
java.util.function.Predicate<java.lang.String> shouldKeepField(java.lang.String parentConcatenatedPath)
private boolean shouldKeepField(java.lang.String parentPath, java.lang.String fieldName)
private static java.lang.String concatenatedPath(java.lang.String parentPath, java.lang.String name)
boolean shouldIgnoreOverriddenEqualsOf(DualValue dualValue)
boolean shouldIgnoreOverriddenEqualsOf(java.lang.Class<? extends java.lang.Object> clazz)
boolean shouldIgnoreCollectionOrder(DualValue dualKey)
private void describeIgnoredFieldsRegexes(java.lang.StringBuilder description)
private void describeIgnoredFields(java.lang.StringBuilder description)
private void describeIgnoreAllActualNullFields(java.lang.StringBuilder description)
private void describeOverriddenEqualsMethodsUsage(java.lang.StringBuilder description, Representation representation)
private void describeIgnoredOverriddenEqualsMethods(java.lang.StringBuilder description, Representation representation)
private java.lang.String describeIgnoredOverriddenEqualsForTypes(Representation representation)
private java.lang.String describeIgnoredOverriddenEqualsForFields()
private void describeIgnoreCollectionOrder(java.lang.StringBuilder description)
private void describeIgnoredCollectionOrderInFields(java.lang.StringBuilder description)
private void describeIgnoredCollectionOrderInFieldsMatchingRegexes(java.lang.StringBuilder description)
private boolean matchesAnIgnoredOverriddenEqualsRegex(java.lang.Class<?> clazz)
private boolean matchesAnIgnoredOverriddenEqualsType(java.lang.Class<?> clazz)
private boolean matchesAnIgnoredOverriddenEqualsField(DualValue dualKey)
private boolean matchesAnIgnoredNullField(DualValue dualKey)
private boolean matchesAnIgnoredFieldRegex(java.lang.String fieldConcatenatedPath)
private boolean matchesAnIgnoredFieldRegex(DualValue dualKey)
private boolean matchesAnIgnoredField(DualValue dualKey)
private boolean matchesAnIgnoredField(java.lang.String fieldConcatenatedPath)
private boolean matchesAnIgnoredCollectionOrderInField(DualValue dualKey)
private boolean matchesAnIgnoredCollectionOrderInFieldRegex(DualValue dualKey)
private java.lang.String describeIgnoredFields()
private java.lang.String describeIgnoredCollectionOrderInFields()
private java.lang.String describeRegexes(java.util.List<java.util.regex.Pattern> regexes)
private boolean isConfiguredToIgnoreSomeOverriddenEqualsMethods()
private void describeRegisteredComparatorByTypes(java.lang.StringBuilder description)
private void describeComparatorForTypes(java.lang.StringBuilder description)
private java.lang.String formatRegisteredComparatorByType(java.util.Map.Entry<java.lang.Class<?>,java.util.Comparator<?>> next)
private void describeRegisteredComparatorForFields(java.lang.StringBuilder description)
private void describeComparatorForFields(java.lang.StringBuilder description)
private java.lang.String formatRegisteredComparatorForField(java.util.Map.Entry<FieldLocation,java.util.Comparator<?>> comparatorForField)
private void describeTypeCheckingStrictness(java.lang.StringBuilder description)