[webbeans-commits] Webbeans SVN: r1007 - in tck/trunk: impl/src/main/java/org/jboss/webbeans/tck/tests and 2 other directories.
webbeans-commits at lists.jboss.org
webbeans-commits at lists.jboss.org
Thu Jan 15 23:20:11 EST 2009
Author: shane.bryzak at jboss.com
Date: 2009-01-15 23:20:11 -0500 (Thu, 15 Jan 2009)
New Revision: 1007
Added:
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/Animal.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/AnotherDeploymentType.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/BlackWidow.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/DaddyLongLegs.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/DeadlyAnimal.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/DeadlySpider.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/LadybirdSpider.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/OtherBrokenSpiderProducer.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/OtherSpiderProducer.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/ProducerFieldBeanLifecycleTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/ProducerFieldBeanModelTest.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/Spider.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/Tame.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/Tarantula.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/WolfSpider.java
Modified:
tck/trunk/api/src/main/java/org/jboss/webbeans/tck/api/Beans.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/AbstractTest.java
Log:
producer field tests
Modified: tck/trunk/api/src/main/java/org/jboss/webbeans/tck/api/Beans.java
===================================================================
--- tck/trunk/api/src/main/java/org/jboss/webbeans/tck/api/Beans.java 2009-01-16 03:08:00 UTC (rev 1006)
+++ tck/trunk/api/src/main/java/org/jboss/webbeans/tck/api/Beans.java 2009-01-16 04:20:11 UTC (rev 1007)
@@ -1,5 +1,6 @@
package org.jboss.webbeans.tck.api;
+import java.lang.reflect.Field;
import java.lang.reflect.Method;
import javax.webbeans.manager.Bean;
@@ -84,4 +85,14 @@
* @return true only if class declares an entity bean
*/
public boolean isEntityBean(Class<?> clazz);
+ /**
+ * Create a new producer field bean from the given method.
+ *
+ * @param <T> The type of the bean
+ * @param field the producer field
+ * @param declaringBean
+ * @return the producer bean
+ */
+ public <T> Bean<T> createProducerFieldBean(Field field, Bean<?> declaringBean);
+
}
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/AbstractTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/AbstractTest.java 2009-01-16 03:08:00 UTC (rev 1006)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/AbstractTest.java 2009-01-16 04:20:11 UTC (rev 1007)
@@ -8,6 +8,7 @@
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.lang.annotation.Annotation;
+import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
@@ -56,6 +57,11 @@
{
return configuration().getBeans().createProducerMethodBean(method, producerBean);
}
+
+ public <T> Bean<?> getProducerFieldBean(Field field, Bean<?> producerBean)
+ {
+ return configuration().getBeans().createProducerFieldBean(field, producerBean);
+ }
protected void deployBeans(Class<?>... classes)
{
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/Animal.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/Animal.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/Animal.java 2009-01-16 04:20:11 UTC (rev 1007)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.tests.implementation.producer;
+
+public interface Animal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/AnotherDeploymentType.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/AnotherDeploymentType.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/AnotherDeploymentType.java 2009-01-16 04:20:11 UTC (rev 1007)
@@ -0,0 +1,20 @@
+package org.jboss.webbeans.tck.tests.implementation.producer;
+
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.webbeans.DeploymentType;
+
+ at Target( { TYPE, METHOD })
+ at Retention(RUNTIME)
+ at Documented
+ at DeploymentType
+public @interface AnotherDeploymentType
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/BlackWidow.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/BlackWidow.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/BlackWidow.java 2009-01-16 04:20:11 UTC (rev 1007)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.tests.implementation.producer;
+
+public class BlackWidow extends Spider implements DeadlySpider
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/DaddyLongLegs.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/DaddyLongLegs.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/DaddyLongLegs.java 2009-01-16 04:20:11 UTC (rev 1007)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.tests.implementation.producer;
+
+public class DaddyLongLegs extends Spider
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/DeadlyAnimal.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/DeadlyAnimal.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/DeadlyAnimal.java 2009-01-16 04:20:11 UTC (rev 1007)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.tests.implementation.producer;
+
+public interface DeadlyAnimal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/DeadlySpider.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/DeadlySpider.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/DeadlySpider.java 2009-01-16 04:20:11 UTC (rev 1007)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.tests.implementation.producer;
+
+public interface DeadlySpider extends DeadlyAnimal
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/LadybirdSpider.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/LadybirdSpider.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/LadybirdSpider.java 2009-01-16 04:20:11 UTC (rev 1007)
@@ -0,0 +1,14 @@
+package org.jboss.webbeans.tck.tests.implementation.producer;
+
+import javax.webbeans.ApplicationScoped;
+
+ at ApplicationScoped
+public class LadybirdSpider extends Spider
+{
+
+ public void spinWeb()
+ {
+
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/OtherBrokenSpiderProducer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/OtherBrokenSpiderProducer.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/OtherBrokenSpiderProducer.java 2009-01-16 04:20:11 UTC (rev 1007)
@@ -0,0 +1,34 @@
+package org.jboss.webbeans.tck.tests.implementation.producer;
+
+import javax.webbeans.Destructor;
+import javax.webbeans.Disposes;
+import javax.webbeans.Observes;
+import javax.webbeans.Produces;
+import javax.webbeans.Production;
+import javax.webbeans.RequestScoped;
+
+ at Production
+public class OtherBrokenSpiderProducer
+{
+
+ @Produces
+ public String observe(@Observes String foo)
+ {
+ return "foo";
+ }
+
+ @Produces
+ public String dispose(@Disposes String foo)
+ {
+ return "foo";
+ }
+
+ @Produces @Destructor
+ public String destroy()
+ {
+ return "foo";
+ }
+
+ @Produces @RequestScoped public Spider getRequestScopedSpider = null;
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/OtherSpiderProducer.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/OtherSpiderProducer.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/OtherSpiderProducer.java 2009-01-16 04:20:11 UTC (rev 1007)
@@ -0,0 +1,45 @@
+package org.jboss.webbeans.tck.tests.implementation.producer;
+
+import javax.webbeans.Dependent;
+import javax.webbeans.Named;
+import javax.webbeans.Produces;
+import javax.webbeans.Production;
+import javax.webbeans.RequestScoped;
+
+ at AnotherDeploymentType
+public class OtherSpiderProducer
+{
+
+ private static Spider[] ALL_SPIDERS = { new Tarantula(), new LadybirdSpider(), new DaddyLongLegs() };
+
+ @Produces @Tame public Tarantula produceTameTarantula = new DefangedTarantula();
+
+ @Produces public Tarantula produceTarantula = new Tarantula();
+
+ @Produces @Dependent public final TrapdoorSpider produceTrapdoorSpider = new TrapdoorSpider();
+
+ @Produces @Named("blackWidow") public BlackWidow produceBlackWidow = new BlackWidow();
+
+ @Produces @Named @RequestScoped public DaddyLongLegs produceDaddyLongLegs = new DaddyLongLegs();
+
+ @Produces @Named @Production public LadybirdSpider getLadybirdSpider = new LadybirdSpider();
+
+ @Produces @Named("Shelob") public Tarantula produceShelob;
+
+ @Produces @AnimalStereotype public WolfSpider produceWolfSpider = new WolfSpider();
+
+ @Produces public Animal makeASpider = new WolfSpider();
+
+ @Produces public int getWolfSpiderSize = 4;
+
+ @Produces public Spider[] getSpiders = ALL_SPIDERS;
+
+ @Produces public String[] getStrings = new String[0];
+
+ @Produces public FunnelWeaver<?> getAnotherFunnelWeaver = new FunnelWeaver<Object>();
+
+ @Produces public FunnelWeaver<Spider> getFunnelWeaverSpider = new FunnelWeaver<Spider>();
+
+ @Produces public Spider getNullSpider = null;
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/ProducerFieldBeanLifecycleTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/ProducerFieldBeanLifecycleTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/ProducerFieldBeanLifecycleTest.java 2009-01-16 04:20:11 UTC (rev 1007)
@@ -0,0 +1,58 @@
+package org.jboss.webbeans.tck.tests.implementation.producer;
+
+import java.lang.reflect.Field;
+
+import javax.webbeans.IllegalProductException;
+import javax.webbeans.manager.Bean;
+
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.jboss.webbeans.tck.impl.SpecVersion;
+import org.jboss.webbeans.tck.tests.AbstractTest;
+import org.testng.annotations.Test;
+
+ at SpecVersion("20081206")
+public class ProducerFieldBeanLifecycleTest extends AbstractTest
+{
+
+ @SuppressWarnings("unchecked")
+ @Test(groups={"producerField", "broken"}) @SpecAssertion(section="5.6")
+ public void testProducerFieldBeanCreate() throws Exception
+ {
+ Bean<OtherSpiderProducer> spiderProducer = getSimpleBean(OtherSpiderProducer.class);
+ manager.addBean(spiderProducer);
+ Field method = OtherSpiderProducer.class.getField("produceTarantula");
+ Bean<Tarantula> tarantulaBean = (Bean<Tarantula>) getProducerFieldBean(method, spiderProducer);
+ Tarantula tarantula = tarantulaBean.create();
+ assert tarantula != null;
+ }
+
+ @Test(groups={"stub", "specialization"}) @SpecAssertion(section="3.3.3")
+ public void testSpecializedBeanAlwaysUsed()
+ {
+ // TODO Placeholder
+ assert false;
+ }
+
+
+ @SuppressWarnings("unchecked")
+ @Test(groups={"producerField", "broken"}) @SpecAssertion(section={"3.5", "5.6", "8.3"})
+ public void testProducerFieldReturnsNullIsDependent() throws Exception
+ {
+ Bean<OtherSpiderProducer> spiderProducer = getSimpleBean(OtherSpiderProducer.class);
+ manager.addBean(spiderProducer);
+ Field method = OtherSpiderProducer.class.getField("getNullSpider");
+ Bean<Spider> spiderBean = (Bean<Spider>) getProducerFieldBean(method, spiderProducer);
+ Spider spider = spiderBean.create();
+ assert spider == null;
+ }
+
+ @Test(groups="producerField", expectedExceptions=IllegalProductException.class) @SpecAssertion(section={"3.5", "5.6"})
+ public void testProducerFieldReturnsNullIsNotDependent() throws Exception
+ {
+ Bean<OtherBrokenSpiderProducer> spiderProducer = getSimpleBean(OtherBrokenSpiderProducer.class);
+ manager.addBean(spiderProducer);
+ Field method = OtherBrokenSpiderProducer.class.getField("getRequestScopedSpider");
+ getProducerFieldBean(method, spiderProducer).create();
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/ProducerFieldBeanModelTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/ProducerFieldBeanModelTest.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/ProducerFieldBeanModelTest.java 2009-01-16 04:20:11 UTC (rev 1007)
@@ -0,0 +1,272 @@
+package org.jboss.webbeans.tck.tests.implementation.producer;
+
+import java.lang.reflect.Field;
+
+import javax.webbeans.Current;
+import javax.webbeans.DefinitionException;
+import javax.webbeans.Production;
+import javax.webbeans.RequestScoped;
+import javax.webbeans.manager.Bean;
+
+import org.jboss.webbeans.tck.impl.SpecAssertion;
+import org.jboss.webbeans.tck.impl.SpecVersion;
+import org.jboss.webbeans.tck.tests.AbstractTest;
+import org.testng.annotations.Test;
+
+ at SpecVersion("20081206")
+public class ProducerFieldBeanModelTest extends AbstractTest
+{
+
+ @SuppressWarnings("unchecked")
+ @Test(groups="producerField") @SpecAssertion(section="2.5.3")
+ public void testProducerFieldInheritsDeploymentTypeOfDeclaringWebBean() throws Exception
+ {
+ Bean<OtherSpiderProducer> bean = getSimpleBean(OtherSpiderProducer.class);
+ manager.addBean(bean);
+ Field field = OtherSpiderProducer.class.getField("produceTameTarantula");
+ Bean<Tarantula> tarantulaModel = (Bean<Tarantula>) getProducerFieldBean(field, bean);
+ tarantulaModel.getDeploymentType().equals(AnotherDeploymentType.class);
+ }
+
+ /*@Test(groups="producerField", expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.5")
+ public void testStaticField() throws Exception
+ {
+ SimpleBean<BeanWithStaticProducerField> bean = createSimpleBean(BeanWithStaticProducerField.class);
+ manager.addBean(bean);
+ Field field = BeanWithStaticProducerField.class.getField("getString");
+ createProducerFieldBean(String.class, field, bean);
+ }*/
+
+ @Test(groups={"stub", "producerField", "enterpriseBeans", "stub"}, expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.5")
+ public void testProducerFieldIsNotBusinessField() throws Exception
+ {
+ assert false;
+ }
+
+ @Test(groups="producerField") @SpecAssertion(section="3.5")
+ public void testParameterizedReturnType() throws Exception
+ {
+ Bean<OtherSpiderProducer> bean = getSimpleBean(OtherSpiderProducer.class);
+ manager.addBean(bean);
+ Field field = OtherSpiderProducer.class.getField("getFunnelWeaverSpider");
+ getProducerFieldBean(field, bean);
+ }
+
+ @Test(groups="producerField", expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.5")
+ public void testParameterizedReturnTypeWithWildcard() throws Exception
+ {
+ Bean<OtherSpiderProducer> bean = getSimpleBean(OtherSpiderProducer.class);
+ manager.addBean(bean);
+ Field field = OtherSpiderProducer.class.getField("getAnotherFunnelWeaver");
+ getProducerFieldBean(field, bean);
+ }
+
+ @Test(groups={"stub", "producerField", "deployment"}) @SpecAssertion(section="3.5")
+ public void testBeanDeclaresMultipleProducerFields()
+ {
+ assert false;
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test(groups="producerField") @SpecAssertion(section={"3.5", "2.3.1"})
+ public void testDefaultBindingType() throws Exception
+ {
+ Bean<OtherSpiderProducer> bean = getSimpleBean(OtherSpiderProducer.class);
+ manager.addBean(bean);
+ Field field = OtherSpiderProducer.class.getField("produceTarantula");
+ Bean<Tarantula> tarantulaModel = (Bean<Tarantula>) getProducerFieldBean(field, bean);
+ assert tarantulaModel.getBindings().size() == 1;
+ assert tarantulaModel.getBindings().iterator().next().annotationType().equals(Current.class);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test(groups="producerField") @SpecAssertion(section="3.5.1")
+ public void testApiTypeForClassReturn() throws Exception
+ {
+ Bean<OtherSpiderProducer> bean = getSimpleBean(OtherSpiderProducer.class);
+ manager.addBean(bean);
+ Field field = OtherSpiderProducer.class.getField("produceTarantula");
+ Bean<Tarantula> tarantulaModel = (Bean<Tarantula>) getProducerFieldBean(field, bean);
+ assert tarantulaModel.getTypes().size() == 6;
+ assert tarantulaModel.getTypes().contains(Tarantula.class);
+ assert tarantulaModel.getTypes().contains(DeadlySpider.class);
+ assert tarantulaModel.getTypes().contains(Spider.class);
+ assert tarantulaModel.getTypes().contains(Animal.class);
+ assert tarantulaModel.getTypes().contains(DeadlyAnimal.class);
+ assert tarantulaModel.getTypes().contains(Object.class);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test(groups="producerField") @SpecAssertion(section="3.5.1")
+ public void testApiTypeForInterfaceReturn() throws Exception
+ {
+ Bean<OtherSpiderProducer> bean = getSimpleBean(OtherSpiderProducer.class);
+ manager.addBean(bean);
+ Field field = OtherSpiderProducer.class.getField("makeASpider");
+ Bean<Animal> animalModel = (Bean<Animal>) getProducerFieldBean(field, bean);
+ assert animalModel.getTypes().size() == 2;
+ assert animalModel.getTypes().contains(Animal.class);
+ assert animalModel.getTypes().contains(Object.class);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test(groups="producerField") @SpecAssertion(section="3.5.1")
+ public void testApiTypeForPrimitiveReturn() throws Exception
+ {
+ Bean<OtherSpiderProducer> bean = getSimpleBean(OtherSpiderProducer.class);
+ manager.addBean(bean);
+ Field field = OtherSpiderProducer.class.getField("getWolfSpiderSize");
+ Bean<Integer> intModel = (Bean<Integer>) getProducerFieldBean(field, bean);
+ assert intModel.getTypes().size() == 2;
+ assert intModel.getTypes().contains(int.class);
+ assert intModel.getTypes().contains(Object.class);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test(groups="producerField") @SpecAssertion(section={"3.5.1", "2.2"})
+ public void testApiTypeForArrayTypeReturn() throws Exception
+ {
+ Bean<OtherSpiderProducer> bean = getSimpleBean(OtherSpiderProducer.class);
+ manager.addBean(bean);
+ Field field = OtherSpiderProducer.class.getField("getSpiders");
+ Bean<Spider[]> spidersModel = (Bean<Spider[]>) getProducerFieldBean(field, bean);
+ assert spidersModel.getTypes().size() == 2;
+ assert spidersModel.getTypes().contains(Spider[].class);
+ assert spidersModel.getTypes().contains(Object.class);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test(groups="producerField") @SpecAssertion(section="3.5.2")
+ public void testBindingType() throws Exception
+ {
+ Bean<OtherSpiderProducer> bean = getSimpleBean(OtherSpiderProducer.class);
+ manager.addBean(bean);
+ Field field = OtherSpiderProducer.class.getField("produceTameTarantula");
+ Bean<Tarantula> tarantulaModel = (Bean<Tarantula>) getProducerFieldBean(field, bean);
+ assert tarantulaModel.getBindings().size() == 1;
+ assert tarantulaModel.getBindings().iterator().next().annotationType().equals(Tame.class);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test(groups="producerField") @SpecAssertion(section="3.5.2")
+ public void testScopeType() throws Exception
+ {
+ Bean<OtherSpiderProducer> bean = getSimpleBean(OtherSpiderProducer.class);
+ manager.addBean(bean);
+ Field field = OtherSpiderProducer.class.getField("produceDaddyLongLegs");
+ Bean<DaddyLongLegs> daddyLongLegsModel = (Bean<DaddyLongLegs>) getProducerFieldBean(field, bean);
+ assert daddyLongLegsModel.getScopeType().equals(RequestScoped.class);
+
+ // TODO Inherit scope from returned web bean?
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test(groups="producerField") @SpecAssertion(section="3.5.2")
+ public void testDeploymentType() throws Exception
+ {
+ Bean<OtherSpiderProducer> bean = getSimpleBean(OtherSpiderProducer.class);
+ manager.addBean(bean);
+ Field field = OtherSpiderProducer.class.getField("getLadybirdSpider");
+ Bean<LadybirdSpider> ladybirdSpiderModel = (Bean<LadybirdSpider>) getProducerFieldBean(field, bean);
+ assert ladybirdSpiderModel.getDeploymentType().equals(Production.class);
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test(groups="producerField") @SpecAssertion(section="3.5.2")
+ public void testNamedField() throws Exception
+ {
+ Bean<OtherSpiderProducer> bean = getSimpleBean(OtherSpiderProducer.class);
+ manager.addBean(bean);
+ Field field = OtherSpiderProducer.class.getField("produceBlackWidow");
+ Bean<BlackWidow> blackWidowSpiderModel = (Bean<BlackWidow>) getProducerFieldBean(field, bean);
+ assert blackWidowSpiderModel.getName().equals("blackWidow");
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test(groups="producerField") @SpecAssertion(section="3.5.2")
+ public void testDefaultNamedField() throws Exception
+ {
+ Bean<OtherSpiderProducer> bean = getSimpleBean(OtherSpiderProducer.class);
+ manager.addBean(bean);
+ Field field = OtherSpiderProducer.class.getField("produceDaddyLongLegs");
+ Bean<DaddyLongLegs> daddyLongLegsSpiderModel = (Bean<DaddyLongLegs>) getProducerFieldBean(field, bean);
+ assert daddyLongLegsSpiderModel.getName().equals("produceDaddyLongLegs");
+ }
+
+ @Test(groups={"stub", "disposalField"}) @SpecAssertion(section="3.3.5")
+ public void testDisposalFieldNonStatic()
+ {
+ // TODO Placeholder
+ assert false;
+ }
+
+ @Test(groups={"stub", "disposalField"}) @SpecAssertion(section="3.3.5")
+ public void testDisposalFieldFieldDeclaredOnWebBeanImplementationClass()
+ {
+ // TODO Placeholder
+ assert false;
+ }
+
+ @Test(groups={"stub", "disposalField"}) @SpecAssertion(section="3.3.5")
+ public void testDisposalFieldBindingAnnotations()
+ {
+ // TODO Placeholder
+ assert false;
+ }
+
+ @Test(groups={"stub", "disposalField"}) @SpecAssertion(section="3.3.5")
+ public void testDisposalFieldDefaultBindingAnnotations()
+ {
+ // TODO Placeholder
+ assert false;
+ }
+
+ @Test(groups={"stub", "disposalField"}) @SpecAssertion(section="3.3.5")
+ public void testDisposalFieldDoesNotResolveToProducerField()
+ {
+ // TODO Placeholder
+ assert false;
+ }
+
+ @Test(groups={"stub", "disposalField"}) @SpecAssertion(section="3.3.5")
+ public void testDisposalFieldDeclaredOnEnabledBean()
+ {
+ // TODO Placeholder
+ // TODO Move this
+
+ assert false;
+ }
+
+ @Test(groups={"stub", "disposalField"}) @SpecAssertion(section="3.3.5")
+ public void testBeanCanDeclareMultipleDisposalFields()
+ {
+ // TODO move this
+ // TODO Placeholder
+ assert false;
+ }
+
+ @Test(groups={"stub", "disposalField"}) @SpecAssertion(section="3.3.5")
+ public void testProducerFieldHasNoMoreThanOneDisposalField()
+ {
+ // TODO move this
+ // TODO Placeholder
+ assert false;
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test(groups="producerField") @SpecAssertion(section={"2.7.2", "3.5.2", "2.2"})
+ public void testStereotype() throws Exception
+ {
+ Bean<OtherSpiderProducer> bean = getSimpleBean(OtherSpiderProducer.class);
+ manager.addBean(bean);
+ Field field = OtherSpiderProducer.class.getField("produceWolfSpider");
+ Bean<WolfSpider> wolfSpiderModel = (Bean<WolfSpider>) getProducerFieldBean(field, bean);
+
+
+ // TODO reimplement stereotype tests
+ //assert wolfSpiderModel.getMergedStereotypes().getRequiredTypes().size() == 1;
+ //assert wolfSpiderModel.getMergedStereotypes().getRequiredTypes().contains(Animal.class);
+
+ assert wolfSpiderModel.getScopeType().equals(RequestScoped.class);
+ }
+}
\ No newline at end of file
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/Spider.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/Spider.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/Spider.java 2009-01-16 04:20:11 UTC (rev 1007)
@@ -0,0 +1,11 @@
+package org.jboss.webbeans.tck.tests.implementation.producer;
+
+public class Spider implements Animal
+{
+
+ public final void layEggs()
+ {
+
+ }
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/Tame.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/Tame.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/Tame.java 2009-01-16 04:20:11 UTC (rev 1007)
@@ -0,0 +1,22 @@
+package org.jboss.webbeans.tck.tests.implementation.producer;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.webbeans.BindingType;
+
+ at Target( { TYPE, METHOD, PARAMETER, FIELD })
+ at Retention(RUNTIME)
+ at Documented
+ at BindingType
+public @interface Tame
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/Tarantula.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/Tarantula.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/Tarantula.java 2009-01-16 04:20:11 UTC (rev 1007)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.tests.implementation.producer;
+
+public class Tarantula extends Spider implements DeadlySpider
+{
+
+}
Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/WolfSpider.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/WolfSpider.java (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/tests/implementation/producer/WolfSpider.java 2009-01-16 04:20:11 UTC (rev 1007)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.tests.implementation.producer;
+
+public class WolfSpider implements Animal
+{
+
+}
More information about the weld-commits
mailing list