diff options
Diffstat (limited to 'tests/new/introductionPackage')
-rw-r--r-- | tests/new/introductionPackage/one/Aspect.java | 25 | ||||
-rw-r--r-- | tests/new/introductionPackage/one/C.java | 13 | ||||
-rw-r--r-- | tests/new/introductionPackage/one/TestAspect.java | 28 | ||||
-rw-r--r-- | tests/new/introductionPackage/two/C.java | 5 |
4 files changed, 71 insertions, 0 deletions
diff --git a/tests/new/introductionPackage/one/Aspect.java b/tests/new/introductionPackage/one/Aspect.java new file mode 100644 index 000000000..43ce36c20 --- /dev/null +++ b/tests/new/introductionPackage/one/Aspect.java @@ -0,0 +1,25 @@ +package one; + +/** @testcase PR#548 introduced methods have incorrect package */ +public aspect Aspect { + public void C.foo() { // workaround: add qualification: one.C.foo + /** @testcase PR#548 introduction method casting this to introduction type */ + ((C) this).protectedMethod(); // bad CE: Can't convert from two.C to one.C + /** @testcase PR#548 introduction method accessing protected method */ + protectedMethod(); // bad CE: can't find any method with name: protectedMethod + /** @testcase PR#548 introduction method accessing public method */ + publicMethod(); // bad CE: can't find any method with name: publicMethod + /** @testcase PR#548 introduction method accessing default method */ + defaultMethod(); // bad CE: can't find any method with name: defaultMethod + + /** @testcase PR#548 introduction method accessing protected field */ + int i = protectedInt; // bad CE: can't bind name: protectedInt + /** @testcase PR#548 introduction method accessing private field */ + int j = publicInt; // bad CE: can't bind name: publicInt + /** @testcase PR#548 introduction method accessing default field */ + int k = defaultInt; // bad CE: can't bind name: defaultInt + int l = i * j * k; + //privateMethod(); // todo error case + //int p = privateInt; // todo error case + } +} diff --git a/tests/new/introductionPackage/one/C.java b/tests/new/introductionPackage/one/C.java new file mode 100644 index 000000000..47fa2a078 --- /dev/null +++ b/tests/new/introductionPackage/one/C.java @@ -0,0 +1,13 @@ +package one; + +/** @testcase PR#548 */ +public class C { + public void publicMethod(){ } + protected void protectedMethod(){} + void defaultMethod(){ } + private void privateMethod(){ } + public int publicInt = 1; + protected int protectedInt = 1; + int defaultInt = 1; + private int privateInt = 1; +} diff --git a/tests/new/introductionPackage/one/TestAspect.java b/tests/new/introductionPackage/one/TestAspect.java new file mode 100644 index 000000000..11e4188b3 --- /dev/null +++ b/tests/new/introductionPackage/one/TestAspect.java @@ -0,0 +1,28 @@ +package one; + +import org.aspectj.testing.*; +public aspect TestAspect { + public static void main(String[] args) { + C me = new C(); + me.foo(); + Tester.checkAllEvents(); + } + static { + Tester.expectEvent("execution(void one.C.publicMethod())"); + Tester.expectEvent("execution(void one.C.protectedMethod())"); + Tester.expectEvent("execution(void one.C.defaultMethod())"); + Tester.expectEvent("get(int one.C.protectedInt)"); + Tester.expectEvent("get(int one.C.publicInt)"); + Tester.expectEvent("get(int one.C.defaultInt)"); + + // XXX added - correct? + Tester.expectEvent("execution(void one.C.foo())"); + Tester.expectEvent("execution(void one.C.protectedMethod())"); + } + + before () : execution(* C.*(..)) || get(int C.*) + { + Tester.event("" + thisJoinPointStaticPart); + //System.out.println("" + thisJoinPointStaticPart); + } +} diff --git a/tests/new/introductionPackage/two/C.java b/tests/new/introductionPackage/two/C.java new file mode 100644 index 000000000..1db9e2b99 --- /dev/null +++ b/tests/new/introductionPackage/two/C.java @@ -0,0 +1,5 @@ +package two; + +/** @testcase PR#548 */ +public class C { } + |