Class HamcrestCondition<T>

  • All Implemented Interfaces:
    Descriptable<Condition<T>>

    public class HamcrestCondition<T>
    extends Condition<T>
    Allows to use a Hamcrest matcher as a condition. Example:
     Condition<String> aStringContainingA = new HamcrestCondition<>(containsString("a"));
    
     // assertions will pass
     assertThat("abc").is(aStringContainingA);
     assertThat("bc").isNot(aStringContainingA);
    
     // assertion will fail
     assertThat("bc").is(aStringContainingA);
    By static-importing the matching(Matcher) method you can do:
     assertThat("abc").is(matching(containsString("a")));
    Since:
    2.9.0 / 3.9.0
    • Field Detail

      • matcher

        private org.hamcrest.Matcher<? extends T> matcher
    • Constructor Detail

      • HamcrestCondition

        public HamcrestCondition​(org.hamcrest.Matcher<? extends T> matcher)
        Constructs a Condition using the matcher given as a parameter.
        Parameters:
        matcher - the Hamcrest matcher to use as a condition
    • Method Detail

      • matching

        public static <T> HamcrestCondition<T> matching​(org.hamcrest.Matcher<? extends T> matcher)
        Constructs a Condition using the matcher given as a parameter.

        Example:

         import static org.assertj.core.api.Assertions.assertThat;
         import static org.assertj.core.api.HamcrestCondition.matching;
         import static org.hamcrest.core.StringContains.containsString;
        
         assertThat("abc").is(matching(containsString("a")));
        Type Parameters:
        T - the type the condition is about
        Parameters:
        matcher - the Hamcrest matcher to use as a condition
        Returns:
        the built HamcrestCondition
      • matches

        public boolean matches​(T value)
        Verifies that the given value satisfies this condition.
        Overrides:
        matches in class Condition<T>
        Parameters:
        value - the value to verify.
        Returns:
        true if the given value satisfies this condition; false otherwise.
      • describeMatcher

        private String describeMatcher()