Author: scabanovich
Date: 2011-09-23 20:08:19 -0400 (Fri, 23 Sep 2011)
New Revision: 35028
Added:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/parameters/
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/parameters/A.java
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/parameters/B.java
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/parameters/Bean.java
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/parameters/BigItem.java
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/parameters/Factory.java
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/parameters/Item.java
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/parameters/Q.java
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/AssignabilityOfRawAndParameterizedTypesTest.java
Log:
JBIDE-9763
https://issues.jboss.org/browse/JBIDE-9763
Tests added.
Added:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/parameters/A.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/parameters/A.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/parameters/A.java 2011-09-24
00:08:19 UTC (rev 35028)
@@ -0,0 +1,5 @@
+package org.jboss.jsr299.tck.tests.jbt.resolution.parameters;
+
+public class A {
+
+}
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/parameters/A.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/parameters/B.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/parameters/B.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/parameters/B.java 2011-09-24
00:08:19 UTC (rev 35028)
@@ -0,0 +1,5 @@
+package org.jboss.jsr299.tck.tests.jbt.resolution.parameters;
+
+public class B extends A {
+
+}
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/parameters/B.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/parameters/Bean.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/parameters/Bean.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/parameters/Bean.java 2011-09-24
00:08:19 UTC (rev 35028)
@@ -0,0 +1,58 @@
+package org.jboss.jsr299.tck.tests.jbt.resolution.parameters;
+
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import javax.inject.Inject;
+
+public class Bean {
+
+ @Inject
+ @Q("set1")
+ Set<String> s1;
+
+ @Inject
+ @Q("set2")
+ Set<? extends Set<String>> s2;
+
+ //resolved to Factory.getMap1();
+ @Inject
+ @Q("map")
+ Map<String, Set<String>> m1;
+
+ //resolved to Factory.getMap2();
+ @Inject
+ @Q("map2")
+ Map<Integer, Set<Integer>> m2;
+
+ //resolved to Factory.getMap3();
+ @Inject
+ @Q("map3")
+ Map<Set<Integer>, Map<Long,Integer>> m3;
+
+ //not resolved to Factory.getMap3();
+ @Inject
+ @Q("map3")
+ Map<Set<Integer>, Map<Long,Short>> m3a;
+
+ //resolved to Factory.getMap3();
+ @Inject
+ @Q("map3")
+ Map<? extends Set<Integer>, Map<Long,Integer>> m3b;
+
+ //resolved to Factory.getMap4();
+ @Inject
+ @Q("map4")
+ Map<Set<A>, Map<String,A>> m4;
+
+ //resolved to Factory.getMap4();
+ @Inject
+ @Q("map4")
+ Map<Set<B>, Map<Set<A>,B>> m4a;
+
+ //not resolved to Factory.getMap4();
+ @Inject
+ @Q("map4")
+ Map<Set<B>, Map<String,A>> m4b;
+}
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/parameters/Bean.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/parameters/BigItem.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/parameters/BigItem.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/parameters/BigItem.java 2011-09-24
00:08:19 UTC (rev 35028)
@@ -0,0 +1,5 @@
+package org.jboss.jsr299.tck.tests.jbt.resolution.parameters;
+
+public class BigItem extends Item {
+
+}
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/parameters/BigItem.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/parameters/Factory.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/parameters/Factory.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/parameters/Factory.java 2011-09-24
00:08:19 UTC (rev 35028)
@@ -0,0 +1,48 @@
+package org.jboss.jsr299.tck.tests.jbt.resolution.parameters;
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import javax.enterprise.inject.Produces;
+
+public class Factory {
+
+ @Produces
+ @Q("set1")
+ <X> HashSet<X> getSet() {
+ return null;
+ }
+
+ @Produces
+ @Q("set2")
+ <X> Set<HashSet<X>> getSetOfSet() {
+ return null;
+ }
+
+ @Produces
+ @Q("map")
+ <X,Y> HashMap<X,Y> getMap() {
+ return null;
+ }
+
+ @Produces
+ @Q("map2")
+ <X> HashMap<X,Set<X>> getMap2() {
+ return null;
+ }
+
+ @Produces
+ @Q("map3")
+ <X,Y> HashMap<Set<X>,Map<Y,X>> getMap3() {
+ return null;
+ }
+
+ @Produces
+ @Q("map4")
+ <X extends A,Y> HashMap<Set<X>,Map<Y,X>> getMap4() {
+ return null;
+ }
+
+}
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/parameters/Factory.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/parameters/Item.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/parameters/Item.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/parameters/Item.java 2011-09-24
00:08:19 UTC (rev 35028)
@@ -0,0 +1,5 @@
+package org.jboss.jsr299.tck.tests.jbt.resolution.parameters;
+
+public class Item {
+
+}
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/parameters/Item.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/parameters/Q.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/parameters/Q.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/parameters/Q.java 2011-09-24
00:08:19 UTC (rev 35028)
@@ -0,0 +1,21 @@
+package org.jboss.jsr299.tck.tests.jbt.resolution.parameters;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.inject.Qualifier;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+@Qualifier
+@Target({ TYPE, METHOD, PARAMETER, FIELD })
+@Retention(RUNTIME)
+@Documented
+public @interface Q {
+ String value();
+}
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/resolution/parameters/Q.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/AssignabilityOfRawAndParameterizedTypesTest.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/AssignabilityOfRawAndParameterizedTypesTest.java 2011-09-23
23:53:14 UTC (rev 35027)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/AssignabilityOfRawAndParameterizedTypesTest.java 2011-09-24
00:08:19 UTC (rev 35028)
@@ -124,4 +124,70 @@
assertEquals("Wrong number of the beans", 1, beans.size());
assertContainsBeanTypes(beans.iterator().next(),
"org.jboss.jsr299.tck.tests.lookup.typesafe.resolution.parameterized.Result",
"java.lang.Object");
}
+
+ public void testAssignabilityOfSophisticatedCases() {
+ String cls =
"JavaSource/org/jboss/jsr299/tck/tests/jbt/resolution/parameters/Bean.java";
+
+ //@Inject Set<String> s1;
+ //@Produces <X> HashSet<X> getSet()
+ IInjectionPointField injection = getInjectionPointField(cls, "s1");
+ Set<IBean> beans = cdiProject.getBeans(true, injection);
+ assertEquals("Wrong number of the beans", 1, beans.size());
+
+ //@Inject Set<? extends Set<String>> s2;
+ //@Produces <X> Set<HashSet<X>> getSetOfSet()
+ injection = getInjectionPointField(cls, "s2");
+ beans = cdiProject.getBeans(true, injection);
+ assertEquals("Wrong number of the beans", 1, beans.size());
+
+ //@Inject Map<String, Set<String>> m1;
+ //@Produces <X,Y> HashMap<X,Y> getMap()
+ injection = getInjectionPointField(cls, "m1");
+ beans = cdiProject.getBeans(true, injection);
+ assertEquals("Wrong number of the beans", 1, beans.size());
+
+ //@Inject Map<Integer, Set<Integer>> m2;
+ //@Produces <X> HashMap<X,Set<X>> getMap2()
+ injection = getInjectionPointField(cls, "m2");
+ beans = cdiProject.getBeans(true, injection);
+ assertEquals("Wrong number of the beans", 1, beans.size());
+
+ //@Inject Map<Set<Integer>, Map<Long,Integer>> m3;
+ //@Produces <X,Y> HashMap<Set<X>,Map<Y,X>> getMap3()
+ injection = getInjectionPointField(cls, "m3");
+ beans = cdiProject.getBeans(true, injection);
+ assertEquals("Wrong number of the beans", 1, beans.size());
+
+ //@Inject Map<Set<Integer>, Map<Long,Short>> m3a;
+ //@Produces <X,Y> HashMap<Set<X>,Map<Y,X>> getMap3()
+ //not resolved
+ injection = getInjectionPointField(cls, "m3a");
+ beans = cdiProject.getBeans(true, injection);
+ assertEquals("Wrong number of the beans", 0, beans.size());
+
+ //@Inject Map<? extends Set<Integer>, Map<Long,Integer>> m3b;
+ //@Produces <X,Y> HashMap<Set<X>,Map<Y,X>> getMap3()
+ injection = getInjectionPointField(cls, "m3b");
+ beans = cdiProject.getBeans(true, injection);
+ assertEquals("Wrong number of the beans", 1, beans.size());
+
+ //@Inject Map<Set<A>, Map<String,A>> m4;
+ //@Produces <X extends A,Y> HashMap<Set<X>,Map<Y,X>> getMap4()
+ injection = getInjectionPointField(cls, "m4");
+ beans = cdiProject.getBeans(true, injection);
+ assertEquals("Wrong number of the beans", 1, beans.size());
+
+ //@Inject Map<Set<B>, Map<Set<A>,B>> m4a;
+ //@Produces <X extends A,Y> HashMap<Set<X>,Map<Y,X>> getMap4()
+ injection = getInjectionPointField(cls, "m4a");
+ beans = cdiProject.getBeans(true, injection);
+ assertEquals("Wrong number of the beans", 1, beans.size());
+
+ //@Inject Map<Set<B>, Map<String,A>> m4b;
+ //@Produces <X extends A,Y> HashMap<Set<X>,Map<Y,X>> getMap4()
+ //not resolved
+ injection = getInjectionPointField(cls, "m4b");
+ beans = cdiProject.getBeans(true, injection);
+ assertEquals("Wrong number of the beans", 0, beans.size());
+ }
}
\ No newline at end of file