[jbosstools-commits] JBoss Tools SVN: r31283 - in trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test: projects/CDIConfigTest/src/org/jboss/beans/test06 and 1 other directories.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Thu May 12 19:39:08 EDT 2011


Author: scabanovich
Date: 2011-05-12 19:39:07 -0400 (Thu, 12 May 2011)
New Revision: 31283

Modified:
   trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/META-INF/seam-beans.xml
   trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/beans/test06/MyBean2.java
   trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/src/org/jboss/tools/cdi/seam/config/core/test/SeamBeansTest.java
Log:
JBIDE-8935
https://issues.jboss.org/browse/JBIDE-8935

Modified: trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/META-INF/seam-beans.xml
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/META-INF/seam-beans.xml	2011-05-12 23:32:55 UTC (rev 31282)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/META-INF/seam-beans.xml	2011-05-12 23:39:07 UTC (rev 31283)
@@ -140,7 +140,7 @@
 	<test06:MyQualifier>one</test06:MyQualifier>
 </s:String>
 
-<!-- Test 06-2 -->
+<!-- Test 06-2 and Test 06-3 -->
 <test06:MyType1>
 	<s:Produces/>
 	<test06:MyQualifier>two</test06:MyQualifier>

Modified: trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/beans/test06/MyBean2.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/beans/test06/MyBean2.java	2011-05-12 23:32:55 UTC (rev 31282)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/projects/CDIConfigTest/src/org/jboss/beans/test06/MyBean2.java	2011-05-12 23:39:07 UTC (rev 31283)
@@ -28,8 +28,15 @@
  * ASSERT: Injection point field 'two' in MyBean1 is resolved to that bean.
  * ASSERT: Injection point field 'one' in MyBean1 is resolved to 2 beans.
  * ASSERT: One of them is the above-mentioned MyType1 bean.
- * ASSERT: The other of them is a bean with type MyType1 and synthetic qualifier - it is the inner bean.
+ * ASSERT: The other of them is a bean with type MyType1 InlineBeanQualifier qualifier.
  * 
+ * Test 06-3.
+ * Uses sources of tests 06-1 and 06-2.
+ * 
+ * ASSERT: Inner bean of type MyType1 has InlineBeanQualifier qualifier.
+ * ASSERT: The inner bean has one injection point.
+ * ASSERT: The injection point is resolved to a bean (created in test 06-1).
+ * 
  * @author Viacheslav Kabanovich
  *
  */

Modified: trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/src/org/jboss/tools/cdi/seam/config/core/test/SeamBeansTest.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/src/org/jboss/tools/cdi/seam/config/core/test/SeamBeansTest.java	2011-05-12 23:32:55 UTC (rev 31282)
+++ trunk/cdi/tests/org.jboss.tools.cdi.seam.config.core.test/src/org/jboss/tools/cdi/seam/config/core/test/SeamBeansTest.java	2011-05-12 23:39:07 UTC (rev 31283)
@@ -18,6 +18,7 @@
 import java.util.Set;
 
 import org.eclipse.core.runtime.CoreException;
+import org.jboss.tools.cdi.core.CDIConstants;
 import org.jboss.tools.cdi.core.IAnnotationDeclaration;
 import org.jboss.tools.cdi.core.IBean;
 import org.jboss.tools.cdi.core.IClassBean;
@@ -484,16 +485,7 @@
 		assertTrue(b instanceof IClassBean);
 
 		Set<IInjectionPoint> is = b.getInjectionPoints();
-		assertFalse(is.isEmpty());
-		IInjectionPoint p = null;
-		Iterator<IInjectionPoint> it = is.iterator();
-		while(it.hasNext()) {
-			IInjectionPoint i = it.next();
-			if(i instanceof IInjectionPointParameter) {
-				p = i;
-				break;
-			}
-		}
+		IInjectionPoint p = getParameterInjectionPoint(is);
 		assertNotNull(p);
 	
 		Set<IBean> beansI = cdiProject.getBeans(false, p);
@@ -506,6 +498,17 @@
 		assertTrue(beansI.contains(b2));
 	}
 
+	private IInjectionPoint getParameterInjectionPoint(Set<IInjectionPoint> is) {
+		Iterator<IInjectionPoint> it = is.iterator();
+		while(it.hasNext()) {
+			IInjectionPoint i = it.next();
+			if(i instanceof IInjectionPointParameter) {
+				return i;
+			}
+		}
+		return null;
+	}
+
 	/**
 	 * Test 06-1.
 	 * Sources contain simple bean class MyBean1
@@ -590,7 +593,7 @@
 	 * ASSERT: Injection point field 'two' in MyBean1 is resolved to that bean.
 	 * ASSERT: Injection point field 'one' in MyBean1 is resolved to 2 beans.
 	 * ASSERT: One of them is the above-mentioned MyType1 bean.
-	 * ASSERT: The other of them is a bean with type MyType1 and InlineBeanQualifier qualifier - it is the inner bean.
+	 * ASSERT: The other of them is a bean with type MyType1 InlineBeanQualifier qualifier.
 	 */
 	public void testVirtualFieldProducerWithNoBeanConstructor() {
 		Set<IBean> beans = cdiProject.getBeans(false, "org.jboss.beans.test06.MyType1", 
@@ -605,7 +608,7 @@
 //		Now this qualifier is added, but it should belong only two the inner injection point, not to the bean.
 //		IAnnotationDeclaration inlineBeanQ = b.getAnnotation(CDISeamConfigConstants.INLINE_BEAN_QUALIFIER);
 //		assertNotNull(inlineBeanQ);
-//		String inlineIndex1 = inlineBeanQ.getMemberValue(null).toString();
+//		Object inlineIndex1 = inlineBeanQ.getMemberValue(null);
 		
 		Set<IBean> beans1 = cdiProject.getBeans(false, "org.jboss.beans.test06.MyBean2", new String[0]);
 		assertEquals(1, beans1.size());
@@ -645,14 +648,55 @@
 		d = inner.getAnnotation("org.jboss.beans.test06.MyQualifier");
 		assertNull(d);
 		
-		IAnnotationDeclaration inlineBeanQ2 = b.getAnnotation(CDISeamConfigConstants.INLINE_BEAN_QUALIFIER);
+		IAnnotationDeclaration inlineBeanQ2 = inner.getAnnotation(CDISeamConfigConstants.INLINE_BEAN_QUALIFIER);
 		assertNotNull(inlineBeanQ2);
-		String inlineIndex2 = inlineBeanQ2.getMemberValue(null).toString();
+		Object inlineIndex2 = inlineBeanQ2.getMemberValue(null);
 		assertNotNull(inlineIndex2);
 //see comment to inlineIndex1 above.
 //		assertEquals(inlineIndex1, inlineIndex2);		
 	}
 
+	/**
+	 * Test 06-3.
+	 * Uses sources of tests 06-1 and 06-2.
+	 * 
+	 * ASSERT: Inner bean of type MyType1 has InlineBeanQualifier qualifier.
+	 * ASSERT: Inner bean of type MyType1 has one injection point.
+	 * ASSERT: The injection point is constructor parameter.
+	 * ASSERT: The injection point is resolved to a bean (created in test 06-1).
+	 * 
+	 */
+	public void testInnerBeanWithConstructor() {
+		Set<IBean> beans = cdiProject.getBeans(false, "org.jboss.beans.test06.MyType1", 
+				new String[]{CDIConstants.ANY_QUALIFIER_TYPE_NAME});
+		assertEquals(2, beans.size());
+		IBean inner = null;
+		IBean virtual = null;
+		Iterator<IBean> it = beans.iterator();
+		while(it.hasNext()) {
+			IBean b = it.next();
+			if(b.getAnnotation("org.jboss.beans.test06.MyQualifier") != null) {
+				virtual = b;
+			} else {
+				inner = b;
+			}
+		}
+		assertNotNull(inner);
+		assertNotNull(virtual);
+
+		IAnnotationDeclaration inlineBeanQ = inner.getAnnotation(CDISeamConfigConstants.INLINE_BEAN_QUALIFIER);
+		assertNotNull(inlineBeanQ);
+		Object inlineIndex = inlineBeanQ.getMemberValue(null);
+		assertNotNull(inlineIndex);
+
+		Set<IInjectionPoint> is = inner.getInjectionPoints();
+		IInjectionPoint p = getParameterInjectionPoint(is);
+		assertNotNull(p);
+		Set<IBean> bs = cdiProject.getBeans(false, p);
+		assertEquals(1, bs.size());
+		
+	}
+
 	protected Set<IBean> getBeansByClassName(String className) {
 		return cdiProject.getBeans(false, className, new String[0]);
 	}



More information about the jbosstools-commits mailing list