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 interceptor.doIntercept((ActionInvocation)mockActionInvocation.proxy());
52 mockActionProxy.verify();
53 }
54
55 public void testShouldSkip() throws Exception {
56 mockActionProxy.expectAndReturn("getMethod", "skipMe");
57 interceptor.doIntercept((ActionInvocation)mockActionInvocation.proxy());
58 mockActionProxy.verify();
59 }
60
61 public static class TestAction {
62
63 public String execute() {
64 return "execute";
65 }
66
67 @SkipValidation
68 public String skipMe() {
69 return "skipme";
70 }
71 }
72 }