001 package groovy.mock;
002
003 import groovy.lang.Closure;
004
005 import com.mockobjects.constraint.Constraint;
006
007 /**
008 *
009 * @author Joe Walnes
010 * @author Chris Stevenson
011 * @version $Revision: 1.1 $
012 */
013 public class ClosureConstraintMatcher implements Constraint {
014 private Closure closure;
015 private String message = "closure";
016
017 public ClosureConstraintMatcher(Closure closure) {
018 this.closure = closure;
019 }
020
021 public boolean eval(Object object) {
022 try {
023 closure.call(object);
024 return true;
025 }
026 catch (AssertionError e) {
027 message = e.getMessage();
028 return false;
029 }
030 }
031
032 public String toString() {
033 return message;
034 }
035
036 }