/*******************************************************************************
* 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.CDIConstants;
import org.jboss.tools.cdi.core.IBean;
import org.jboss.tools.cdi.core.IInjectionPointField;
import org.jboss.tools.cdi.core.IInjectionPointParameter;
import org.jboss.tools.cdi.core.IQualifier;
import org.jboss.tools.cdi.core.IQualifierDeclaration;
/**
* @author Viacheslav Kabanovich
*/
public class InjectionPointWithNewQualifierTest extends TCKTest {
public void testNewHashSetParameter() throws CoreException {
IInjectionPointParameter injection = getInjectionPointParameter("JavaSource/org/jboss/jsr299/tck/tests/implementation/simple/newSimpleBean/Dragon.java", "initialize");
Collection<IBean> beans = cdiProject.getBeans(true, injection);
assertEquals("Wrong number of the beans", 1, beans.size());
assertContainsBeanClass(beans, "java.util.HashSet");
}
public void testNewArrayListField() throws CoreException {
IInjectionPointField injection = getInjectionPointField("JavaSource/org/jboss/jsr299/tck/tests/implementation/simple/newSimpleBean/Griffin.java", "list");
Collection<IBean> beans = cdiProject.getBeans(true, injection);
assertEquals("Wrong number of the beans", 1, beans.size());
assertContainsBeanClass(beans, "java.util.ArrayList");
IBean b = beans.iterator().next();
assertEquals(1, b.getQualifierDeclarations().size());
}
public void testNewCustomBeanField() throws CoreException {
IInjectionPointField injection = getInjectionPointField("JavaSource/org/jboss/jsr299/tck/tests/implementation/simple/newSimpleBean/NewLionConsumer.java", "lion");
Collection<IBean> beans = cdiProject.getBeans(true, injection);
assertEquals("Wrong number of the beans", 1, beans.size());
assertContainsBeanClass(beans, "org.jboss.jsr299.tck.tests.implementation.simple.newSimpleBean.Lion");
IBean b = beans.iterator().next();
assertEquals(1, b.getQualifierDeclarations().size());
//Check that new bean has exactly one qualifier - @New.
IQualifierDeclaration d = b.getQualifierDeclarations().iterator().next();
assertEquals(CDIConstants.NEW_QUALIFIER_TYPE_NAME, d.getType().getFullyQualifiedName());
Collection<IQualifier> qs = b.getQualifiers();
assertEquals(1, qs.size());
IQualifier q = qs.iterator().next();
assertEquals(CDIConstants.NEW_QUALIFIER_TYPE_NAME, q.getSourceType().getFullyQualifiedName());
}
}