/************************************************************************************** * Copyright (c) Jonas Bon�r, Alexandre Vasseur. All rights reserved. * * http://aspectwerkz.codehaus.org * * ---------------------------------------------------------------------------------- * * The software in this package is published under the terms of the LGPL license * * a copy of which has been included with this distribution in the license.txt file. * **************************************************************************************/ package test.afterxxx; import junit.framework.TestCase; public class Test extends TestCase { private static String s_log; public static void log(String msg) { s_log += msg; } public void testAll() { s_log = ""; all(); assertEquals("logAround ", s_log); } public void testAroundFinally() { s_log = ""; aroundFinally(); assertEquals("logAround logAfterFinally ", s_log); } public void testAroundFinallyReturning() { s_log = ""; aroundFinallyReturning(); assertEquals("logAround logAfterReturning logAfterFinally ", s_log); } public void testAroundReturning() { s_log = ""; aroundReturning(); assertEquals("logAround logAfterReturningString logAfterReturning ", s_log); } public void testAroundFinallyReturningThrowing() { s_log = ""; try { aroundFinallyReturningThrowing(); } catch (UnsupportedOperationException e) { } assertEquals("logAround logAfterThrowingRTE logAfterFinally ", s_log); } public void testAroundReturningThrowing() { s_log = ""; try { aroundReturningThrowing(); } catch (UnsupportedOperationException e) { } assertEquals("logAround logAfterThrowingRTE ", s_log); } public void testFinally() { s_log = ""; _finally(); assertEquals("logAfterFinally ", s_log); } public void testFinallyReturning() { s_log = ""; finallyReturning(); assertEquals("logAfterReturningString logAfterReturning logAfter logAfterFinally ", s_log); } public void testFinallyReturningThrowing() { s_log = ""; try { finallyReturningThrowing(); } catch (UnsupportedOperationException e) { } assertEquals("logAfterThrowingRTE logAfterFinally ", s_log); } public void testReturning() { s_log = ""; returning(); assertEquals("logAfterReturningString logAfterReturning ", s_log); } public void testReturningThrowing() { s_log = ""; try { returningThrowing(); } catch (Exception e) { } assertEquals("", s_log); } public Test(String name) { super(name); } public static void main(String[] args) { junit.textui.TestRunner.run(suite()); } public static junit.framework.Test suite() { return new junit.framework.TestSuite(Test.class); } void all() { } void aroundFinally() { } static Object aroundFinallyReturning() { return null; } Object aroundReturning() { return "aroundReturning"; } static Object aroundFinallyReturningThrowing() { throw new UnsupportedOperationException(); } Object aroundReturningThrowing() { throw new UnsupportedOperationException(); } void _finally() { } static Object finallyReturning() { return "finallyReturning"; } static Object finallyReturningThrowing() { throw new UnsupportedOperationException(); } Object returningThrowing() throws Exception { throw new Exception(); } Object returning() { return "returning"; } }