Package org.assertj.core.api.recursive
Class AbstractRecursiveOperationConfiguration
- java.lang.Object
-
- org.assertj.core.api.recursive.AbstractRecursiveOperationConfiguration
-
- Direct Known Subclasses:
RecursiveAssertionConfiguration
,RecursiveComparisonConfiguration
public abstract class AbstractRecursiveOperationConfiguration extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
AbstractRecursiveOperationConfiguration.AbstractBuilder<BUILDER_TYPE extends AbstractRecursiveOperationConfiguration.AbstractBuilder<BUILDER_TYPE>>
-
Field Summary
Fields Modifier and Type Field Description protected static java.lang.String
DEFAULT_DELIMITER
private java.util.Set<java.lang.String>
ignoredFields
private java.util.List<java.util.regex.Pattern>
ignoredFieldsRegexes
private java.util.Set<java.lang.Class<?>>
ignoredTypes
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractRecursiveOperationConfiguration()
protected
AbstractRecursiveOperationConfiguration(AbstractRecursiveOperationConfiguration.AbstractBuilder<?> builder)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected static java.lang.Class<?>
asWrapperIfPrimitiveType(java.lang.Class<?> type)
private java.lang.String
describeIgnoredFields()
protected void
describeIgnoredFields(java.lang.StringBuilder description)
protected void
describeIgnoredFieldsRegexes(java.lang.StringBuilder description)
protected java.lang.String
describeIgnoredTypes()
protected java.lang.String
describeRegexes(java.util.List<java.util.regex.Pattern> regexes)
java.util.Set<java.lang.String>
getIgnoredFields()
Returns the set of fields from the object under test to ignore in the recursive comparison.java.util.List<java.util.regex.Pattern>
getIgnoredFieldsRegexes()
java.util.Set<java.lang.Class<?>>
getIgnoredTypes()
Returns the set of fields from the object under test types to ignore in the recursive comparison.void
ignoreFields(java.lang.String... fieldsToIgnore)
Adds the given fields to the set of fields from the object under test 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
ignoreFieldsOfTypes(java.lang.Class<?>... types)
Makes the recursive assertion to ignore the object under test fields of the given types.protected static java.lang.String
join(java.util.Collection<java.lang.String> typesDescription)
boolean
matchesAnIgnoredField(FieldLocation fieldLocation)
boolean
matchesAnIgnoredFieldRegex(FieldLocation fieldLocation)
-
-
-
Field Detail
-
DEFAULT_DELIMITER
protected static final java.lang.String DEFAULT_DELIMITER
- See Also:
- Constant Field Values
-
ignoredFields
private final java.util.Set<java.lang.String> ignoredFields
-
ignoredFieldsRegexes
private final java.util.List<java.util.regex.Pattern> ignoredFieldsRegexes
-
ignoredTypes
private final java.util.Set<java.lang.Class<?>> ignoredTypes
-
-
Constructor Detail
-
AbstractRecursiveOperationConfiguration
protected AbstractRecursiveOperationConfiguration(AbstractRecursiveOperationConfiguration.AbstractBuilder<?> builder)
-
AbstractRecursiveOperationConfiguration
protected AbstractRecursiveOperationConfiguration()
-
-
Method Detail
-
ignoreFields
public void ignoreFields(java.lang.String... fieldsToIgnore)
Adds the given fields to the set of fields from the object under test to ignore in the recursive comparison.The fields are ignored by name, not by value.
See
RecursiveComparisonAssert#ignoringFields(String...)
for examples.- Parameters:
fieldsToIgnore
- the fields of the object under test to ignore in the comparison.
-
getIgnoredFields
public java.util.Set<java.lang.String> getIgnoredFields()
Returns the set of fields from the object under test to ignore in the recursive comparison.- Returns:
- the set of fields from the object under test to ignore in the recursive 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.
-
getIgnoredFieldsRegexes
public java.util.List<java.util.regex.Pattern> getIgnoredFieldsRegexes()
-
ignoreFieldsOfTypes
public void ignoreFieldsOfTypes(java.lang.Class<?>... types)
Makes the recursive assertion to ignore the object under test fields of the given types. The fields are ignored if their types exactly match one of the ignored types, for example if a field is a subtype of an ignored type it is not ignored.If some object under test fields are null it is not possible to evaluate their types and thus these fields are not ignored.
Example:
public class Person { String name; String occupation; Address address = new Address(); } public static class Address { int number; String street; } Person sherlock = new Person("Sherlock", "Detective"); sherlock.address.street = "Baker Street"; sherlock.address.number = 221; // assertion succeeds Person has only String fields except for address assertThat(sherlock).usingRecursiveAssertion() .ignoringFieldsOfTypes(Address.class) .allFieldsSatisfy(field -> field instanceof String); // assertion fails because of address and address.number assertThat(sherlock).usingRecursiveComparison() .allFieldsSatisfy(field -> field instanceof String);
- Parameters:
types
- the types of the object under test to ignore in the comparison.
-
asWrapperIfPrimitiveType
protected static java.lang.Class<?> asWrapperIfPrimitiveType(java.lang.Class<?> type)
-
getIgnoredTypes
public java.util.Set<java.lang.Class<?>> getIgnoredTypes()
Returns the set of fields from the object under test types to ignore in the recursive comparison.- Returns:
- the set of fields from the object under test types to ignore in the recursive comparison.
-
describeIgnoredFields
protected void describeIgnoredFields(java.lang.StringBuilder description)
-
describeIgnoredFieldsRegexes
protected void describeIgnoredFieldsRegexes(java.lang.StringBuilder description)
-
describeIgnoredTypes
protected java.lang.String describeIgnoredTypes()
-
describeRegexes
protected java.lang.String describeRegexes(java.util.List<java.util.regex.Pattern> regexes)
-
join
protected static java.lang.String join(java.util.Collection<java.lang.String> typesDescription)
-
matchesAnIgnoredFieldRegex
public boolean matchesAnIgnoredFieldRegex(FieldLocation fieldLocation)
-
matchesAnIgnoredField
public boolean matchesAnIgnoredField(FieldLocation fieldLocation)
-
describeIgnoredFields
private java.lang.String describeIgnoredFields()
-
-