1 package groovy.mock;
2
3 import groovy.lang.Closure;
4 import com.mockobjects.constraint.Constraint;
5
6 /***
7 *
8 * @author Joe Walnes
9 * @author Chris Stevenson
10 * @version $Revision: 1.3 $
11 */
12 public class ClosureConstraintMatcher implements Constraint {
13 private Closure closure;
14 private String message = "closure";
15
16 public ClosureConstraintMatcher(Closure closure) {
17 this.closure = closure;
18 }
19
20 public boolean eval(Object object) {
21 try {
22 closure.call((Object[])object);
23 return true;
24 }
25 catch (AssertionError e) {
26 message = e.getMessage();
27 return false;
28 }
29 }
30
31 public String toString() {
32 return message;
33 }
34
35 }