Skip to content

Commit

Permalink
Switch producer method tests to use Bean, not Model
Browse files Browse the repository at this point in the history
git-svn-id: http://anonsvn.jboss.org/repos/weld/ri/trunk@274 1c488680-804c-0410-94cd-c6b725194a0e
  • Loading branch information
pmuir committed Nov 7, 2008
1 parent d72dff8 commit 2279df6
Show file tree
Hide file tree
Showing 4 changed files with 53 additions and 46 deletions.
Expand Up @@ -6,6 +6,7 @@
import javax.webbeans.manager.Bean;

import org.jboss.webbeans.ManagerImpl;
import org.jboss.webbeans.model.MergedStereotypesModel;
import org.jboss.webbeans.model.bean.BeanModel;

public abstract class AbstractBean<T> extends Bean<T>
Expand Down Expand Up @@ -88,5 +89,10 @@ public String toString()
}

public abstract BeanModel<T, ?> getModel();

public MergedStereotypesModel<T, ?> getMergedStereotypes()
{
return getModel().getMergedStereotypes();
}

}
@@ -1,6 +1,6 @@
package org.jboss.webbeans.test;

import static org.jboss.webbeans.test.util.Util.createProducerModel;
import static org.jboss.webbeans.test.util.Util.createProducerMethodBean;
import static org.jboss.webbeans.test.util.Util.createSimpleModel;

import java.lang.reflect.Method;
Expand All @@ -9,9 +9,9 @@
import javax.webbeans.manager.Bean;
import javax.webbeans.manager.Context;

import org.jboss.webbeans.bean.ProducerMethodBean;
import org.jboss.webbeans.contexts.AbstractContext;
import org.jboss.webbeans.contexts.RequestContext;
import org.jboss.webbeans.model.bean.ProducerMethodBeanModel;
import org.jboss.webbeans.model.bean.SimpleBeanModel;
import org.jboss.webbeans.test.beans.SpiderProducer;
import org.jboss.webbeans.test.beans.Tarantula;
Expand Down Expand Up @@ -70,7 +70,8 @@ public void testProducerMethodReturningNullOK() throws SecurityException, NoSuch
SimpleBeanModel<SpiderProducer> producer = createSimpleModel(SpiderProducer.class, manager);
manager.getModelManager().addBeanModel(producer);
Method nullProducer = SpiderProducer.class.getMethod("produceShelob");
ProducerMethodBeanModel<Tarantula> producerModel = createProducerModel(Tarantula.class, nullProducer, manager);
ProducerMethodBean<Tarantula> producerModel = createProducerMethodBean(Tarantula.class, nullProducer, manager);
// TODO Fix this
//Bean<Tarantula> shelobBean = new ProducerBeanImpl<Tarantula>(producerModel, manager);
//assert context.get(shelobBean, true) == null;
}
Expand Down
@@ -1,6 +1,6 @@
package org.jboss.webbeans.test;

import static org.jboss.webbeans.test.util.Util.createProducerModel;
import static org.jboss.webbeans.test.util.Util.createProducerMethodBean;
import static org.jboss.webbeans.test.util.Util.createSimpleModel;

import java.lang.reflect.Method;
Expand All @@ -9,7 +9,7 @@
import javax.webbeans.DefinitionException;
import javax.webbeans.RequestScoped;

import org.jboss.webbeans.model.bean.ProducerMethodBeanModel;
import org.jboss.webbeans.bean.ProducerMethodBean;
import org.jboss.webbeans.model.bean.SimpleBeanModel;
import org.jboss.webbeans.test.annotations.AnotherDeploymentType;
import org.jboss.webbeans.test.annotations.Tame;
Expand Down Expand Up @@ -37,7 +37,7 @@ public void testProducerMethodInheritsDeploymentTypeOfDeclaringWebBean() throws
SimpleBeanModel<SpiderProducer> model = createSimpleModel(SpiderProducer.class, manager);
manager.getModelManager().addBeanModel(model);
Method method = SpiderProducer.class.getMethod("produceTameTarantula");
ProducerMethodBeanModel<Tarantula> tarantulaModel = createProducerModel(Tarantula.class, method, manager);
ProducerMethodBean<Tarantula> tarantulaModel = createProducerMethodBean(Tarantula.class, method, manager);
tarantulaModel.getDeploymentType().equals(AnotherDeploymentType.class);
}

Expand All @@ -47,7 +47,7 @@ public void testStaticMethod() throws Exception
SimpleBeanModel<BeanWithStaticProducerMethod> model = createSimpleModel(BeanWithStaticProducerMethod.class, manager);
manager.getModelManager().addBeanModel(model);
Method method = BeanWithStaticProducerMethod.class.getMethod("getString");
createProducerModel(String.class, method, manager);
createProducerMethodBean(String.class, method, manager);
}

@Test(groups={"producerMethod", "enterpriseBeans"}, expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.4")
Expand All @@ -62,7 +62,7 @@ public void testParameterizedReturnType() throws Exception
SimpleBeanModel<SpiderProducer> model = createSimpleModel(SpiderProducer.class, manager);
manager.getModelManager().addBeanModel(model);
Method method = SpiderProducer.class.getMethod("getFunnelWeaverSpider");
createProducerModel(FunnelWeaver.class, method, manager);
createProducerMethodBean(FunnelWeaver.class, method, manager);
}

@Test(groups="producerMethod", expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.4")
Expand All @@ -71,7 +71,7 @@ public void testParameterizedReturnTypeWithWildcard() throws Exception
SimpleBeanModel<SpiderProducer> model = createSimpleModel(SpiderProducer.class, manager);
manager.getModelManager().addBeanModel(model);
Method method = SpiderProducer.class.getMethod("getAnotherFunnelWeaver");
createProducerModel(FunnelWeaver.class, method, manager);
createProducerMethodBean(FunnelWeaver.class, method, manager);
}

@Test(groups="producerMethod", expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.4")
Expand All @@ -80,7 +80,7 @@ public void testParameterizedReturnTypeWithTypeParameter() throws Exception
SimpleBeanModel<SpiderProducer> model = createSimpleModel(SpiderProducer.class, manager);
manager.getModelManager().addBeanModel(model);
Method method = SpiderProducer.class.getMethod("getFunnelWeaver");
createProducerModel(FunnelWeaver.class, method, manager);
createProducerMethodBean(FunnelWeaver.class, method, manager);
}

@Test(groups={"producerMethod", "deployment"}) @SpecAssertion(section="3.4")
Expand All @@ -95,7 +95,7 @@ public void testDefaultBindingType() throws Exception
SimpleBeanModel<SpiderProducer> model = createSimpleModel(SpiderProducer.class, manager);
manager.getModelManager().addBeanModel(model);
Method method = SpiderProducer.class.getMethod("produceTarantula");
ProducerMethodBeanModel<Tarantula> tarantulaModel = createProducerModel(Tarantula.class, method, manager);
ProducerMethodBean<Tarantula> tarantulaModel = createProducerMethodBean(Tarantula.class, method, manager);
assert tarantulaModel.getBindingTypes().size() == 1;
assert tarantulaModel.getBindingTypes().iterator().next().annotationType().equals(Current.class);
}
Expand All @@ -106,14 +106,14 @@ public void testApiTypeForClassReturn() throws Exception
SimpleBeanModel<SpiderProducer> model = createSimpleModel(SpiderProducer.class, manager);
manager.getModelManager().addBeanModel(model);
Method method = SpiderProducer.class.getMethod("produceTarantula");
ProducerMethodBeanModel<Tarantula> tarantulaModel = createProducerModel(Tarantula.class, method, manager);
assert tarantulaModel.getApiTypes().size() == 6;
assert tarantulaModel.getApiTypes().contains(Tarantula.class);
assert tarantulaModel.getApiTypes().contains(DeadlySpider.class);
assert tarantulaModel.getApiTypes().contains(Spider.class);
assert tarantulaModel.getApiTypes().contains(Animal.class);
assert tarantulaModel.getApiTypes().contains(DeadlyAnimal.class);
assert tarantulaModel.getApiTypes().contains(Object.class);
ProducerMethodBean<Tarantula> tarantulaModel = createProducerMethodBean(Tarantula.class, method, manager);
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);
}

@Test(groups="producerMethod") @SpecAssertion(section="3.4.1")
Expand All @@ -122,10 +122,10 @@ public void testApiTypeForInterfaceReturn() throws Exception
SimpleBeanModel<SpiderProducer> model = createSimpleModel(SpiderProducer.class, manager);
manager.getModelManager().addBeanModel(model);
Method method = SpiderProducer.class.getMethod("makeASpider");
ProducerMethodBeanModel<Animal> animalModel = createProducerModel(Animal.class, method, manager);
assert animalModel.getApiTypes().size() == 2;
assert animalModel.getApiTypes().contains(Animal.class);
assert animalModel.getApiTypes().contains(Object.class);
ProducerMethodBean<Animal> animalModel = createProducerMethodBean(Animal.class, method, manager);
assert animalModel.getTypes().size() == 2;
assert animalModel.getTypes().contains(Animal.class);
assert animalModel.getTypes().contains(Object.class);
}

@Test(groups="producerMethod") @SpecAssertion(section="3.4.1")
Expand All @@ -134,10 +134,10 @@ public void testApiTypeForPrimitiveReturn() throws Exception
SimpleBeanModel<SpiderProducer> model = createSimpleModel(SpiderProducer.class, manager);
manager.getModelManager().addBeanModel(model);
Method method = SpiderProducer.class.getMethod("getWolfSpiderSize");
ProducerMethodBeanModel<Integer> intModel = createProducerModel(int.class, method, manager);
assert intModel.getApiTypes().size() == 2;
assert intModel.getApiTypes().contains(int.class);
assert intModel.getApiTypes().contains(Object.class);
ProducerMethodBean<Integer> intModel = createProducerMethodBean(int.class, method, manager);
assert intModel.getTypes().size() == 2;
assert intModel.getTypes().contains(int.class);
assert intModel.getTypes().contains(Object.class);
}

@Test(groups="producerMethod") @SpecAssertion(section="3.4.1")
Expand All @@ -146,10 +146,10 @@ public void testApiTypeForArrayTypeReturn() throws Exception
SimpleBeanModel<SpiderProducer> model = createSimpleModel(SpiderProducer.class, manager);
manager.getModelManager().addBeanModel(model);
Method method = SpiderProducer.class.getMethod("getSpiders");
ProducerMethodBeanModel<Spider[]> spidersModel = createProducerModel(Spider[].class, method, manager);
assert spidersModel.getApiTypes().size() == 2;
assert spidersModel.getApiTypes().contains(Spider[].class);
assert spidersModel.getApiTypes().contains(Object.class);
ProducerMethodBean<Spider[]> spidersModel = createProducerMethodBean(Spider[].class, method, manager);
assert spidersModel.getTypes().size() == 2;
assert spidersModel.getTypes().contains(Spider[].class);
assert spidersModel.getTypes().contains(Object.class);
}

@Test(groups="producerMethod") @SpecAssertion(section="3.4.2")
Expand All @@ -158,7 +158,7 @@ public void testBindingType() throws Exception
SimpleBeanModel<SpiderProducer> model = createSimpleModel(SpiderProducer.class, manager);
manager.getModelManager().addBeanModel(model);
Method method = SpiderProducer.class.getMethod("produceTameTarantula");
ProducerMethodBeanModel<Tarantula> tarantulaModel = createProducerModel(Tarantula.class, method, manager);
ProducerMethodBean<Tarantula> tarantulaModel = createProducerMethodBean(Tarantula.class, method, manager);
assert tarantulaModel.getBindingTypes().size() == 1;
assert tarantulaModel.getBindingTypes().iterator().next().annotationType().equals(Tame.class);
}
Expand All @@ -169,7 +169,7 @@ public void testScopeType() throws Exception
SimpleBeanModel<SpiderProducer> model = createSimpleModel(SpiderProducer.class, manager);
manager.getModelManager().addBeanModel(model);
Method method = SpiderProducer.class.getMethod("produceDaddyLongLegs");
ProducerMethodBeanModel<DaddyLongLegs> daddyLongLegsModel = createProducerModel(DaddyLongLegs.class, method, manager);
ProducerMethodBean<DaddyLongLegs> daddyLongLegsModel = createProducerMethodBean(DaddyLongLegs.class, method, manager);
assert daddyLongLegsModel.getScopeType().equals(RequestScoped.class);

// TODO Inherit scope from returned web bean?
Expand All @@ -181,7 +181,7 @@ public void testDeploymentType() throws Exception
SimpleBeanModel<SpiderProducer> model = createSimpleModel(SpiderProducer.class, manager);
manager.getModelManager().addBeanModel(model);
Method method = SpiderProducer.class.getMethod("getLadybirdSpider");
ProducerMethodBeanModel<LadybirdSpider> ladybirdSpiderModel = createProducerModel(LadybirdSpider.class, method, manager);
ProducerMethodBean<LadybirdSpider> ladybirdSpiderModel = createProducerMethodBean(LadybirdSpider.class, method, manager);
assert ladybirdSpiderModel.getDeploymentType().equals(AnotherDeploymentType.class);
}

Expand All @@ -191,7 +191,7 @@ public void testNamedMethod() throws Exception
SimpleBeanModel<SpiderProducer> model = createSimpleModel(SpiderProducer.class, manager);
manager.getModelManager().addBeanModel(model);
Method method = SpiderProducer.class.getMethod("produceBlackWidow");
ProducerMethodBeanModel<BlackWidow> blackWidowSpiderModel = createProducerModel(BlackWidow.class, method, manager);
ProducerMethodBean<BlackWidow> blackWidowSpiderModel = createProducerMethodBean(BlackWidow.class, method, manager);
assert blackWidowSpiderModel.getName().equals("blackWidow");
}

Expand All @@ -201,7 +201,7 @@ public void testDefaultNamedMethod() throws Exception
SimpleBeanModel<SpiderProducer> model = createSimpleModel(SpiderProducer.class, manager);
manager.getModelManager().addBeanModel(model);
Method method = SpiderProducer.class.getMethod("produceDaddyLongLegs");
ProducerMethodBeanModel<DaddyLongLegs> daddyLongLegsSpiderModel = createProducerModel(DaddyLongLegs.class, method, manager);
ProducerMethodBean<DaddyLongLegs> daddyLongLegsSpiderModel = createProducerMethodBean(DaddyLongLegs.class, method, manager);
assert daddyLongLegsSpiderModel.getName().equals("produceDaddyLongLegs");
}

Expand All @@ -211,7 +211,7 @@ public void testProducerMethodAnnotatedDestructor() throws Exception
SimpleBeanModel<BrokenSpiderProducer> model = createSimpleModel(BrokenSpiderProducer.class, manager);
manager.getModelManager().addBeanModel(model);
Method method = BrokenSpiderProducer.class.getMethod("destroy");
createProducerModel(String.class, method, manager);
createProducerMethodBean(String.class, method, manager);
}

@Test(groups="producerMethod", expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.4")
Expand All @@ -220,7 +220,7 @@ public void testProducerMethodWithParameterAnnotatedDisposes() throws Exception
SimpleBeanModel<BrokenSpiderProducer> model = createSimpleModel(BrokenSpiderProducer.class, manager);
manager.getModelManager().addBeanModel(model);
Method method = BrokenSpiderProducer.class.getMethod("dispose", String.class);
createProducerModel(String.class, method, manager);
createProducerMethodBean(String.class, method, manager);
}

@Test(groups="producerMethod", expectedExceptions=DefinitionException.class) @SpecAssertion(section="3.4")
Expand All @@ -229,7 +229,7 @@ public void testProducerMethodWithParameterAnnotatedObserves() throws Exception
SimpleBeanModel<BrokenSpiderProducer> model = createSimpleModel(BrokenSpiderProducer.class, manager);
manager.getModelManager().addBeanModel(model);
Method method = BrokenSpiderProducer.class.getMethod("observe", String.class);
createProducerModel(String.class, method, manager);
createProducerMethodBean(String.class, method, manager);
}

@Test(groups="disposalMethod") @SpecAssertion(section="3.3.4")
Expand Down Expand Up @@ -298,7 +298,7 @@ public void testStereotype() throws Exception
SimpleBeanModel<SpiderProducer> model = createSimpleModel(SpiderProducer.class, manager);
manager.getModelManager().addBeanModel(model);
Method method = SpiderProducer.class.getMethod("produceWolfSpider");
ProducerMethodBeanModel<WolfSpider> wolfSpiderModel = createProducerModel(WolfSpider.class, method, manager);
ProducerMethodBean<WolfSpider> wolfSpiderModel = createProducerMethodBean(WolfSpider.class, method, manager);
assert wolfSpiderModel.getMergedStereotypes().getRequiredTypes().size() == 1;
assert wolfSpiderModel.getMergedStereotypes().getRequiredTypes().contains(Animal.class);
assert wolfSpiderModel.getScopeType().equals(RequestScoped.class);
Expand Down
12 changes: 6 additions & 6 deletions webbeans-ri/src/test/java/org/jboss/webbeans/test/util/Util.java
Expand Up @@ -51,28 +51,28 @@ private static <T> EnterpriseBeanModel<T> createEnterpriseBeanModel(Class<T> cla

public static <T> ProducerMethodBean<T> createProducerMethodBean(Class<T> type, Method method, ManagerImpl manager, AbstractBean<?> declaringBean)
{
return new ProducerMethodBean<T>(createProducerModel(type, method, null, manager, declaringBean), manager);
return new ProducerMethodBean<T>(createProducerMethodBeanModel(type, method, null, manager, declaringBean), manager);
}

public static <T> ProducerMethodBean<T> createProducerMethodBean(Class<T> type, Method method, ManagerImpl manager)
{
return createProducerMethodBean(type, method, manager, null);
}

public static <T> ProducerMethodBeanModel<T> createProducerModel(Class<T> type, Method method, ManagerImpl manager)
private static <T> ProducerMethodBeanModel<T> createProducerMethodBeanModel(Class<T> type, Method method, ManagerImpl manager)
{
return createProducerModel(type, method, null, manager);
return createProducerMethodBeanModel(type, method, null, manager);
}

public static <T> ProducerMethodBeanModel<T> createProducerModel(Class<T> type, Method method, AnnotatedMethod<T> xmlAnnotatedMethod, ManagerImpl manager, AbstractBean<?> declaringBean)
private static <T> ProducerMethodBeanModel<T> createProducerMethodBeanModel(Class<T> type, Method method, AnnotatedMethod<T> xmlAnnotatedMethod, ManagerImpl manager, AbstractBean<?> declaringBean)
{
return new ProducerMethodBeanModel<T>(new SimpleAnnotatedMethod<T>(method), xmlAnnotatedMethod, manager, declaringBean);
}

@Deprecated
public static <T> ProducerMethodBeanModel<T> createProducerModel(Class<T> type, Method method, AnnotatedMethod<T> xmlAnnotatedMethod, ManagerImpl manager)
public static <T> ProducerMethodBeanModel<T> createProducerMethodBeanModel(Class<T> type, Method method, AnnotatedMethod<T> xmlAnnotatedMethod, ManagerImpl manager)
{
return createProducerModel(type, method, xmlAnnotatedMethod, manager, null);
return createProducerMethodBeanModel(type, method, xmlAnnotatedMethod, manager, null);
}

@Deprecated
Expand Down

0 comments on commit 2279df6

Please sign in to comment.