From a2252d8b395f4da1e56bf77ea5d36e0c8d634ebd Mon Sep 17 00:00:00 2001 From: aclement Date: Wed, 29 Mar 2006 12:06:04 +0000 Subject: [PATCH] more tests for @DeclareParents - building it in pieces. --- tests/bugs151/atDecp/case3/MainClass.java | 37 +++++++++++++++++++ tests/bugs151/atDecp/case3/Mood.java | 3 ++ tests/bugs151/atDecp/case3/Moody.java | 6 +++ .../case4/AnnotationMoodImplementor.java | 3 ++ tests/bugs151/atDecp/case4/MainClass.java | 19 ++++++++++ tests/bugs151/atDecp/case4/Mood.java | 3 ++ tests/bugs151/atDecp/case4/Moody.java | 6 +++ tests/bugs151/atDecp/case4/MoodyImpl.java | 10 +++++ tests/bugs151/atDecp/case4/TheAspect.java | 13 +++++++ .../systemtest/ajc151/Ajc151Tests.java | 2 + .../org/aspectj/systemtest/ajc151/ajc151.xml | 33 +++++++++++++++++ 11 files changed, 135 insertions(+) create mode 100644 tests/bugs151/atDecp/case3/MainClass.java create mode 100644 tests/bugs151/atDecp/case3/Mood.java create mode 100644 tests/bugs151/atDecp/case3/Moody.java create mode 100644 tests/bugs151/atDecp/case4/AnnotationMoodImplementor.java create mode 100644 tests/bugs151/atDecp/case4/MainClass.java create mode 100644 tests/bugs151/atDecp/case4/Mood.java create mode 100644 tests/bugs151/atDecp/case4/Moody.java create mode 100644 tests/bugs151/atDecp/case4/MoodyImpl.java create mode 100644 tests/bugs151/atDecp/case4/TheAspect.java diff --git a/tests/bugs151/atDecp/case3/MainClass.java b/tests/bugs151/atDecp/case3/MainClass.java new file mode 100644 index 000000000..f4212e97c --- /dev/null +++ b/tests/bugs151/atDecp/case3/MainClass.java @@ -0,0 +1,37 @@ +package theapp; + +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.DeclareParents; + +import moody.*; + +class AnnotationMoodImplementor { } + +@Aspect +class AnnotationMoodIndicator { + + public static class MoodyImpl implements Moody { + private Mood mood = Mood.HAPPY; + + public Mood getMood() { return mood; } + public void setMood(Mood mood) { this.mood = mood; } + } + + @DeclareParents(value="theapp.AnnotationMoodImplementor",defaultImpl=MoodyImpl.class) + private Moody implementedInterface; +} + + + +public class MainClass { + public static void main(String[] args) { + AnnotationMoodImplementor ami0 = new AnnotationMoodImplementor(); + AnnotationMoodImplementor ami1 = new AnnotationMoodImplementor(); + + System.err.println("ami0's mood is " + ((Moody) ami0).getMood()); + ((Moody) ami1).setMood(Mood.JOLLY); + System.err.println("ami1's mood is now " + ((Moody) ami1).getMood()); + System.err.println("ami0's mood is still " + ((Moody) ami0).getMood()); + } +} + diff --git a/tests/bugs151/atDecp/case3/Mood.java b/tests/bugs151/atDecp/case3/Mood.java new file mode 100644 index 000000000..9d0591b6f --- /dev/null +++ b/tests/bugs151/atDecp/case3/Mood.java @@ -0,0 +1,3 @@ +package moody; + +public enum Mood { HAPPY, SAD, JOLLY, GRUMPY } diff --git a/tests/bugs151/atDecp/case3/Moody.java b/tests/bugs151/atDecp/case3/Moody.java new file mode 100644 index 000000000..13353c72e --- /dev/null +++ b/tests/bugs151/atDecp/case3/Moody.java @@ -0,0 +1,6 @@ +package moody; + +public interface Moody { + Mood getMood(); + void setMood(Mood mood); +} diff --git a/tests/bugs151/atDecp/case4/AnnotationMoodImplementor.java b/tests/bugs151/atDecp/case4/AnnotationMoodImplementor.java new file mode 100644 index 000000000..548b1fac2 --- /dev/null +++ b/tests/bugs151/atDecp/case4/AnnotationMoodImplementor.java @@ -0,0 +1,3 @@ +package theapp; + +public class AnnotationMoodImplementor {} diff --git a/tests/bugs151/atDecp/case4/MainClass.java b/tests/bugs151/atDecp/case4/MainClass.java new file mode 100644 index 000000000..40a54564d --- /dev/null +++ b/tests/bugs151/atDecp/case4/MainClass.java @@ -0,0 +1,19 @@ +package theapp; + +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.DeclareParents; + +import moody.*; + +public class MainClass { + public static void main(String[] args) { + AnnotationMoodImplementor ami0 = new AnnotationMoodImplementor(); + AnnotationMoodImplementor ami1 = new AnnotationMoodImplementor(); + + System.err.println("ami0's mood is " + ((Moody) ami0).getMood()); + ((Moody) ami1).setMood(Mood.JOLLY); + System.err.println("ami1's mood is now " + ((Moody) ami1).getMood()); + System.err.println("ami0's mood is still " + ((Moody) ami0).getMood()); + } +} + diff --git a/tests/bugs151/atDecp/case4/Mood.java b/tests/bugs151/atDecp/case4/Mood.java new file mode 100644 index 000000000..9d0591b6f --- /dev/null +++ b/tests/bugs151/atDecp/case4/Mood.java @@ -0,0 +1,3 @@ +package moody; + +public enum Mood { HAPPY, SAD, JOLLY, GRUMPY } diff --git a/tests/bugs151/atDecp/case4/Moody.java b/tests/bugs151/atDecp/case4/Moody.java new file mode 100644 index 000000000..13353c72e --- /dev/null +++ b/tests/bugs151/atDecp/case4/Moody.java @@ -0,0 +1,6 @@ +package moody; + +public interface Moody { + Mood getMood(); + void setMood(Mood mood); +} diff --git a/tests/bugs151/atDecp/case4/MoodyImpl.java b/tests/bugs151/atDecp/case4/MoodyImpl.java new file mode 100644 index 000000000..01d926d98 --- /dev/null +++ b/tests/bugs151/atDecp/case4/MoodyImpl.java @@ -0,0 +1,10 @@ +package theapp; + +import moody.*; + +public class MoodyImpl implements Moody { + private Mood mood = Mood.HAPPY; + + public Mood getMood() { return mood; } + public void setMood(Mood mood) { this.mood = mood; } +} diff --git a/tests/bugs151/atDecp/case4/TheAspect.java b/tests/bugs151/atDecp/case4/TheAspect.java new file mode 100644 index 000000000..daeb0e14d --- /dev/null +++ b/tests/bugs151/atDecp/case4/TheAspect.java @@ -0,0 +1,13 @@ +package theapp; + +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.DeclareParents; + +import moody.Moody; + +@Aspect +class AnnotationMoodIndicator { + @DeclareParents(value="theapp.AnnotationMoodImplementor",defaultImpl=MoodyImpl.class) + private Moody implementedInterface; +} + diff --git a/tests/src/org/aspectj/systemtest/ajc151/Ajc151Tests.java b/tests/src/org/aspectj/systemtest/ajc151/Ajc151Tests.java index a5447eaab..9604bab50 100644 --- a/tests/src/org/aspectj/systemtest/ajc151/Ajc151Tests.java +++ b/tests/src/org/aspectj/systemtest/ajc151/Ajc151Tests.java @@ -29,6 +29,8 @@ public class Ajc151Tests extends org.aspectj.testing.XMLBasedAjcTestCase { // Some @DeclareParents testing public void testAtDecp_1() { runTest("atDecp - simple");} public void testAtDecp_2() { runTest("atDecp - annotation");} + public void testAtDecp_3() { runTest("atDecp - binary interface");} + public void testAtDecp_4() { runTest("atDecp - binary interface - 2");} public void testAnnotationsAndItds_pr98901() { runTest("annotations and itds");} public void testAnnotationsAndItds_pr98901_2() { runTest("annotations and itds - 2");} diff --git a/tests/src/org/aspectj/systemtest/ajc151/ajc151.xml b/tests/src/org/aspectj/systemtest/ajc151/ajc151.xml index a9ec5f59b..43fb2813d 100644 --- a/tests/src/org/aspectj/systemtest/ajc151/ajc151.xml +++ b/tests/src/org/aspectj/systemtest/ajc151/ajc151.xml @@ -37,6 +37,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- 2.39.5