diff options
Diffstat (limited to 'tests/new/IntroductionOfInitializer.java')
-rw-r--r-- | tests/new/IntroductionOfInitializer.java | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/new/IntroductionOfInitializer.java b/tests/new/IntroductionOfInitializer.java new file mode 100644 index 000000000..89703c605 --- /dev/null +++ b/tests/new/IntroductionOfInitializer.java @@ -0,0 +1,36 @@ +import org.aspectj.testing.Tester; +import java.io.*; + +/** + * Test for: PR #98 + */ + +public class IntroductionOfInitializer { + public static void main(String[] args) { test(); } + + public static void test() { + Tester.checkEqual(Foo.a, "class", "zero instances"); + Foo foo = new Foo(); + Tester.checkEqual(Foo.a, "class-instance", "one instances"); + foo = new Foo(); + Tester.checkEqual(Foo.a, "class-instance-instance", "two instances"); + } +} + +aspect A { + private static String classValue = "class"; + private static String instanceValue = "-instance"; + + after(): staticinitialization(Foo) { + Foo.a += classValue; + } + + after(): initialization(Foo.new(..)) { + Foo.a += instanceValue; + } +} + + +class Foo { + static String a = ""; +} |