1 8 package test.args; 9 10 import test.Loggable; 11 import junit.framework.TestCase; 12 13 20 public class ArgsAdviceTest extends TestCase implements Loggable { 21 22 private String m_logString = ""; 23 private static String s_logString = ""; 24 25 public static void logStatic(String s) { 27 s_logString += s; 28 } 29 30 public void testSingleAndDotDot() { 32 m_logString = ""; 33 singleAndDotDot(1); 34 assertEquals("before 1 invocation ", m_logString); 35 } 36 37 public void testWithArray() { 39 m_logString = ""; 40 int[][] iis = new int[][]{{1, 2}, {3}}; 41 withArray(1L, "h", iis); 42 assertEquals("before 1 h 1-2-3- invocation ", m_logString); 43 } 44 45 public void testMatchAll() { 47 m_logString = ""; 48 matchAll("a0", "a1", 2); 49 assertEquals("before before1 invocation after1 after ", m_logString); 50 m_logString = ""; 51 matchAllXML("a0", "a1", 2); 52 assertEquals("before before1 invocation after1 after ", m_logString); 53 } 54 55 public void testMatchAllWithWildcard() { 57 m_logString = ""; 58 matchAllWithWildcard("a0", "a1", 2); 59 assertEquals("before before1 invocation after1 after ", m_logString); 60 } 61 62 public void testGetFirst() { 64 m_logString = ""; 65 getFirst("a0", "a1", 2); 66 assertEquals("before a0 before1 a0 invocation after1 a0 after a0 ", m_logString); 67 m_logString = ""; 68 getFirstXML("a0", "a1", 2); 69 assertEquals("before a0 before1 a0 invocation after1 a0 after a0 ", m_logString); 70 71 } 72 73 public void testGetFirstAnonymous() { 75 m_logString = ""; 76 getFirstAnonymous("a0", "a1", 2); 77 assertEquals("before a0 before1 a0 invocation after1 a0 after a0 ", m_logString); 78 } 83 84 public void testChangeArg() { 86 m_logString = ""; 87 changeArg("a0", new StringBuffer ("a1"), 2); 88 assertEquals("before a1x before1 a1xx invocation after1 a1xxx after a1xxxx ", m_logString); 90 } 91 92 public void testOrderChangedInPointcutSignature() { 94 m_logString = ""; 95 orderChangedInPointcutSignature("a0", "a1", 2); 96 assertEquals("before a1 a0 before1 a1 a0 invocation after1 a1 a0 after a1 a0 ", m_logString); 97 } 98 99 public void testOrderChangedInAdviceSignature() { 101 m_logString = ""; 102 orderChangedInAdviceSignature("a0", "a1", 2); 103 assertEquals("before a1 a0 before1 a1 a0 invocation after1 a1 a0 after a1 a0 ", m_logString); 104 } 105 106 public void testOrderChangedInPointcutAndAdviceSignature() { 108 m_logString = ""; 109 orderChangedInPointcutAndAdviceSignature("a0", "a1", 2); 110 assertEquals("before a0 a1 before1 a0 a1 invocation after1 a0 a1 after a0 a1 ", m_logString); 111 m_logString = ""; 112 orderChangedInPointcutAndAdviceSignatureXML("a0", "a1", null); 113 assertEquals("before a0 a1 before1 a0 a1 invocation after1 a0 a1 after a0 a1 ", m_logString); 114 } 115 116 118 public void testCallGetFirstAndSecond() { 120 m_logString = ""; 121 callGetFirstAndSecond(1L, new String []{"s0", "s1"}); 122 assertEquals("before 1 s0,s1 before1 1 s0,s1 invocation after1 1 s0,s1 after 1 s0,s1 ", m_logString); 123 m_logString = ""; 124 callGetFirstAndSecondXML(1L, new String []{"s0", "s1"}, null); 125 assertEquals("before 1 s0,s1 before1 1 s0,s1 invocation after1 1 s0,s1 after 1 s0,s1 ", m_logString); 126 } 127 128 public void testCtorExecutionGetFirst() { 131 m_logString = ""; 135 CtorExecution target = new CtorExecution("s"); 136 assertEquals("before s before1 s invocation after1 s after s ", m_logString); 137 m_logString = ""; 138 CtorExecutionXML target2 = new CtorExecutionXML("s"); 139 assertEquals("before s before1 s invocation after1 s after s ", m_logString); 140 } 141 142 public void testCtorCallGetFirst() { 145 s_logString = ""; 146 CtorCall target = new CtorCall("s"); 147 assertEquals("before s before1 s invocation after1 s after s ", s_logString); 148 s_logString = ""; 149 CtorCallXML target2 = new CtorCallXML("s"); 150 assertEquals("before s before1 s invocation after1 s after s ", s_logString); 151 } 152 153 private String m_field; 155 private static String s_field; 156 157 public String getField() { 158 return m_field; 159 } 160 161 public static String getStaticField() { 162 return s_field; 163 } 164 165 public void testFieldSetArg() { 167 try { 168 m_logString = ""; 169 m_field = "s"; 170 assertEquals("before null,s before1 null,s after1 s,changed after s,s ", m_logString); 171 s_logString = ""; 172 s_field = "s"; 173 assertEquals("before null,s before1 null,s after1 s,changed after s,s ", s_logString); 174 } catch (Error e) { 175 e.printStackTrace(); 176 } 177 } 178 179 180 public void log(String s) { 182 m_logString += s; 183 } 184 185 public void singleAndDotDot(int i) { 186 log("invocation "); 187 } 188 189 public void withArray(long l, String s, int[][] matrix) { 190 log("invocation "); 191 } 192 193 public void matchAll(String a0, String a1, long a2) { 194 log("invocation "); 195 } 196 197 public void matchAllXML(String a0, String a1, long a2) { 198 log("invocation "); 199 } 200 201 public void matchAllWithWildcard(String a0, String a1, long a2) { 202 log("invocation "); 203 } 204 205 public void getFirst(String a0, String a1, long a2) { 206 log("invocation "); 207 } 208 209 public void getFirstXML(String a0, String a1, long a2) { 210 log("invocation "); 211 } 212 213 public void getFirstAnonymous(String a0, String a1, long a2) { 214 log("invocation "); 215 } 216 217 public void getFirstAnonymousXML(String a0, String a1, long a2) { 218 log("invocation "); 219 } 220 221 public void changeArg(String a0, StringBuffer a1, long a2) { 222 log("invocation "); 223 } 224 225 public void orderChangedInPointcutSignature(String a0, String a1, long a2) { 226 log("invocation "); 227 } 228 229 public void orderChangedInAdviceSignature(String a0, String a1, long a2) { 230 log("invocation "); 231 } 232 233 public void orderChangedInPointcutAndAdviceSignature(String a0, String a1, long a2) { 234 log("invocation "); 235 } 236 237 public void orderChangedInPointcutAndAdviceSignatureXML(String a0, String a1, Object [] a2) { 238 log("invocation "); 239 } 240 241 public void callGetFirstAndSecond(long l, String [] s) { 243 log("invocation "); 244 } 245 246 public void callGetFirstAndSecondXML(long l, String [] s, String [] ignore) { 247 log("invocation "); 248 } 249 250 class CtorLoggable implements Loggable { 251 public CtorLoggable() { 252 } 253 254 public void log(String s) { 255 m_logString += s; 256 } 257 } 258 259 class CtorExecution extends CtorLoggable { 261 public CtorExecution(String s) { 262 this.log("invocation "); 263 } 264 } 265 266 class CtorExecutionXML extends CtorLoggable { 267 public CtorExecutionXML(String s) { 268 this.log("invocation "); 269 } 270 } 271 272 class CtorCall extends CtorLoggable { 274 public CtorCall(String s) { 275 logStatic("invocation "); 276 } 277 } 278 279 class CtorCallXML extends CtorLoggable { 280 public CtorCallXML(String s) { 281 logStatic("invocation "); 282 } 283 } 284 285 286 public static void main(String [] args) { 288 junit.textui.TestRunner.run(suite()); 289 } 290 291 public static junit.framework.Test suite() { 292 return new junit.framework.TestSuite(ArgsAdviceTest.class); 293 } 294 295 } 296 | Popular Tags |