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