org.hamcrest.core
Class IsEqual<T>

java.lang.Object
  extended by org.hamcrest.BaseMatcher<T>
      extended by org.hamcrest.core.IsEqual<T>
All Implemented Interfaces:
Matcher<T>, SelfDescribing

public class IsEqual<T>
extends BaseMatcher<T>

Is the value equal to another value, as tested by the Object.equals(java.lang.Object) invokedMethod?


Constructor Summary
IsEqual(T equalArg)
           
 
Method Summary
 void describeTo(Description description)
          Generates a description of the object.
static
<T> Matcher<T>
equalTo(T operand)
          Creates a matcher that matches when the examined object is logically equal to the specified operand, as determined by calling the Object.equals(java.lang.Object) method on the examined object.
 boolean matches(Object actualValue)
          Evaluates the matcher for argument item.
 
Methods inherited from class org.hamcrest.BaseMatcher
_dont_implement_Matcher___instead_extend_BaseMatcher_, describeMismatch, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

IsEqual

public IsEqual(T equalArg)
Method Detail

matches

public boolean matches(Object actualValue)
Description copied from interface: Matcher
Evaluates the matcher for argument item.

This method matches against Object, instead of the generic type T. This is because the caller of the Matcher does not know at runtime what the type is (because of type erasure with Java generics). It is down to the implementations to check the correct type.

Parameters:
actualValue - the object against which the matcher is evaluated.
Returns:
true if item matches, otherwise false.
See Also:
BaseMatcher

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.

equalTo

public static <T> Matcher<T> equalTo(T operand)
Creates a matcher that matches when the examined object is logically equal to the specified operand, as determined by calling the Object.equals(java.lang.Object) method on the examined object.

If the specified operand is null then the created matcher will only match if the examined object's equals method returns true when passed a null (which would be a violation of the equals contract), unless the examined object itself is null, in which case the matcher will return a positive match.

The created matcher provides a special behaviour when examining Arrays, whereby it will match if both the operand and the examined object are arrays of the same length and contain items that are equal to each other (according to the above rules) in the same indexes.

For example:

 assertThat("foo", equalTo("foo"));
 assertThat(new String[] {"foo", "bar"}, equalTo(new String[] {"foo", "bar"}));