|
EasyMock example source code file (AbstractMatcher.java)
The EasyMock AbstractMatcher.java source code
/*
* Copyright (c) 2001-2007 OFFIS, Tammo Freese.
* This program is made available under the terms of the MIT License.
*/
package org.easymock;
/**
* A convenience implementation of {@link ArgumentsMatcher}. A subclass that
* does not redefine any method will behave like
* {@link MockControl#EQUALS_MATCHER}.
*
* @deprecated Since EasyMock 2.0, <code>ArgumentsMatchers are only supported
* for the legacy <code>MockControl. For mock objects generated by the methods
* on <code>EasyMock, there are per-argument matchers available. For more
* information, see the EasyMock documentation.
*/
public abstract class AbstractMatcher implements ArgumentsMatcher {
/**
* Checks whether an expected argument matches an actual argument; the method
* is used by
* {@link AbstractMatcher#matches(Object[], Object[])}. The arguments
* provided to this method are always not <code>null.
*
* @param expected
* the expected argument.
* @param actual
* the actual argument.
* @return true if the arguments match, false otherwise.
*/
protected boolean argumentMatches(Object expected, Object actual) {
return expected.equals(actual);
}
/**
* Converts an argument to a String, used by
* {@link AbstractMatcher#toString(Object[])}.
*
* @param argument
* the argument to convert to a String.
* @return a <code>String representation of the argument.
*/
protected String argumentToString(Object argument) {
if (argument instanceof String) {
return "\"" + argument + "\"";
}
return "" + argument;
}
/**
* Checks whether an expected argument array matches an actual argument array.
* This convenience implementation uses
* <code>argumentMatches(Object, Object) to check whether arguments
* pairs match. If all the arguments match, true is returned, otherwise
* false. In two cases, <code>argumentMatches(Object, Object) is
* not called: If both argument arrays are null, they match; if one and only
* one is null, they do not match.
*
* @param expected
* the expected arguments.
* @param actual
* the actual arguments.
* @return true if the arguments match, false otherwise.
*/
public boolean matches(Object[] expected, Object[] actual) {
if (expected == actual) {
return true;
}
if (expected == null || actual == null) {
return false;
}
if (expected.length != actual.length) {
return false;
}
for (int i = 0; i < expected.length; i++) {
Object expectedObject = expected[i];
Object actualObject = actual[i];
if (expectedObject == null && actualObject == null) {
continue;
}
if (expectedObject == null && actualObject != null) {
return false;
}
if (expectedObject != null && actualObject == null) {
return false;
}
if (!argumentMatches(expectedObject, actualObject)) {
return false;
}
}
return true;
}
/**
* Returns a string representation of the matcher. This convenience
* implementation calls {@link AbstractMatcher#argumentToString(Object)}
* for every argument in the given array and returns the string representations
* of the arguments separated by commas.
*
* @param arguments
* the arguments to be used in the string representation.
* @return a string representation of the matcher.
*/
public String toString(Object[] arguments) {
if (arguments == null)
arguments = new Object[0];
StringBuffer result = new StringBuffer();
for (int i = 0; i < arguments.length; i++) {
if (i > 0)
result.append(", ");
result.append(argumentToString(arguments[i]));
}
return result.toString();
}
}
Other EasyMock examples (source code examples)Here is a short list of links related to this EasyMock AbstractMatcher.java source code file: |
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.