package org.hamcrest.integration;
import org.jmock.core.Constraint;
import org.hamcrest.Matcher;
import org.hamcrest.StringDescription;
An adapter allowing a Hamcrest Matcher
to act as an jMock1 Constraint
. Note, this is not necessary for jMock2 as it supports Hamcrest out of the box. Author: Joe Walnes
/**
* An adapter allowing a Hamcrest {@link org.hamcrest.Matcher}
* to act as an jMock1 {@link org.jmock.core.Constraint}.
* Note, this is not necessary for jMock2 as it supports Hamcrest
* out of the box.
*
* @author Joe Walnes
*/
public class JMock1Adapter implements Constraint {
Convenience factory method that will adapt a Hamcrest Matcher
to act as an jMock Constraint
. /**
* Convenience factory method that will adapt a
* Hamcrest {@link org.hamcrest.Matcher} to act as an
* jMock {@link org.jmock.core.Constraint}.
*/
public static Constraint adapt(Matcher<?> matcher) {
return new JMock1Adapter(matcher);
}
private final Matcher<?> hamcrestMatcher;
public JMock1Adapter(Matcher<?> matcher) {
this.hamcrestMatcher = matcher;
}
@Override
public boolean eval(Object o) {
return hamcrestMatcher.matches(o);
}
@Override
public StringBuffer describeTo(StringBuffer buffer) {
hamcrestMatcher.describeTo(new StringDescription(buffer));
return buffer;
}
}