/******************************************************************************* * Copyright (c) 2010 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.core.test.tck; import java.util.Collection; import org.eclipse.core.runtime.CoreException; import org.jboss.tools.cdi.core.IBean; import org.jboss.tools.cdi.core.IInjectionPointField; /** * @author Alexey Kazakov */ public class QualifierWithMembersTest extends TCKTest { /** * Factory produces bean with qualifier * IntQualifier(width=2-(5 + 3) + 7*2, height= (12 + W) * 2 / 4) * * Injection point looks for a bean with qualifier * @IntQualifier(width=(int)(BeanFactory.W + 2) - 2, height=(int)'b' - (int)'a' + 9) * * In both cases calculated width=8, height=10. * The injection point must be resolved to the bean. * @throws CoreException */ public void testQualifierWithArithmeticExpressionsResolved() throws CoreException { IInjectionPointField injection = getInjectionPointField("JavaSource/org/jboss/jsr299/tck/tests/jbt/resolution/expressions/SomeBean.java", "s"); Collection<IBean> beans = cdiProject.getBeans(true, injection); assertEquals("Wrong number of the beans", 1, beans.size()); } public void testQualifierWithStaticImportInInjectingBeanAndNonStaticInInjectedBeanResolved() throws CoreException { IInjectionPointField injection = getInjectionPointField("JavaSource/org/jboss/jsr299/tck/tests/jbt/resolution/ObtainsInstanceBean.java", "chequePaymentProcessor"); Collection<IBean> beans = cdiProject.getBeans(true, injection); assertEquals("Wrong number of the beans", 1, beans.size()); assertContainsBeanClass(beans, "org.jboss.jsr299.tck.tests.jbt.resolution.AdvancedPaymentProcessor"); } public void testQualifierWithNonStaticImportInInjectingBeanAndNonStaticInInjectedBeanResolved() throws CoreException { IInjectionPointField injection = getInjectionPointField("JavaSource/org/jboss/jsr299/tck/tests/jbt/resolution/ObtainsInstanceBean.java", "chequePaymentProcessor2"); Collection<IBean> beans = cdiProject.getBeans(true, injection); assertEquals("Wrong number of the beans", 1, beans.size()); assertContainsBeanClass(beans, "org.jboss.jsr299.tck.tests.jbt.resolution.AdvancedPaymentProcessor"); } public void testQualifierWithoutImportInInjectingBeanAndNonStaticInInjectedBeanResolved() throws CoreException { IInjectionPointField injection = getInjectionPointField("JavaSource/org/jboss/jsr299/tck/tests/jbt/resolution/ObtainsInstanceBean.java", "chequePaymentProcessor3"); Collection<IBean> beans = cdiProject.getBeans(true, injection); assertEquals("Wrong number of the beans", 1, beans.size()); assertContainsBeanClass(beans, "org.jboss.jsr299.tck.tests.jbt.resolution.AdvancedPaymentProcessor"); } public void testQualifierWithStaticImportInInjectingBeanAndStaticInInjectedBeanResolved() throws CoreException { IInjectionPointField injection = getInjectionPointField("JavaSource/org/jboss/jsr299/tck/tests/jbt/resolution/ObtainsInstanceBean.java", "cashPaymentProcessor"); Collection<IBean> beans = cdiProject.getBeans(true, injection); assertEquals("Wrong number of the beans", 1, beans.size()); assertContainsBeanClass(beans, "org.jboss.jsr299.tck.tests.jbt.resolution.CashPaymentProcessor"); } public void testQualifierWithNonStaticImportInInjectingBeanAndStaticInInjectedBeanResolved() throws CoreException { IInjectionPointField injection = getInjectionPointField("JavaSource/org/jboss/jsr299/tck/tests/jbt/resolution/ObtainsInstanceBean.java", "cashPaymentProcessor2"); Collection<IBean> beans = cdiProject.getBeans(true, injection); assertEquals("Wrong number of the beans", 1, beans.size()); assertContainsBeanClass(beans, "org.jboss.jsr299.tck.tests.jbt.resolution.CashPaymentProcessor"); } public void testQualifierWithoutImportInInjectingBeanAndStaticInInjectedBeanResolved() throws CoreException { IInjectionPointField injection = getInjectionPointField("JavaSource/org/jboss/jsr299/tck/tests/jbt/resolution/ObtainsInstanceBean.java", "cashPaymentProcessor3"); Collection<IBean> beans = cdiProject.getBeans(true, injection); assertEquals("Wrong number of the beans", 1, beans.size()); assertContainsBeanClass(beans, "org.jboss.jsr299.tck.tests.jbt.resolution.CashPaymentProcessor"); } public void testQualifierWithStaticImportInInjectingBeanAndWithoutImportInInjectedBeanResolved() throws CoreException { IInjectionPointField injection = getInjectionPointField("JavaSource/org/jboss/jsr299/tck/tests/jbt/resolution/ObtainsInstanceBean.java", "otherPaymentProcessor"); Collection<IBean> beans = cdiProject.getBeans(true, injection); assertEquals("Wrong number of the beans", 1, beans.size()); assertContainsBeanClass(beans, "org.jboss.jsr299.tck.tests.jbt.resolution.OtherPaymentProcessor"); } public void testQualifierWithNonStaticImportInInjectingBeanAndWithoutImportInInjectedBeanResolved() throws CoreException { IInjectionPointField injection = getInjectionPointField("JavaSource/org/jboss/jsr299/tck/tests/jbt/resolution/ObtainsInstanceBean.java", "otherPaymentProcessor2"); Collection<IBean> beans = cdiProject.getBeans(true, injection); assertEquals("Wrong number of the beans", 1, beans.size()); assertContainsBeanClass(beans, "org.jboss.jsr299.tck.tests.jbt.resolution.OtherPaymentProcessor"); } public void testQualifierWithoutImportInInjectingBeanAndWithoutImportInInjectedBeanResolved() throws CoreException { IInjectionPointField injection = getInjectionPointField("JavaSource/org/jboss/jsr299/tck/tests/jbt/resolution/ObtainsInstanceBean.java", "otherPaymentProcessor3"); Collection<IBean> beans = cdiProject.getBeans(true, injection); assertEquals("Wrong number of the beans", 1, beans.size()); assertContainsBeanClass(beans, "org.jboss.jsr299.tck.tests.jbt.resolution.OtherPaymentProcessor"); } public void testQualifierWithNonStaticImportInInjectingBeanUnresolved() throws CoreException { IInjectionPointField injection = getInjectionPointField("JavaSource/org/jboss/jsr299/tck/tests/jbt/resolution/ObtainsInstanceBean.java", "unresolvedCreditCardPaymentProcessor"); Collection<IBean> beans = cdiProject.getBeans(true, injection); assertEquals("Wrong number of the beans", 0, beans.size()); } public void testQualifierWithStaticImportInInjectingBeanUnresolved() throws CoreException { IInjectionPointField injection = getInjectionPointField("JavaSource/org/jboss/jsr299/tck/tests/jbt/resolution/ObtainsInstanceBean.java", "unresolvedCreditCardPaymentProcessor2"); Collection<IBean> beans = cdiProject.getBeans(true, injection); assertEquals("Wrong number of the beans", 0, beans.size()); } public void testQualifierWithoutImportInInjectingBeanUnresolved() throws CoreException { IInjectionPointField injection = getInjectionPointField("JavaSource/org/jboss/jsr299/tck/tests/jbt/resolution/ObtainsInstanceBean.java", "unresolvedCreditCardPaymentProcessor3"); Collection<IBean> beans = cdiProject.getBeans(true, injection); assertEquals("Wrong number of the beans", 0, beans.size()); } /** * This test is created to check fixes for issue https://jira.jboss.org/browse/JBIDE-6517 * * However, the fix is postponed until JDT includes method parameters into Java model * as detailed Java element objects instead of providing limited string data * (getParameterNames(), getParameterTypes()). * * We refrain from getting necessary data by building AST, because it would affect performance. * * TODO The prefix '_' disabling this test must be removed as soon as JBIDE-6517 is assigned * to be fixed for a concrete version. * * @throws CoreException */ public void testQualifierCoincidingSimpleNameInInjectingBeanAndCoincidingSimpleNameInInjectedBeanResolved() throws CoreException { IInjectionPointField injection = getInjectionPointField("JavaSource/org/jboss/jsr299/tck/tests/jbt/resolution/coincidence/ObtainsInstanceBean.java", "cashPaymentProcessor"); Collection<IBean> beans = cdiProject.getBeans(true, injection); assertEquals("Wrong number of the beans", 1, beans.size()); assertContainsBeanClass(beans, "org.jboss.jsr299.tck.tests.jbt.resolution.coincidence.FirstPaymentProcessor"); } }