Class Objects

java.lang.Object
org.assertj.core.internal.Objects

public class Objects extends Object
Reusable assertions for Objects.
  • Field Details

  • Constructor Details

  • Method Details

    • instance

      public static Objects instance()
      Returns the singleton instance of this class based on StandardComparisonStrategy.
      Returns:
      the singleton instance of this class based on StandardComparisonStrategy.
    • getComparator

      public Comparator<?> getComparator()
    • getComparisonStrategy

      public ComparisonStrategy getComparisonStrategy()
    • getFailures

      public Failures getFailures()
    • assertIsInstanceOf

      public void assertIsInstanceOf(AssertionInfo info, Object actual, Class<?> type)
      Verifies that the given object is an instance of the given type.
      Parameters:
      info - contains information about the assertion.
      actual - the given object.
      type - the type to check the given object against.
      Throws:
      NullPointerException - if the given type is null.
      AssertionError - if the given object is null.
      AssertionError - if the given object is not an instance of the given type.
    • assertIsInstanceOfAny

      public void assertIsInstanceOfAny(AssertionInfo info, Object actual, Class<?>[] types)
      Verifies that the given object is an instance of any of the given types.
      Parameters:
      info - contains information about the assertion.
      actual - the given object.
      types - the types to check the given object against.
      Throws:
      NullPointerException - if the given array is null.
      IllegalArgumentException - if the given array is empty.
      NullPointerException - if the given array has null elements.
      AssertionError - if the given object is null.
      AssertionError - if the given object is not an instance of any of the given types.
    • objectIsInstanceOfOneOfGivenClasses

      private boolean objectIsInstanceOfOneOfGivenClasses(Object actual, Class<?>[] types, AssertionInfo info)
    • assertIsNotInstanceOf

      public void assertIsNotInstanceOf(AssertionInfo info, Object actual, Class<?> type)
      Verifies that the given object is not an instance of the given type.
      Parameters:
      info - contains information about the assertion.
      actual - the given object.
      type - the type to check the given object against.
      Throws:
      NullPointerException - if the given type is null.
      AssertionError - if the given object is null.
      AssertionError - if the given object is an instance of the given type.
    • isInstanceOfClass

      private boolean isInstanceOfClass(Object actual, Class<?> clazz, AssertionInfo info)
    • assertIsNotInstanceOfAny

      public void assertIsNotInstanceOfAny(AssertionInfo info, Object actual, Class<?>[] types)
      Verifies that the given object is not an instance of any of the given types.
      Parameters:
      info - contains information about the assertion.
      actual - the given object.
      types - the types to check the given object against.
      Throws:
      NullPointerException - if the given array is null.
      IllegalArgumentException - if the given array is empty.
      NullPointerException - if the given array has null elements.
      AssertionError - if the given object is null.
      AssertionError - if the given object is an instance of any of the given types.
    • assertHasSameClassAs

      public void assertHasSameClassAs(AssertionInfo info, Object actual, Object other)
      Verifies that the actual value has the same class as the given object.
      Parameters:
      info - contains information about the assertion.
      actual - the given object.
      other - the object to check type against.
      Throws:
      AssertionError - if the actual has not the same type has the given object.
      NullPointerException - if the actual value is null.
      NullPointerException - if the given object is null.
    • haveSameClass

      private boolean haveSameClass(Object actual, Object other, AssertionInfo info)
    • assertDoesNotHaveSameClassAs

      public void assertDoesNotHaveSameClassAs(AssertionInfo info, Object actual, Object other)
      Verifies that the actual value does not have the same class as the given object.
      Parameters:
      info - contains information about the assertion.
      actual - the given object.
      other - the object to check type against.
      Throws:
      AssertionError - if the actual has the same type has the given object.
      NullPointerException - if the actual value is null.
      NullPointerException - if the given object is null.
    • assertIsExactlyInstanceOf

      public void assertIsExactlyInstanceOf(AssertionInfo info, Object actual, Class<?> type)
      Verifies that the actual value is exactly an instance of given type.
      Parameters:
      info - contains information about the assertion.
      actual - the given object.
      type - the type to check the actual value against.
      Throws:
      AssertionError - if the actual is not exactly an instance of given type.
      NullPointerException - if the actual value is null.
      NullPointerException - if the given object is null.
    • actualIsExactlyInstanceOfType

      private boolean actualIsExactlyInstanceOfType(Object actual, Class<?> expectedType, AssertionInfo info)
    • assertIsNotExactlyInstanceOf

      public void assertIsNotExactlyInstanceOf(AssertionInfo info, Object actual, Class<?> type)
      Verifies that the actual value is not exactly an instance of given type.
      Parameters:
      info - contains information about the assertion.
      actual - the given object.
      type - the type to check the actual value against.
      Throws:
      AssertionError - if the actual is exactly an instance of given type.
      NullPointerException - if the actual value is null.
      NullPointerException - if the given object is null.
    • assertIsOfAnyClassIn

      public void assertIsOfAnyClassIn(AssertionInfo info, Object actual, Class<?>[] types)
      Verifies that the actual value type is in given types.
      Parameters:
      info - contains information about the assertion.
      actual - the given object.
      types - the types to check the actual value against.
      Throws:
      AssertionError - if the actual value type is in given type.
      NullPointerException - if the actual value is null.
      NullPointerException - if the given types is null.
    • isOfOneOfGivenTypes

      private boolean isOfOneOfGivenTypes(Object actual, Class<?>[] types, AssertionInfo info)
    • assertIsNotOfAnyClassIn

      public void assertIsNotOfAnyClassIn(AssertionInfo info, Object actual, Class<?>[] types)
      Verifies that the actual value type is not in given types.
      Parameters:
      info - contains information about the assertion.
      actual - the given object.
      types - the types to check the actual value against.
      Throws:
      AssertionError - if the actual value type is in given type.
      NullPointerException - if the actual value is null.
      NullPointerException - if the given types is null.
    • checkIsNotNullAndIsNotEmpty

      private void checkIsNotNullAndIsNotEmpty(Class<?>[] types)
    • assertEqual

      public void assertEqual(AssertionInfo info, Object actual, Object expected)
      Asserts that two objects are equal.
      Parameters:
      info - contains information about the assertion.
      actual - the "actual" object.
      expected - the "expected" object.
      Throws:
      AssertionError - if actual is not equal to expected. This method will throw a org.junit.ComparisonFailure instead if JUnit is in the classpath and the given objects are not equal.
    • assertNotEqual

      public void assertNotEqual(AssertionInfo info, Object actual, Object other)
      Asserts that two objects are not equal.
      Parameters:
      info - contains information about the assertion.
      actual - the given object.
      other - the object to compare actual to.
      Throws:
      AssertionError - if actual is equal to other.
    • areEqual

      private boolean areEqual(Object actual, Object other)
      Compares actual and other with standard strategy (null safe equals check).
      Parameters:
      actual - the object to compare to other
      other - the object to compare to actual
      Returns:
      true if actual and other are equal (null safe equals check), false otherwise.
    • assertNull

      public void assertNull(AssertionInfo info, Object actual)
      Asserts that the given object is null.
      Parameters:
      info - contains information about the assertion.
      actual - the given object.
      Throws:
      AssertionError - if the given object is not null.
    • assertNotNull

      public void assertNotNull(AssertionInfo info, Object actual)
      Asserts that the given object is not null.
      Parameters:
      info - contains information about the assertion.
      actual - the given object.
      Throws:
      AssertionError - if the given object is null.
    • assertNotNull

      public void assertNotNull(AssertionInfo info, Object actual, String label)
      Asserts that the given object is not null.
      Parameters:
      info - contains information about the assertion.
      actual - the given object.
      label - the label to represent actual in the error message
      Throws:
      AssertionError - if the given object is null.
    • assertSame

      public void assertSame(AssertionInfo info, Object actual, Object expected)
      Asserts that two objects refer to the same object.
      Parameters:
      info - contains information about the assertion.
      actual - the given object.
      expected - the expected object.
      Throws:
      AssertionError - if the given objects do not refer to the same object.
    • assertNotSame

      public void assertNotSame(AssertionInfo info, Object actual, Object other)
      Asserts that two objects do not refer to the same object.
      Parameters:
      info - contains information about the assertion.
      actual - the given object.
      other - the object to compare actual to.
      Throws:
      AssertionError - if the given objects refer to the same object.
    • assertHasToString

      public void assertHasToString(AssertionInfo info, Object actual, String expectedToString)
      Verifies that the actual ToString value is equal to the given String.
      Parameters:
      info - contains information about the assertion.
      actual - the given object.
      expectedToString - the string to compare against.
      Throws:
      AssertionError - if the actual ToString value is not equal to the given String.
      NullPointerException - if the actual value is null.
    • assertDoesNotHaveToString

      public void assertDoesNotHaveToString(AssertionInfo info, Object actual, String otherToString)
      Verifies that the actual ToString value is not equal to the given String.
      Parameters:
      info - contains information about the assertion.
      actual - the given object.
      otherToString - the string to compare against.
      Throws:
      AssertionError - if the actual ToString value is equal to the given String.
      NullPointerException - if the actual value is null.
    • assertIsIn

      public void assertIsIn(AssertionInfo info, Object actual, Object[] values)
      Asserts that the given object is present in the given array.
      Parameters:
      info - contains information about the assertion.
      actual - the given object.
      values - the given array.
      Throws:
      NullPointerException - if the given array is null.
      AssertionError - if the given object is not present in the given array.
    • assertIsNotIn

      public void assertIsNotIn(AssertionInfo info, Object actual, Object[] values)
      Asserts that the given object is not present in the given array.
      Parameters:
      info - contains information about the assertion.
      actual - the given object.
      values - the given array.
      Throws:
      NullPointerException - if the given array is null.
      AssertionError - if the given object is present in the given array.
    • checkArrayIsNotNull

      private void checkArrayIsNotNull(Object[] values)
    • isItemInArray

      private boolean isItemInArray(Object item, Object[] arrayOfValues)
      Returns true if given item is in given array, false otherwise.
      Parameters:
      item - the object to look for in arrayOfValues
      arrayOfValues - the array of values
      Returns:
      true if given item is in given array, false otherwise.
    • assertIsIn

      public void assertIsIn(AssertionInfo info, Object actual, Iterable<?> values)
      Asserts that the given object is present in the given collection.
      Parameters:
      info - contains information about the assertion.
      actual - the given object.
      values - the given iterable.
      Throws:
      NullPointerException - if the given collection is null.
      AssertionError - if the given object is not present in the given collection.
    • assertIsNotIn

      public void assertIsNotIn(AssertionInfo info, Object actual, Iterable<?> values)
      Asserts that the given object is not present in the given collection.
      Parameters:
      info - contains information about the assertion.
      actual - the given object.
      values - the given collection.
      Throws:
      NullPointerException - if the given iterable is null.
      AssertionError - if the given object is present in the given collection.
    • checkNotNullIterable

      private void checkNotNullIterable(Iterable<?> values)
    • isActualIn

      private boolean isActualIn(Object actual, Iterable<?> values)
    • assertIsEqualToIgnoringNullFields

      public <A> void assertIsEqualToIgnoringNullFields(AssertionInfo info, A actual, A other, Map<String,Comparator<?>> comparatorByPropertyOrField, TypeComparators comparatorByType)
      Assert that the given object is lenient equals by ignoring null fields value on other object (including inherited fields).
      Type Parameters:
      A - the actual type
      Parameters:
      info - contains information about the assertion.
      actual - the given object.
      other - the object to compare actual to.
      comparatorByPropertyOrField - comparators use for specific fields
      comparatorByType - comparators use for specific types
      Throws:
      NullPointerException - if the actual type is null.
      NullPointerException - if the other type is null.
      AssertionError - if the actual and the given object are not lenient equals.
      AssertionError - if the other object is not an instance of the actual type.
    • assertIsEqualToComparingOnlyGivenFields

      public <A> void assertIsEqualToComparingOnlyGivenFields(AssertionInfo info, A actual, A other, Map<String,Comparator<?>> comparatorByPropertyOrField, TypeComparators comparatorByType, String... fields)
      Assert that the given object is lenient equals to other object by comparing given fields value only.
      Type Parameters:
      A - the actual type
      Parameters:
      info - contains information about the assertion.
      actual - the given object.
      other - the object to compare actual to.
      comparatorByPropertyOrField - comparators use for specific fields
      comparatorByType - comparators use for specific types
      fields - accepted fields
      Throws:
      NullPointerException - if the other type is null.
      AssertionError - if actual is null.
      AssertionError - if the actual and the given object are not lenient equals.
      AssertionError - if the other object is not an instance of the actual type.
      IntrospectionError - if a field does not exist in actual.
    • isEqualToComparingOnlyGivenFields

      private <A> Objects.ByFieldsComparison isEqualToComparingOnlyGivenFields(A actual, A other, Map<String,Comparator<?>> comparatorByPropertyOrField, TypeComparators comparatorByType, String[] fields)
    • assertIsEqualToIgnoringGivenFields

      public <A> void assertIsEqualToIgnoringGivenFields(AssertionInfo info, A actual, A other, Map<String,Comparator<?>> comparatorByPropertyOrField, TypeComparators comparatorByType, String... fields)
      Assert that the given object is lenient equals to the other by comparing all fields (including inherited fields) unless given ignored ones.
      Type Parameters:
      A - the actual type
      Parameters:
      info - contains information about the assertion.
      actual - the given object.
      other - the object to compare actual to.
      comparatorByPropertyOrField - comparators use for specific fields
      comparatorByType - comparators use for specific types
      fields - the fields to ignore in comparison
      Throws:
      NullPointerException - if the other type is null.
      AssertionError - if actual is null.
      AssertionError - if the actual and the given object are not lenient equals.
      AssertionError - if the other object is not an instance of the actual type.
    • isEqualToIgnoringGivenFields

      private <A> Objects.ByFieldsComparison isEqualToIgnoringGivenFields(A actual, A other, Map<String,Comparator<?>> comparatorByPropertyOrField, TypeComparators comparatorByType, String[] givenIgnoredFields)
    • propertyOrFieldValuesAreEqual

      static boolean propertyOrFieldValuesAreEqual(Object actualFieldValue, Object otherFieldValue, String fieldName, Map<String,Comparator<?>> comparatorByPropertyOrField, TypeComparators comparatorByType)
    • canReadFieldValue

      private <A> boolean canReadFieldValue(Field field, A actual)
    • assertHasNoNullFieldsOrPropertiesExcept

      public <A> void assertHasNoNullFieldsOrPropertiesExcept(AssertionInfo info, A actual, String... propertiesOrFieldsToIgnore)
      Assert that the given object has no null fields except the given ones.
      Type Parameters:
      A - the actual type.
      Parameters:
      info - contains information about the assertion.
      actual - the given object.
      propertiesOrFieldsToIgnore - the fields to ignore in comparison.
      Throws:
      AssertionError - if actual is null.
      AssertionError - if some of the fields of the actual object are null.
    • assertHasAllNullFieldsOrPropertiesExcept

      public <A> void assertHasAllNullFieldsOrPropertiesExcept(AssertionInfo info, A actual, String... propertiesOrFieldsToIgnore)
      Asserts that the given object has null fields except the given ones.
      Type Parameters:
      A - the actual type.
      Parameters:
      info - contains information about the assertion.
      actual - the given object.
      propertiesOrFieldsToIgnore - the fields to ignore in comparison.
      Throws:
      AssertionError - is actual is null.
      AssertionError - if some of the fields of the actual object are not null.
    • assertIsEqualToComparingFieldByFieldRecursively

      public <A> void assertIsEqualToComparingFieldByFieldRecursively(AssertionInfo info, Object actual, Object other, Map<String,Comparator<?>> comparatorByPropertyOrField, TypeComparators comparatorByType)
      Assert that the given object is "deeply" equals to other by comparing all fields recursively.
      Type Parameters:
      A - the actual type
      Parameters:
      info - contains information about the assertion.
      actual - the given object.
      other - the object to compare actual to.
      comparatorByPropertyOrField - comparators use for specific fields
      comparatorByType - comparators use for specific types
      Throws:
      AssertionError - if actual is null.
      AssertionError - if the actual and the given object are not "deeply" equal.
    • getPropertyOrFieldValue

      private <A> Object getPropertyOrFieldValue(A a, String fieldName)
      Get property value first and in case of error try field value.

      This method supports nested field/property (e.g. "address.street.number").

      Type Parameters:
      A - the actual type
      Parameters:
      a - the object to get field value from
      fieldName - Field name to read, can be nested
      Returns:
      (nested) field value or property value if field was not accessible.
      Throws:
      IntrospectionError - is field value can't get retrieved.
    • getDeclaredFieldsIncludingInherited

      public static Set<Field> getDeclaredFieldsIncludingInherited(Class<?> clazz)
      Returns the declared fields of given class and its superclasses stopping at superclass in java.lang package whose fields are not included.
      Parameters:
      clazz - the class we want the declared fields.
      Returns:
      the declared fields of given class and its superclasses.
    • getFieldsNames

      public static Set<String> getFieldsNames(Class<?> clazz)
    • getDeclaredFieldsIgnoringSyntheticAndStatic

      private static Set<Field> getDeclaredFieldsIgnoringSyntheticAndStatic(Class<?> clazz)
      Returns the declared fields of a given class excluding any synthetic or static fields.

      Synthetic fields are fields that are generated by the compiler for access purposes, or by instrumentation tools e.g. JaCoCo adds in a $jacocoData field and therefore should be ignored when comparing fields.

      Static fields are used as constants, and are not associated with an object.

      Parameters:
      clazz - the class we want the declared fields.
      Returns:
      the declared fields of given class excluding any synthetic fields.
    • areEqualToIgnoringGivenFields

      public boolean areEqualToIgnoringGivenFields(Object actual, Object other, Map<String,Comparator<?>> comparatorByPropertyOrField, TypeComparators comparatorByType, String... fields)
    • areEqualToComparingOnlyGivenFields

      public boolean areEqualToComparingOnlyGivenFields(Object actual, Object other, Map<String,Comparator<?>> comparatorByPropertyOrField, TypeComparators comparatorByType, String... fields)
    • assertHasFieldOrProperty

      public <A> void assertHasFieldOrProperty(AssertionInfo info, A actual, String name)
    • assertHasFieldOrPropertyWithValue

      public <A> void assertHasFieldOrPropertyWithValue(AssertionInfo info, A actual, String name, Object expectedValue)
    • assertHasOnlyFields

      public <A> void assertHasOnlyFields(AssertionInfo info, A actual, String... names)
    • extractPropertyOrField

      private <A> Object extractPropertyOrField(A actual, String name)
    • assertHasSameHashCodeAs

      public <A> void assertHasSameHashCodeAs(AssertionInfo info, A actual, Object other)
      Asserts that the actual object has the same hashCode as the given object.
      Type Parameters:
      A - the actual type
      Parameters:
      info - contains information about the assertion.
      actual - the given object.
      other - the object to check hashCode against.
      Throws:
      AssertionError - if the actual object is null.
      AssertionError - if the given object is null.
      AssertionError - if the actual object has not the same hashCode as the given object.
    • assertDoesNotHaveSameHashCodeAs

      public <A> void assertDoesNotHaveSameHashCodeAs(AssertionInfo info, A actual, Object other)
      Asserts that the actual object does not the same hashCode as the given object.
      Type Parameters:
      A - the actual type
      Parameters:
      info - contains information about the assertion.
      actual - the given object.
      other - the object to check hashCode against.
      Throws:
      AssertionError - if the actual object is null.
      AssertionError - if the given object is null.
      AssertionError - if the actual object has the same hashCode as the given object.