Class RecursiveComparisonConfiguration
- java.lang.Object
-
- org.assertj.core.api.recursive.comparison.RecursiveComparisonConfiguration
-
public class RecursiveComparisonConfiguration extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field 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 Summary
Constructors Constructor Description RecursiveComparisonConfiguration()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method 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(java.lang.String fieldConcatenatedPath)
private boolean
matchesAnIgnoredField(DualValue dualKey)
private boolean
matchesAnIgnoredFieldRegex(java.lang.String fieldConcatenatedPath)
private boolean
matchesAnIgnoredFieldRegex(DualValue dualKey)
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 givenComparator
to compare the fields with the given locations.<T> void
registerComparatorForType(java.util.Comparator<? super T> comparator, java.lang.Class<T> type)
Registers the givenComparator
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()
-
-
-
Field Detail
-
INDENT_LEVEL_2
public static final java.lang.String INDENT_LEVEL_2
- See Also:
- Constant Field Values
-
strictTypeChecking
private boolean strictTypeChecking
-
ignoreAllActualNullFields
private boolean ignoreAllActualNullFields
-
ignoredFields
private java.util.Set<FieldLocation> ignoredFields
-
ignoredFieldsRegexes
private java.util.List<java.util.regex.Pattern> ignoredFieldsRegexes
-
ignoredOverriddenEqualsForTypes
private java.util.List<java.lang.Class<?>> ignoredOverriddenEqualsForTypes
-
ignoredOverriddenEqualsForFields
private java.util.List<FieldLocation> ignoredOverriddenEqualsForFields
-
ignoredOverriddenEqualsRegexes
private java.util.List<java.util.regex.Pattern> ignoredOverriddenEqualsRegexes
-
ignoreAllOverriddenEquals
private boolean ignoreAllOverriddenEquals
-
ignoreCollectionOrder
private boolean ignoreCollectionOrder
-
ignoredCollectionOrderInFields
private java.util.Set<FieldLocation> ignoredCollectionOrderInFields
-
ignoredCollectionOrderInFieldsMatchingRegexes
private java.util.List<java.util.regex.Pattern> ignoredCollectionOrderInFieldsMatchingRegexes
-
typeComparators
private TypeComparators typeComparators
-
fieldComparators
private FieldComparators fieldComparators
-
-
Method Detail
-
hasComparatorForField
public boolean hasComparatorForField(java.lang.String fieldName)
-
getComparatorForField
public java.util.Comparator<?> getComparatorForField(java.lang.String fieldName)
-
getFieldComparators
public FieldComparators getFieldComparators()
-
hasComparatorForType
public boolean hasComparatorForType(java.lang.Class<?> keyType)
-
hasCustomComparators
public boolean hasCustomComparators()
-
getComparatorForType
public java.util.Comparator<?> getComparatorForType(java.lang.Class<?> fieldType)
-
getTypeComparators
public TypeComparators getTypeComparators()
-
comparatorByTypes
java.util.stream.Stream<java.util.Map.Entry<java.lang.Class<?>,java.util.Comparator<?>>> comparatorByTypes()
-
getIgnoreAllActualNullFields
boolean getIgnoreAllActualNullFields()
-
setIgnoreAllActualNullFields
public void setIgnoreAllActualNullFields(boolean ignoreAllActualNullFields)
Sets whether actual null fields are ignored in the recursive comparison.See
RecursiveComparisonAssert.ignoringActualNullFields()
for code examples.- Parameters:
ignoreAllActualNullFields
- whether to ingore actual null fields in the recursive comparison
-
ignoreFields
public 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.See
RecursiveComparisonAssert#ignoringFields(String...)
for examples.- Parameters:
fieldsToIgnore
- the fields of the object under test to ignore in the comparison.
-
ignoreFieldsMatchingRegexes
public void ignoreFieldsMatchingRegexes(java.lang.String... regexes)
Allows to ignore in the recursive comparison the object under test fields matching the given regexes. The given regexes are added to the already registered ones.See
RecursiveComparisonAssert#ignoringFieldsMatchingRegexes(String...)
for examples.- Parameters:
regexes
- regexes used to ignore fields in the comparison.
-
getIgnoredFields
public java.util.Set<FieldLocation> getIgnoredFields()
Returns the list of the object under test fields to ignore in the recursive comparison.- Returns:
- the list of the object under test fields to ignore in the recursive comparison.
-
ignoreAllOverriddenEquals
public void ignoreAllOverriddenEquals()
Force a recursive comparison on all fields (except java types).See
RecursiveComparisonAssert.ignoringAllOverriddenEquals()
for examples.
-
ignoreOverriddenEqualsForFields
public void ignoreOverriddenEqualsForFields(java.lang.String... fields)
Adds the given fields to the list of fields to force a recursive comparison on.See
RecursiveComparisonAssert#ignoringOverriddenEqualsForFields(String...)
for examples.- Parameters:
fields
- the fields to force a recursive comparison on.
-
ignoreOverriddenEqualsForFieldsMatchingRegexes
public 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.See
RecursiveComparisonAssert#ignoringOverriddenEqualsForFieldsMatchingRegexes(String...)
for examples.- Parameters:
regexes
- regexes used to specify the fields we want to force a recursive comparison on.
-
ignoreOverriddenEqualsForTypes
public void ignoreOverriddenEqualsForTypes(java.lang.Class<?>... types)
Adds the given types to the list of types to force a recursive comparison on.See
RecursiveComparisonAssert#ignoringOverriddenEqualsForTypes(Class...)
for examples.- Parameters:
types
- the types to the list of types to force a recursive comparison on.
-
getIgnoreCollectionOrder
boolean getIgnoreCollectionOrder()
-
ignoreCollectionOrder
public void ignoreCollectionOrder(boolean ignoreCollectionOrder)
Sets whether to ignore collection order in the comparison.See
RecursiveComparisonAssert.ignoringCollectionOrder()
for code examples.- Parameters:
ignoreCollectionOrder
- whether to ignore collection order in the comparison.
-
ignoreCollectionOrderInFields
public 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.See
RecursiveComparisonAssert#ignoringCollectionOrderInFields(String...)
for examples.- Parameters:
fieldsToIgnoreCollectionOrder
- the fields of the object under test to ignore collection order in the comparison.
-
getIgnoredCollectionOrderInFields
public java.util.Set<FieldLocation> getIgnoredCollectionOrderInFields()
Returns the list of the object under test fields to ignore collection order in the recursive comparison.- Returns:
- the list of the object under test fields to ignore collection order in the recursive comparison.
-
ignoreCollectionOrderInFieldsMatchingRegexes
public 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.See
RecursiveComparisonAssert#ignoringCollectionOrderInFieldsMatchingRegexes(String...)
for examples.- Parameters:
regexes
- regexes used to find the object under test fields to ignore collection order in in the comparison.
-
getIgnoredCollectionOrderInFieldsMatchingRegexes
public 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.- Returns:
- the list of regexes used to find the object under test fields to ignore collection order in the recursive comparison.
-
registerComparatorForType
public <T> void registerComparatorForType(java.util.Comparator<? super T> comparator, java.lang.Class<T> type)
Registers the givenComparator
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.- Type Parameters:
T
- the class type to register a comparator for- Parameters:
comparator
- theComparator
to use to compare the given fieldtype
- the type to be compared with the given comparator.
-
registerComparatorForField
public void registerComparatorForField(java.util.Comparator<?> comparator, FieldLocation fieldLocation)
Registers the givenComparator
to compare the fields with the given locations.The field locations must be specified from the root object, for example if
Foo
has aBar
field which has anid
, one can register to a comparator for Bar'sid
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.- Parameters:
comparator
- theComparator
to use to compare the given fieldfieldLocation
- the location from the root object of the field the comparator should be used for
-
strictTypeChecking
public 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). Compatible means that the expected's type is the same or a subclass of actual's type.See
RecursiveComparisonAssert.withStrictTypeChecking()
for code examples.- Parameters:
strictTypeChecking
- whether the recursive comparison will check that actual's type is compatible with expected's type.
-
isInStrictTypeCheckingMode
public boolean isInStrictTypeCheckingMode()
-
getIgnoredFieldsRegexes
public java.util.List<java.util.regex.Pattern> getIgnoredFieldsRegexes()
-
getIgnoredOverriddenEqualsForTypes
public java.util.List<java.lang.Class<?>> getIgnoredOverriddenEqualsForTypes()
-
getIgnoredOverriddenEqualsForFields
public java.util.List<FieldLocation> getIgnoredOverriddenEqualsForFields()
-
getIgnoredOverriddenEqualsRegexes
public java.util.List<java.util.regex.Pattern> getIgnoredOverriddenEqualsRegexes()
-
comparatorByFields
public java.util.stream.Stream<java.util.Map.Entry<FieldLocation,java.util.Comparator<?>>> comparatorByFields()
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
multiLineDescription
public java.lang.String multiLineDescription(Representation representation)
-
shouldIgnore
boolean shouldIgnore(DualValue dualKey)
-
shouldKeepField
java.util.function.Predicate<java.lang.String> shouldKeepField(java.lang.String parentConcatenatedPath)
-
shouldKeepField
private boolean shouldKeepField(java.lang.String parentPath, java.lang.String fieldName)
-
concatenatedPath
private static java.lang.String concatenatedPath(java.lang.String parentPath, java.lang.String name)
-
shouldIgnoreOverriddenEqualsOf
boolean shouldIgnoreOverriddenEqualsOf(DualValue dualValue)
-
shouldIgnoreOverriddenEqualsOf
boolean shouldIgnoreOverriddenEqualsOf(java.lang.Class<? extends java.lang.Object> clazz)
-
shouldIgnoreCollectionOrder
boolean shouldIgnoreCollectionOrder(DualValue dualKey)
-
describeIgnoredFieldsRegexes
private void describeIgnoredFieldsRegexes(java.lang.StringBuilder description)
-
describeIgnoredFields
private void describeIgnoredFields(java.lang.StringBuilder description)
-
describeIgnoreAllActualNullFields
private void describeIgnoreAllActualNullFields(java.lang.StringBuilder description)
-
describeOverriddenEqualsMethodsUsage
private void describeOverriddenEqualsMethodsUsage(java.lang.StringBuilder description, Representation representation)
-
describeIgnoredOverriddenEqualsMethods
private void describeIgnoredOverriddenEqualsMethods(java.lang.StringBuilder description, Representation representation)
-
describeIgnoredOverriddenEqualsForTypes
private java.lang.String describeIgnoredOverriddenEqualsForTypes(Representation representation)
-
describeIgnoredOverriddenEqualsForFields
private java.lang.String describeIgnoredOverriddenEqualsForFields()
-
describeIgnoreCollectionOrder
private void describeIgnoreCollectionOrder(java.lang.StringBuilder description)
-
describeIgnoredCollectionOrderInFields
private void describeIgnoredCollectionOrderInFields(java.lang.StringBuilder description)
-
describeIgnoredCollectionOrderInFieldsMatchingRegexes
private void describeIgnoredCollectionOrderInFieldsMatchingRegexes(java.lang.StringBuilder description)
-
matchesAnIgnoredOverriddenEqualsRegex
private boolean matchesAnIgnoredOverriddenEqualsRegex(java.lang.Class<?> clazz)
-
matchesAnIgnoredOverriddenEqualsType
private boolean matchesAnIgnoredOverriddenEqualsType(java.lang.Class<?> clazz)
-
matchesAnIgnoredOverriddenEqualsField
private boolean matchesAnIgnoredOverriddenEqualsField(DualValue dualKey)
-
matchesAnIgnoredNullField
private boolean matchesAnIgnoredNullField(DualValue dualKey)
-
matchesAnIgnoredFieldRegex
private boolean matchesAnIgnoredFieldRegex(java.lang.String fieldConcatenatedPath)
-
matchesAnIgnoredFieldRegex
private boolean matchesAnIgnoredFieldRegex(DualValue dualKey)
-
matchesAnIgnoredField
private boolean matchesAnIgnoredField(DualValue dualKey)
-
matchesAnIgnoredField
private boolean matchesAnIgnoredField(java.lang.String fieldConcatenatedPath)
-
matchesAnIgnoredCollectionOrderInField
private boolean matchesAnIgnoredCollectionOrderInField(DualValue dualKey)
-
matchesAnIgnoredCollectionOrderInFieldRegex
private boolean matchesAnIgnoredCollectionOrderInFieldRegex(DualValue dualKey)
-
describeIgnoredFields
private java.lang.String describeIgnoredFields()
-
describeIgnoredCollectionOrderInFields
private java.lang.String describeIgnoredCollectionOrderInFields()
-
describeRegexes
private java.lang.String describeRegexes(java.util.List<java.util.regex.Pattern> regexes)
-
isConfiguredToIgnoreSomeOverriddenEqualsMethods
private boolean isConfiguredToIgnoreSomeOverriddenEqualsMethods()
-
describeRegisteredComparatorByTypes
private void describeRegisteredComparatorByTypes(java.lang.StringBuilder description)
-
describeComparatorForTypes
private void describeComparatorForTypes(java.lang.StringBuilder description)
-
formatRegisteredComparatorByType
private java.lang.String formatRegisteredComparatorByType(java.util.Map.Entry<java.lang.Class<?>,java.util.Comparator<?>> next)
-
describeRegisteredComparatorForFields
private void describeRegisteredComparatorForFields(java.lang.StringBuilder description)
-
describeComparatorForFields
private void describeComparatorForFields(java.lang.StringBuilder description)
-
formatRegisteredComparatorForField
private java.lang.String formatRegisteredComparatorForField(java.util.Map.Entry<FieldLocation,java.util.Comparator<?>> comparatorForField)
-
describeTypeCheckingStrictness
private void describeTypeCheckingStrictness(java.lang.StringBuilder description)
-
-