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.intercept.handler;
9   
10  import junit.framework.TestCase;
11  import org.codehaus.aspectwerkz.joinpoint.JoinPoint;
12  import org.codehaus.aspectwerkz.intercept.BeforeAdvice;
13  import org.codehaus.aspectwerkz.intercept.Advisable;
14  
15  /***
16   * @author <a href="mailto:jboner@codehaus.org">Jonas BonŽr </a>
17   */
18  public class InterceptTest extends TestCase {
19      private static String LOG = "";
20  
21      public static void log(String msg) {
22          LOG += msg;
23      }
24  
25      public void testIsAdvisable() {
26          assertTrue(this instanceof Advisable);
27      }
28  
29      public void testAddBefore() {
30          LOG = "";
31          adviseWithBefore();
32          assertEquals("adviseWithBefore ", LOG);
33  
34          ((Advisable) this).aw_addAdvice(
35                  "handler(java.lang.IllegalArgumentException)",
36                  new BeforeAdvice() {
37                      public void invoke(JoinPoint jp) throws Throwable {
38                          InterceptTest.log("before_catch_block ");
39                      }
40                  }
41          );
42  
43          LOG = "";
44          adviseWithBefore();
45          assertEquals("before_catch_block adviseWithBefore ", LOG);
46      }
47  
48      public static void main(String[] args) {
49          junit.textui.TestRunner.run(suite());
50      }
51  
52      public static junit.framework.Test suite() {
53          return new junit.framework.TestSuite(InterceptTest.class);
54      }
55  
56      public void adviseWithBefore() {
57          try {
58              throw new IllegalArgumentException("noop");
59          } catch (IllegalArgumentException e) {
60              log("adviseWithBefore ");
61          }
62      }
63  }