package org.hamcrest.integration;

import org.easymock.IArgumentMatcher;
import org.easymock.EasyMock;
import org.hamcrest.Matcher;
import org.hamcrest.StringDescription;

An adapter allowing a Hamcrest Matcher to act as an EasyMock IArgumentMatcher.
Author:Joe Walnes
/** * An adapter allowing a Hamcrest {@link org.hamcrest.Matcher} * to act as an EasyMock {@link org.easymock.IArgumentMatcher}. * * @author Joe Walnes */
public class EasyMock2Adapter implements IArgumentMatcher {
Convenience factory method that will adapt a Hamcrest Matcher to act as an EasyMock IArgumentMatcher and report it to EasyMock so it can be kept track of.
/** * Convenience factory method that will adapt a * Hamcrest {@link org.hamcrest.Matcher} to act as an * EasyMock {@link org.easymock.IArgumentMatcher} and * report it to EasyMock so it can be kept track of. */
public static IArgumentMatcher adapt(Matcher<?> matcher) { EasyMock2Adapter easyMock2Matcher = new EasyMock2Adapter(matcher); EasyMock.reportMatcher(easyMock2Matcher); return easyMock2Matcher; } private final Matcher<?> hamcrestMatcher; public EasyMock2Adapter(Matcher<?> matcher) { this.hamcrestMatcher = matcher; } @Override public boolean matches(Object argument) { return hamcrestMatcher.matches(argument); } @Override public void appendTo(StringBuffer buffer) { hamcrestMatcher.describeTo(new StringDescription(buffer)); } }