1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.apache.struts2.interceptor.validation;
22
23 import org.apache.struts2.StrutsTestCase;
24
25 import com.mockobjects.dynamic.Mock;
26 import com.opensymphony.xwork2.ActionInvocation;
27 import com.opensymphony.xwork2.ActionProxy;
28 import com.opensymphony.xwork2.Validateable;
29
30 public class AnnotationValidationInterceptorTest extends StrutsTestCase {
31
32 private AnnotationValidationInterceptor interceptor = new AnnotationValidationInterceptor();
33 private Mock mockActionInvocation;
34 private Mock mockActionProxy;
35 private TestAction test;
36
37 public void setUp() throws Exception {
38 super.setUp();
39 test = new TestAction();
40 interceptor = new AnnotationValidationInterceptor();
41 mockActionInvocation = new Mock(ActionInvocation.class);
42 mockActionProxy = new Mock(ActionProxy.class);
43 mockActionInvocation.matchAndReturn("getProxy", (ActionProxy) mockActionProxy.proxy());
44 mockActionInvocation.matchAndReturn("getAction", test);
45 mockActionInvocation.expect("invoke");
46 }
47
48 public void testShouldNotSkip() throws Exception {
49 mockActionProxy.expectAndReturn("getMethod", "execute");
50 mockActionProxy.expectAndReturn("getActionName", "foo");
51 mockActionProxy.expectAndReturn("getMethod", "execute");
52 interceptor.doIntercept((ActionInvocation)mockActionInvocation.proxy());
53 mockActionProxy.verify();
54 }
55
56 public void testShouldSkip() throws Exception {
57 mockActionProxy.expectAndReturn("getMethod", "skipMe");
58 interceptor.doIntercept((ActionInvocation)mockActionInvocation.proxy());
59 mockActionProxy.verify();
60 }
61
62 public static class TestAction {
63
64 public String execute() {
65 return "execute";
66 }
67
68 @SkipValidation
69 public String skipMe() {
70 return "skipme";
71 }
72 }
73 }