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 {@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 {@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)); } }