/*************************************************************************************************** * 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.bindingsyntax; import junit.framework.TestCase; public class AdviceBindingTest extends TestCase { public static transient String flow = ""; public AdviceBindingTest(String s) { super(s); } public String doA(String s) { return 'A' + s; } public String doRA(String s) { return 'A' + s; } public String doB(String s) { return 'B' + s; } public String doRB(String s) { return 'B' + s; } public String doC(String s) { return 'C' + s; } public String doRC(String s) { return 'C' + s; } public String doD(String s) { return 'D' + s; } public String doRD(String s) { return 'D' + s; } public static String doAA(String s) { return "AA" + s; } public static String doBB(String s) { return "BB" + s; } public static String doCC(String s) { return "CC" + s; } public String doDD(String s) { return "DD" + s; } public void testAdviceStack() { assertEquals("12Atest", doA("test")); assertEquals("12AAtest", doAA("test")); assertEquals("21Atest", doRA("test")); } public void testTwoAdice() { assertEquals("12Ctest", doC("test")); assertEquals("12CCtest", doCC("test")); assertEquals("21Ctest", doRC("test")); } /** * Note: precedence is not the same due to aspect precedence */ public void testTwoAspect() { assertEquals("12Dtest", doD("test")); assertEquals("12DDtest", doDD("test")); assertEquals("21Dtest", doRD("test")); } public static void main(String[] args) { junit.textui.TestRunner.run(suite()); } public static junit.framework.Test suite() { return new junit.framework.TestSuite(AdviceBindingTest.class); } }