public class ArrayEquals extends Equals
Constructor and Description |
---|
ArrayEquals(Object wanted) |
Modifier and Type | Method and Description |
---|---|
static Object[] |
createObjectArray(Object array) |
boolean |
matches(Object actual)
Informs if this matcher accepts the given argument.
|
String |
toString() |
equals, getWanted, hashCode, toStringWithType, typeMatches
public ArrayEquals(Object wanted)
public boolean matches(Object actual)
ArgumentMatcher
The method should never assert if the argument doesn't match. It should only return false.
The argument is not using the generic type in order to force explicit casting in the implementation.
This way it is easier to debug when incompatible arguments are passed to the matchers.
You have to trust us on this one. If we used parametrized type then ClassCastException
would be thrown in certain scenarios.
For example:
//test, method accepts Collection argument and ArgumentMatcher<List> is used
when(mock.useCollection(someListMatcher())).thenDoNothing();
//production code, yields confusing ClassCastException
//although Set extends Collection but is not compatible with ArgumentMatcher<List>
mock.useCollection(new HashSet());
See the example in the top level javadoc for ArgumentMatcher
matches
in interface ArgumentMatcher<Object>
matches
in class Equals
actual
- the argument