summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authoraclement <aclement>2008-10-30 15:45:15 +0000
committeraclement <aclement>2008-10-30 15:45:15 +0000
commit394ad33a0cba7c7254602d2ccd25e15decd03c2e (patch)
tree5df0b0ae7d5438d501d8d8cf049aff87aa7d5c45 /tests
parent33193b5616710b1ebd6b88dd7f78b4b8916f7dec (diff)
downloadaspectj-394ad33a0cba7c7254602d2ccd25e15decd03c2e.tar.gz
aspectj-394ad33a0cba7c7254602d2ccd25e15decd03c2e.zip
252702: declare parents in model
Diffstat (limited to 'tests')
-rw-r--r--tests/multiIncremental/decps/base/src/a/A.java8
-rw-r--r--tests/multiIncremental/decps/base/src/p/C.java4
-rw-r--r--tests/src/org/aspectj/systemtest/incremental/tools/MultiProjectIncrementalTests.java32
3 files changed, 44 insertions, 0 deletions
diff --git a/tests/multiIncremental/decps/base/src/a/A.java b/tests/multiIncremental/decps/base/src/a/A.java
new file mode 100644
index 000000000..f1ba48d1a
--- /dev/null
+++ b/tests/multiIncremental/decps/base/src/a/A.java
@@ -0,0 +1,8 @@
+package a;
+import java.io.*;
+
+public aspect A {
+ declare parents: p.C implements Serializable,Goo;
+}
+
+interface Goo {}
diff --git a/tests/multiIncremental/decps/base/src/p/C.java b/tests/multiIncremental/decps/base/src/p/C.java
new file mode 100644
index 000000000..623eeda24
--- /dev/null
+++ b/tests/multiIncremental/decps/base/src/p/C.java
@@ -0,0 +1,4 @@
+package p;
+
+class C {
+}
diff --git a/tests/src/org/aspectj/systemtest/incremental/tools/MultiProjectIncrementalTests.java b/tests/src/org/aspectj/systemtest/incremental/tools/MultiProjectIncrementalTests.java
index 01e34e86b..3e81e98e0 100644
--- a/tests/src/org/aspectj/systemtest/incremental/tools/MultiProjectIncrementalTests.java
+++ b/tests/src/org/aspectj/systemtest/incremental/tools/MultiProjectIncrementalTests.java
@@ -48,6 +48,27 @@ import org.aspectj.util.FileUtil;
*/
public class MultiProjectIncrementalTests extends AbstractMultiProjectIncrementalAjdeInteractionTestbed {
+ public void testDeclareParentsInModel() {
+ String p = "decps";
+ initialiseProject(p);
+ build(p);
+ IProgramElement decp = getModelFor(p).getHierarchy().findElementForHandle("=decps<a{A.java}A`declare parents");
+ List ps = decp.getParentTypes();
+ assertNotNull(ps);
+ assertEquals(2, ps.size());
+ int count = 0;
+ for (Iterator iterator = ps.iterator(); iterator.hasNext();) {
+ String type = (String) iterator.next();
+ if (type.equals("java.io.Serializable")) {
+ count++;
+ }
+ if (type.equals("a.Goo")) {
+ count++;
+ }
+ }
+ assertEquals("Should have found the two types in: " + ps, 2, count);
+ }
+
/*
* A.aj package pack; public aspect A { pointcut p() : call( C.method before() : p() { // line 7 } }
*
@@ -378,6 +399,17 @@ public class MultiProjectIncrementalTests extends AbstractMultiProjectIncrementa
for (int i = 0; i < indent; i++)
System.out.print(" ");
System.out.println(" hid is " + node.getHandleIdentifier());
+ // Map m = ((ProgramElement) node).kvpairs;
+ // if (m != null) {
+ // Set keys = m.keySet();
+ // for (Iterator iterator = keys.iterator(); iterator.hasNext();) {
+ // Object object = (Object) iterator.next();
+ //
+ // for (int i = 0; i < indent; i++)
+ // System.out.print(" ");
+ // System.out.println("kvp: " + object + " = " + m.get(object));
+ // }
+ // }
for (Iterator i = node.getChildren().iterator(); i.hasNext();) {
dumptree((IProgramElement) i.next(), indent + 2);
}