[jbosstools-commits] JBoss Tools SVN: r22606 - in trunk/cdi: tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck and 1 other directory.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Mon Jun 7 13:46:34 EDT 2010


Author: akazakov
Date: 2010-06-07 13:46:33 -0400 (Mon, 07 Jun 2010)
New Revision: 22606

Modified:
   trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/MethodDefinition.java
   trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/ParametedTypeFactory.java
   trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/ResolutionByTypeTest.java
   trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/TCKTest.java
Log:
https://jira.jboss.org/browse/JBIDE-6418

Modified: trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/MethodDefinition.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/MethodDefinition.java	2010-06-07 17:05:44 UTC (rev 22605)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/MethodDefinition.java	2010-06-07 17:46:33 UTC (rev 22606)
@@ -1,5 +1,5 @@
 /******************************************************************************* 
- * Copyright (c) 2007 Red Hat, Inc. 
+ * Copyright (c) 2009 Red Hat, Inc. 
  * Distributed under license by Red Hat, Inc. All rights reserved. 
  * This program is made available under the terms of the 
  * Eclipse Public License v1.0 which accompanies this distribution, 

Modified: trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/ParametedTypeFactory.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/ParametedTypeFactory.java	2010-06-07 17:05:44 UTC (rev 22605)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/impl/definition/ParametedTypeFactory.java	2010-06-07 17:46:33 UTC (rev 22606)
@@ -1,6 +1,15 @@
+/******************************************************************************* 
+ * Copyright (c) 2009 Red Hat, Inc. 
+ * Distributed under license by Red Hat, Inc. All rights reserved. 
+ * This program is made available under the terms of the 
+ * Eclipse Public License v1.0 which accompanies this distribution, 
+ * and is available at http://www.eclipse.org/legal/epl-v10.html 
+ * 
+ * Contributors: 
+ * Red Hat, Inc. - initial API and implementation 
+ ******************************************************************************/
 package org.jboss.tools.cdi.internal.core.impl.definition;
 
-
 import java.util.HashMap;
 import java.util.Map;
 import java.util.StringTokenizer;
@@ -11,6 +20,7 @@
 import org.eclipse.jdt.core.ISourceRange;
 import org.eclipse.jdt.core.IType;
 import org.eclipse.jdt.core.JavaModelException;
+import org.jboss.tools.cdi.core.CDICorePlugin;
 import org.jboss.tools.cdi.internal.core.impl.ParametedType;
 import org.jboss.tools.cdi.internal.core.impl.TypeDeclaration;
 import org.jboss.tools.common.model.util.EclipseJavaUtil;
@@ -36,7 +46,7 @@
 			try {
 				r = type.getNameRange();
 			} catch (CoreException e) {
-				//ignore
+				CDICorePlugin.getDefault().logError(e);
 			}
 			if(r != null) {
 				parametedType = new TypeDeclaration(parametedType, r.getOffset(), r.getLength());
@@ -138,5 +148,4 @@
 	public void clean() {
 		cache.clear();
 	}
-
 }
\ No newline at end of file

Modified: trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/ResolutionByTypeTest.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/ResolutionByTypeTest.java	2010-06-07 17:05:44 UTC (rev 22605)
+++ trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/ResolutionByTypeTest.java	2010-06-07 17:46:33 UTC (rev 22606)
@@ -13,9 +13,12 @@
 import java.util.Set;
 
 import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jdt.core.IType;
 import org.jboss.tools.cdi.core.IBean;
 import org.jboss.tools.cdi.core.IParametedType;
 import org.jboss.tools.cdi.core.IQualifierDeclaration;
+import org.jboss.tools.common.EclipseUtil;
+import org.jboss.tools.common.model.util.EclipseJavaUtil;
 
 /**
  * @author Alexey Kazakov
@@ -24,6 +27,60 @@
 
 	/**
 	 * Section 5.2 - Typesafe resolution
+	 *   lb) Test with beans without required qualifiers.
+	 *   
+	 * @throws CoreException 
+	 */
+	public void testDefaultBindingTypeAssumed() throws CoreException {
+		Set<IBean> beans = getBeans("org.jboss.jsr299.tck.tests.lookup.typesafe.resolution.Tuna");
+		assertEquals("Wrong number of the beans", 1, beans.size());
+		assertContainsBeanType(beans.iterator().next(), "org.jboss.jsr299.tck.tests.lookup.typesafe.resolution.Tuna");
+	}
+
+	/**
+	 * Section 5.2 - Typesafe resolution
+	 *   hc) Check multiple types resolve to a single getBeans().
+	 *   
+	 * @throws CoreException 
+	 */
+	public void testResolveByType() throws CoreException {
+		Set<IBean> beans = getBeans("org.jboss.jsr299.tck.tests.lookup.typesafe.resolution.Tuna", "javax.enterprise.inject.Default");
+		assertEquals("Wrong number of the beans", 1, beans.size());
+		beans = getBeans("org.jboss.jsr299.tck.tests.lookup.typesafe.resolution.Animal", "org.jboss.jsr299.tck.tests.lookup.typesafe.resolution.FishILike");
+		assertEquals("Wrong number of the beans", 3, beans.size());
+		assertContainsBeanClasses(beans, "org.jboss.jsr299.tck.tests.lookup.typesafe.resolution.Salmon", "org.jboss.jsr299.tck.tests.lookup.typesafe.resolution.SeaBass", "org.jboss.jsr299.tck.tests.lookup.typesafe.resolution.Haddock");
+	}
+
+	/**
+	 * Section 5.2 - Typesafe resolution
+	 *   lc) Test with matching beans with matching qualifier with same type.
+	 *   
+	 * @throws CoreException 
+	 */
+	public void testAllQualifiersSpecifiedForResolutionMustAppearOnBean() throws CoreException {
+		Set<IBean> beans = getBeans("org.jboss.jsr299.tck.tests.lookup.typesafe.resolution.Animal", "org.jboss.jsr299.tck.tests.lookup.typesafe.resolution.Chunky", "org.jboss.jsr299.tck.tests.lookup.typesafe.resolution.Whitefish");
+		assertEquals("Wrong number of the beans", 1, beans.size());
+		beans = getBeans("org.jboss.jsr299.tck.tests.lookup.typesafe.resolution.ScottishFish", "org.jboss.jsr299.tck.tests.lookup.typesafe.resolution.Whitefish");
+		assertEquals("Wrong number of the beans", 2, beans.size());
+		assertContainsBeanClasses(beans, "org.jboss.jsr299.tck.tests.lookup.typesafe.resolution.Cod", "org.jboss.jsr299.tck.tests.lookup.typesafe.resolution.Sole");
+	}
+
+	/**
+	 * Section 5.2 - Typesafe resolution
+	 *   ka) Test with a parameterized type.
+	 *   
+	 * @throws CoreException 
+	 */
+	public void testResolveByTypeWithTypeParameter() throws CoreException {
+		IType type = EclipseJavaUtil.findType(EclipseUtil.getJavaProject(cdiProject.getNature().getProject()), "org.jboss.jsr299.tck.tests.lookup.typesafe.resolution.ScottishFishFarmer");
+		IParametedType parametedType = cdiProject.getNature().getTypeFactory().getParametedType(type, "QFarmer<QScottishFish;>;");
+		Set<IBean> beans = cdiProject.getBeans(true, parametedType, new IQualifierDeclaration[0]);
+		assertEquals("Wrong number of the beans", 1, beans.size());
+		assertContainsBeanClasses(beans, "org.jboss.jsr299.tck.tests.lookup.typesafe.resolution.ScottishFishFarmer");
+	}
+
+	/**
+	 * Section 5.2 - Typesafe resolution
 	 *   ld) Test with matching beans with matching qualifier with same annotation member value for each member which is not annotated @javax.enterprise.util.NonBinding.
 	 *   
 	 * @throws CoreException 

Modified: trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/TCKTest.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/TCKTest.java	2010-06-07 17:05:44 UTC (rev 22605)
+++ trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/TCKTest.java	2010-06-07 17:46:33 UTC (rev 22606)
@@ -2,6 +2,7 @@
 
 import java.io.File;
 import java.io.FileFilter;
+import java.util.HashSet;
 import java.util.Set;
 
 import junit.framework.TestCase;
@@ -108,11 +109,17 @@
 		return project;
 	}
 
-	protected Set<IBean> getBeans(String typeName) throws JavaModelException {
+	protected Set<IBean> getBeans(String typeName, String... qualifierNames) throws JavaModelException {
 		IParametedType type = getType(typeName);
 		assertNotNull("Can't find " + typeName + " type.", type);
-		Set<IBean> beans = cdiProject.getBeans(true, type, new IType[0]);
-		assertNotNull("There is no eny beans with " + typeName + " type", beans);
+		Set<IType> qualifiers = new HashSet<IType>();
+		for (String name : qualifierNames) {
+			IType qualifier = EclipseJavaUtil.findType(EclipseUtil.getJavaProject(cdiProject.getNature().getProject()), name);
+			assertNotNull("Can't find " + name + " type.", qualifier);
+			qualifiers.add(qualifier);
+		}
+		Set<IBean> beans = cdiProject.getBeans(true, type, qualifiers.toArray(new IType[0]));
+		assertNotNull("There is no beans with " + typeName + " type", beans);
 		return beans;
 	}
 



More information about the jbosstools-commits mailing list