1 /***************************************************************************************
2 * Copyright (c) Jonas BonŽr, Alexandre Vasseur. All rights reserved. *
3 * http://aspectwerkz.codehaus.org *
4 * ---------------------------------------------------------------------------------- *
5 * The software in this package is published under the terms of the LGPL license *
6 * a copy of which has been included with this distribution in the license.txt file. *
7 **************************************************************************************/
8 package test;
9
10 import junit.framework.TestCase;
11
12 /***
13 * @author <a href="mailto:jboner@codehaus.org">Jonas BonŽr </a>
14 */
15 public class CallerSideAdviceTest extends TestCase {
16 private static String s_logString = "";
17
18 public CallerSideAdviceTest(String name) {
19 super(name);
20 }
21
22 public void testAroundAdvicedMemberMethod() {
23 s_logString = "";
24 try {
25 CallerSideTestHelper helper = new CallerSideTestHelper();
26 helper.invokeMemberMethodAround("a", "b");
27 helper.invokeMemberMethodAround("a", "b", "c");
28 assertEquals("before after before after ", s_logString);
29 } catch (Exception e) {
30 e.printStackTrace();
31 fail();
32 }
33
34
35 s_logString = "";
36 try {
37 CallerSideTestHelper helper = new CallerSideTestHelper();
38 helper.invokeMemberMethodAround("a", "b", "c");
39 assertEquals("before after ", s_logString);
40 } catch (Exception e) {
41 e.printStackTrace();
42 fail();
43 }
44 }
45
46 public void testAroundAdvicedStaticMethod() {
47 s_logString = "";
48 try {
49 CallerSideTestHelper helper = new CallerSideTestHelper();
50 helper.invokeStaticMethodAround();
51 assertEquals("before after ", s_logString);
52 } catch (Exception e) {
53 fail();
54 }
55 }
56
57 public void testAroundAdvicedStaticMethodPrimitiveType() {
58 s_logString = "";
59 try {
60 CallerSideTestHelper helper = new CallerSideTestHelper();
61 int res = helper.invokeStaticMethodAroundPrimitiveType();
62 assertEquals("before after ", s_logString);
63 assertEquals(res, 3);
64 } catch (Exception e) {
65 fail();
66 }
67 }
68
69 public void testAroundAdvicedMemberMethodPrimitiveType() {
70 s_logString = "";
71 try {
72 CallerSideTestHelper helper = new CallerSideTestHelper();
73 int res = helper.invokeMemberMethodAroundPrimitiveType();
74 assertEquals("before after ", s_logString);
75 assertEquals(res, 2);
76 } catch (Exception e) {
77 fail();
78 }
79 }
80
81 public void testAroundAdvicedMemberMethodVoidType() {
82 s_logString = "";
83 try {
84 CallerSideTestHelper helper = new CallerSideTestHelper();
85 helper.invokeMemberMethodAroundVoidType();
86 assertEquals("before after ", s_logString);
87 } catch (Exception e) {
88 fail();
89 }
90 }
91
92 public void testPreAdvicedMemberMethod() {
93 s_logString = "";
94 try {
95 CallerSideTestHelper helper = new CallerSideTestHelper();
96 helper.invokeMemberMethodPre();
97 assertEquals("pre1 pre2 ", s_logString);
98 } catch (Exception e) {
99 fail();
100 }
101 }
102
103 public void testPostAdvicedMemberMethod() {
104 s_logString = "";
105 try {
106 CallerSideTestHelper helper = new CallerSideTestHelper();
107 helper.invokeMemberMethodPost();
108 assertEquals("post2 post1 ", s_logString);
109 } catch (Exception e) {
110 fail();
111 }
112 }
113
114 public void testPrePostAdvicedMemberMethod() {
115 s_logString = "";
116 try {
117 CallerSideTestHelper helper = new CallerSideTestHelper();
118 helper.invokeMemberMethodPrePost();
119 assertEquals("pre1 pre2 post2 post1 ", s_logString);
120 } catch (Exception e) {
121 fail();
122 }
123 }
124
125 public void testPreAdvicedStaticMethod() {
126 s_logString = "";
127 try {
128 CallerSideTestHelper.invokeStaticMethodPre();
129 assertEquals("pre1 pre2 ", s_logString);
130 } catch (Exception e) {
131 fail();
132 }
133 }
134
135 public void testPostAdvicedStaticMethod() {
136 s_logString = "";
137 try {
138 CallerSideTestHelper.invokeStaticMethodPost();
139 assertEquals("post2 post1 ", s_logString);
140 } catch (Exception e) {
141 fail();
142 }
143 }
144
145 public void testPrePostAdvicedStaticMethod() {
146 s_logString = "";
147 try {
148 CallerSideTestHelper.invokeStaticMethodPrePost();
149 assertEquals("pre1 pre2 post2 post1 ", s_logString);
150 } catch (Exception e) {
151 fail();
152 }
153 }
154
155 public static void main(String[] args) {
156 junit.textui.TestRunner.run(suite());
157 }
158
159 public static junit.framework.Test suite() {
160 return new junit.framework.TestSuite(CallerSideAdviceTest.class);
161 }
162
163
164 public static void log(final String wasHere) {
165 s_logString += wasHere;
166 }
167
168 public void setFieldPreAdviced() {
169 }
170 }