1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.jetspeed.decoration;
18
19 import org.jmock.core.Constraint;
20
21 public class OnConsecutiveInvokes implements Constraint
22 {
23 private final Constraint[] constraints;
24 private int pointer = 0;
25 private boolean toManyCalls = false;
26
27 public OnConsecutiveInvokes(Constraint[] constraints)
28 {
29 this.constraints = constraints;
30 }
31
32 public boolean eval(Object arg0)
33 {
34 if (pointer < constraints.length)
35 {
36 try
37 {
38 return constraints[pointer].eval(arg0);
39 }
40 finally
41 {
42 pointer++;
43 }
44 }
45 else
46 {
47 toManyCalls = true;
48 return false;
49 }
50 }
51
52 public StringBuffer describeTo(StringBuffer buffer)
53 {
54 if(!toManyCalls)
55 {
56 return constraints[pointer].describeTo(buffer);
57 }
58 else
59 {
60 return buffer.append("Should be invoked "+constraints.length+" times.");
61 }
62 }
63
64 }