Author: akazakov
Date: 2011-07-12 20:00:48 -0400 (Tue, 12 Jul 2011)
New Revision: 32872
Added:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/CircularDependencyTest.java
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/lookup/circular/DependentSelfConsumingNormalProducer.java
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/lookup/circular/NormalSelfConsumingDependentProducer.java
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/lookup/circular/NormalSelfConsumingNormalProducer.java
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/CDICoreAllTests.java
Log:
https://issues.jboss.org/browse/JBIDE-9329
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/lookup/circular/DependentSelfConsumingNormalProducer.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/lookup/circular/DependentSelfConsumingNormalProducer.java 2011-07-12
22:34:18 UTC (rev 32871)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/lookup/circular/DependentSelfConsumingNormalProducer.java 2011-07-13
00:00:48 UTC (rev 32872)
@@ -18,10 +18,11 @@
import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.inject.Produces;
+import javax.inject.Inject;
class DependentSelfConsumingNormalProducer
{
- @SelfConsumingNormal1 Violation violation;
+ @SelfConsumingNormal1 @Inject Violation violation;
@Produces @ApplicationScoped @SelfConsumingNormal1
public Violation produceViolation() {
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/lookup/circular/NormalSelfConsumingDependentProducer.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/lookup/circular/NormalSelfConsumingDependentProducer.java 2011-07-12
22:34:18 UTC (rev 32871)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/lookup/circular/NormalSelfConsumingDependentProducer.java 2011-07-13
00:00:48 UTC (rev 32872)
@@ -18,11 +18,12 @@
import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.inject.Produces;
+import javax.inject.Inject;
@ApplicationScoped
class NormalSelfConsumingDependentProducer
{
- @SelfConsumingDependent1 Violation violation;
+ @SelfConsumingDependent1 @Inject Violation violation;
@Produces @SelfConsumingDependent1
public Violation produceViolation() {
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/lookup/circular/NormalSelfConsumingNormalProducer.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/lookup/circular/NormalSelfConsumingNormalProducer.java 2011-07-12
22:34:18 UTC (rev 32871)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/lookup/circular/NormalSelfConsumingNormalProducer.java 2011-07-13
00:00:48 UTC (rev 32872)
@@ -18,11 +18,12 @@
import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.inject.Produces;
+import javax.inject.Inject;
@ApplicationScoped
class NormalSelfConsumingNormalProducer
{
- @SelfConsumingNormal Violation violation;
+ @Inject @SelfConsumingNormal Violation violation;
@Produces @ApplicationScoped @SelfConsumingNormal
public Violation produceViolation() {
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/CDICoreAllTests.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/CDICoreAllTests.java 2011-07-12
22:34:18 UTC (rev 32871)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/CDICoreAllTests.java 2011-07-13
00:00:48 UTC (rev 32872)
@@ -23,6 +23,7 @@
import org.jboss.tools.cdi.core.test.tck.BeanDefinitionTest;
import org.jboss.tools.cdi.core.test.tck.BeanSpecializationTest;
import org.jboss.tools.cdi.core.test.tck.BuiltInBeanInjectionTest;
+import org.jboss.tools.cdi.core.test.tck.CircularDependencyTest;
import org.jboss.tools.cdi.core.test.tck.DecoratorDefinitionTest;
import org.jboss.tools.cdi.core.test.tck.DefaultNamedTest;
import org.jboss.tools.cdi.core.test.tck.DynamicLookupTest;
@@ -92,6 +93,7 @@
suite.addTestSuite(BuiltInBeanInjectionTest.class);
suite.addTestSuite(BeansXmlCATest.class);
suite.addTestSuite(SelectedAlternativeTest.class);
+ suite.addTestSuite(CircularDependencyTest.class);
// Validation tests
suite.addTestSuite(DefenitionErrorsValidationTest.class);
Added:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/CircularDependencyTest.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/CircularDependencyTest.java
(rev 0)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/CircularDependencyTest.java 2011-07-13
00:00:48 UTC (rev 32872)
@@ -0,0 +1,152 @@
+/*******************************************************************************
+ * Copyright (c) 2011 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.HashSet;
+import java.util.Set;
+
+import org.eclipse.core.runtime.CoreException;
+import org.jboss.tools.cdi.core.IBean;
+import org.jboss.tools.cdi.core.IClassBean;
+import org.jboss.tools.cdi.core.IInjectionPoint;
+import org.jboss.tools.cdi.core.IInjectionPointParameter;
+import org.jboss.tools.cdi.core.IProducerMethod;
+
+/**
+ * @author Alexey Kazakov
+ */
+public class CircularDependencyTest extends TCKTest {
+
+ /**
+ * section 5 b)
+ * @throws CoreException
+ */
+ public void testCircularInjectionOnTwoNormalBeans() throws CoreException {
+ assertOnlyInjectionOfClassBeanReslovedToAnotherClassBean("org.jboss.jsr299.tck.tests.lookup.circular.Pig",
"org.jboss.jsr299.tck.tests.lookup.circular.Food");
+ assertOnlyInjectionOfClassBeanReslovedToAnotherClassBean("org.jboss.jsr299.tck.tests.lookup.circular.Food",
"org.jboss.jsr299.tck.tests.lookup.circular.Pig");
+ }
+
+ /**
+ * section 5 b)
+ * @throws CoreException
+ */
+ public void testCircularInjectionOnOneNormalAndOneDependentBean() throws CoreException
{
+ assertOnlyInjectionOfClassBeanReslovedToAnotherClassBean("org.jboss.jsr299.tck.tests.lookup.circular.Car",
"org.jboss.jsr299.tck.tests.lookup.circular.Petrol");
+ assertOnlyInjectionOfClassBeanReslovedToAnotherClassBean("org.jboss.jsr299.tck.tests.lookup.circular.Petrol",
"org.jboss.jsr299.tck.tests.lookup.circular.Car");
+ }
+
+ /**
+ * section 5 b)
+ * @throws CoreException
+ */
+ public void testNormalProducerMethodDeclaredOnNormalBeanWhichInjectsProducedBean()
throws CoreException {
+ assertOnlyInjectionOfClassBeanReslovedToProducerMethodOfSameClass("org.jboss.jsr299.tck.tests.lookup.circular.NormalSelfConsumingNormalProducer");
+ }
+
+ /**
+ * section 5 b)
+ * @throws CoreException
+ */
+ public void testNormalProducerMethodDeclaredOnDependentBeanWhichInjectsProducedBean()
throws CoreException {
+ assertOnlyInjectionOfClassBeanReslovedToProducerMethodOfSameClass("org.jboss.jsr299.tck.tests.lookup.circular.DependentSelfConsumingNormalProducer");
+ }
+
+ /**
+ * section 5 b)
+ * @throws CoreException
+ */
+ public void testDependentProducerMethodDeclaredOnNormalBeanWhichInjectsProducedBean()
throws CoreException {
+ assertOnlyInjectionOfClassBeanReslovedToProducerMethodOfSameClass("org.jboss.jsr299.tck.tests.lookup.circular.NormalSelfConsumingDependentProducer");
+ }
+
+ /**
+ * section 5 b)
+ * @throws CoreException
+ */
+ public void testNormalSelfConsumingProducer() throws CoreException {
+ assertEquals(1,
getBeans("org.jboss.jsr299.tck.tests.lookup.circular.Violation").size());
+ }
+
+ /**
+ * section 5 b)
+ * @throws CoreException
+ */
+ public void testNormalCircularConstructors() throws CoreException {
+ assertOnlyInjectionConstructorOfClassBeanReslovedToAnotherClassBean("org.jboss.jsr299.tck.tests.lookup.circular.Bird",
"org.jboss.jsr299.tck.tests.lookup.circular.Air");
+ }
+
+ /**
+ * section 5 b)
+ * @throws CoreException
+ */
+ public void testNormalAndDependentCircularConstructors() throws CoreException {
+ assertOnlyInjectionConstructorOfClassBeanReslovedToAnotherClassBean("org.jboss.jsr299.tck.tests.lookup.circular.Planet",
"org.jboss.jsr299.tck.tests.lookup.circular.Space");
+ }
+
+ /**
+ * section 5 b)
+ * @throws CoreException
+ */
+ public void testSelfConsumingConstructorsOnNormalBean() throws CoreException {
+ assertOnlyInjectionConstructorOfClassBeanReslovedToAnotherClassBean("org.jboss.jsr299.tck.tests.lookup.circular.House",
"org.jboss.jsr299.tck.tests.lookup.circular.House");
+ }
+
+ public IClassBean getOnlyClassBean(String type) throws CoreException {
+ Set<IBean> beans = getBeans(type);
+ assertEquals("Wrong number of the beans", 1, beans.size());
+ IBean bean = beans.iterator().next();
+ assertTrue(bean instanceof IClassBean);
+ assertEquals(type, ((IClassBean)bean).getBeanClass().getFullyQualifiedName());
+ return (IClassBean)bean;
+ }
+
+ public void assertOnlyInjectionOfClassBeanReslovedToAnotherClassBean(String
classBeanType, String injectionClassBeanType) throws CoreException {
+ IBean bean = getOnlyClassBean(classBeanType);
+ Set<IInjectionPoint> points = bean.getInjectionPoints();
+ assertEquals("Wrong number of the injections", 1, points.size());
+ IInjectionPoint point = points.iterator().next();
+ Set<IBean> beans = cdiProject.getBeans(true, point);
+ assertEquals("Wrong number of the beans", 1, beans.size());
+ bean = beans.iterator().next();
+ assertTrue(bean instanceof IClassBean);
+ assertEquals(injectionClassBeanType,
((IClassBean)bean).getBeanClass().getFullyQualifiedName());
+ }
+
+ public void assertOnlyInjectionOfClassBeanReslovedToProducerMethodOfSameClass(String
classBeanType) throws CoreException {
+ IBean bean = getOnlyClassBean(classBeanType);
+ Set<IInjectionPoint> points = bean.getInjectionPoints();
+ assertEquals("Wrong number of the injections", 1, points.size());
+ IInjectionPoint point = points.iterator().next();
+ Set<IBean> beans = cdiProject.getBeans(true, point);
+ assertEquals("Wrong number of the beans", 1, beans.size());
+ bean = beans.iterator().next();
+ assertTrue(bean instanceof IProducerMethod);
+ assertEquals(classBeanType,
((IProducerMethod)bean).getBeanClass().getFullyQualifiedName());
+ }
+
+ public void assertOnlyInjectionConstructorOfClassBeanReslovedToAnotherClassBean(String
classBeanType, String injectionClassBeanType) throws CoreException {
+ IBean bean = getOnlyClassBean(classBeanType);
+ Set<IInjectionPoint> allPoints = bean.getInjectionPoints();
+ Set<IInjectionPointParameter> points = new
HashSet<IInjectionPointParameter>();
+ for (IInjectionPoint injectionPoint : allPoints) {
+ if(injectionPoint instanceof IInjectionPointParameter) {
+ points.add((IInjectionPointParameter)injectionPoint);
+ }
+ }
+ assertEquals("Wrong number of the injections", 1, points.size());
+ IInjectionPoint point = points.iterator().next();
+ Set<IBean> beans = cdiProject.getBeans(true, point);
+ assertEquals("Wrong number of the beans", 1, beans.size());
+ bean = beans.iterator().next();
+ assertTrue(bean instanceof IClassBean);
+ assertEquals(injectionClassBeanType,
((IClassBean)bean).getBeanClass().getFullyQualifiedName());
+ }
+}
\ No newline at end of file
Property changes on:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/CircularDependencyTest.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain