Class SamePropertyValuesAs<T>

java.lang.Object
org.hamcrest.BaseMatcher<T>
org.hamcrest.DiagnosingMatcher<T>
org.hamcrest.beans.SamePropertyValuesAs<T>
All Implemented Interfaces:
Matcher<T>, SelfDescribing

public class SamePropertyValuesAs<T> extends DiagnosingMatcher<T>
  • Field Details

  • Constructor Details

    • SamePropertyValuesAs

      public SamePropertyValuesAs(T expectedBean, List<String> ignoredProperties)
  • Method Details

    • matches

      protected boolean matches(Object actual, Description mismatch)
      Specified by:
      matches in class DiagnosingMatcher<T>
    • describeTo

      public void describeTo(Description description)
      Description copied from interface: SelfDescribing
      Generates a description of the object. The description may be part of a a description of a larger object of which this is just a component, so it should be worded appropriately.
      Parameters:
      description - The description to be built or appended to.
    • isCompatibleType

      private boolean isCompatibleType(Object actual, Description mismatchDescription)
    • hasNoExtraProperties

      private boolean hasNoExtraProperties(Object actual, Description mismatchDescription)
    • hasMatchingValues

      private boolean hasMatchingValues(Object actual, Description mismatchDescription)
    • propertyMatchersFor

      private static <T> List<SamePropertyValuesAs.PropertyMatcher> propertyMatchersFor(T bean, PropertyDescriptor[] descriptors, List<String> ignoredFields)
    • propertyNamesFrom

      private static Set<String> propertyNamesFrom(PropertyDescriptor[] descriptors, List<String> ignoredFields)
    • isIgnored

      private static boolean isIgnored(List<String> ignoredFields, PropertyDescriptor propertyDescriptor)
    • readProperty

      private static Object readProperty(Method method, Object target)
    • samePropertyValuesAs

      public static <B> Matcher<B> samePropertyValuesAs(B expectedBean, String... ignoredProperties)
      Creates a matcher that matches when the examined object has values for all of its JavaBean properties that are equal to the corresponding values of the specified bean. If any properties are marked as ignored, they will be dropped from both the expected and actual bean. Note that the ignored properties use JavaBean display names, for example
      age
      rather than method names such as
      getAge
      . For example:
      assertThat(myBean, samePropertyValuesAs(myExpectedBean))
      assertThat(myBean, samePropertyValuesAs(myExpectedBean), "age", "height")
      Parameters:
      expectedBean - the bean against which examined beans are compared
      ignoredProperties - do not check any of these named properties.