[webbeans-commits] Webbeans SVN: r178 - in ri/trunk/webbeans-ri/src: main/java/org/jboss/webbeans/model/bean and 1 other directories.
webbeans-commits at lists.jboss.org
webbeans-commits at lists.jboss.org
Mon Oct 27 08:07:27 EDT 2008
Author: pete.muir at jboss.org
Date: 2008-10-27 08:07:27 -0400 (Mon, 27 Oct 2008)
New Revision: 178
Added:
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ClientProxyTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InjectionTests.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ManagerTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ResolutionByNameTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ResolutionByTypeTest.java
Removed:
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/NameBasedResolutionTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/TypeSafeResolutionTest.java
Modified:
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/BeanImpl.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/AbstractBeanModel.java
ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/BeanModel.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/CommonWebBeanTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InstantiationByNameTest.java
ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InstantiationByTypeTest.java
Log:
Stub out remaining tests for Chapter 4
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/BeanImpl.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/BeanImpl.java 2008-10-27 10:41:26 UTC (rev 177)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/BeanImpl.java 2008-10-27 12:07:27 UTC (rev 178)
@@ -68,8 +68,7 @@
@Override
public boolean isNullable()
{
- // TODO Auto-generated method stub
- return false;
+ return !beanModel.isPrimitive();
}
@Override
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/AbstractBeanModel.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/AbstractBeanModel.java 2008-10-27 10:41:26 UTC (rev 177)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/AbstractBeanModel.java 2008-10-27 12:07:27 UTC (rev 178)
@@ -24,6 +24,7 @@
import org.jboss.webbeans.introspector.AnnotatedItem;
import org.jboss.webbeans.model.MergedStereotypesModel;
import org.jboss.webbeans.util.LoggerUtil;
+import org.jboss.webbeans.util.Reflections;
public abstract class AbstractBeanModel<T, E> implements BeanModel<T, E>
{
@@ -41,11 +42,13 @@
protected InjectableMethod<?> removeMethod;
private Set<Class<?>> apiTypes;
protected Set<Injectable<?, ?>> injectionPoints;
+ private boolean primitive;
protected void init(ManagerImpl container)
{
mergedStereotypes = new MergedStereotypesModel<T, E>(getAnnotatedItem(), getXmlAnnotatedItem(), container);
initType();
+ initPrimitive();
log.fine("Building Web Bean bean metadata for " + getType());
initBindingTypes();
initName();
@@ -74,6 +77,11 @@
apiTypes = getTypeHierachy(getType());
}
+ protected void initPrimitive()
+ {
+ this.primitive = Reflections.isPrimitive(getType());
+ }
+
protected Set<Class<?>> getTypeHierachy(Class<?> clazz)
{
Set<Class<?>> classes = new HashSet<Class<?>>();
@@ -328,4 +336,9 @@
return this.getAnnotatedItem().isAssignableFrom(annotatedItem);
}
+ public boolean isPrimitive()
+ {
+ return primitive;
+ }
+
}
\ No newline at end of file
Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/BeanModel.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/BeanModel.java 2008-10-27 10:41:26 UTC (rev 177)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/model/bean/BeanModel.java 2008-10-27 12:07:27 UTC (rev 178)
@@ -38,6 +38,8 @@
public boolean isAssignableFrom(AnnotatedItem<?, ?> annotatedItem);
+ public boolean isPrimitive();
+
public MergedStereotypesModel<T, E> getMergedStereotypes();
}
\ No newline at end of file
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ClientProxyTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ClientProxyTest.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ClientProxyTest.java 2008-10-27 12:07:27 UTC (rev 178)
@@ -0,0 +1,53 @@
+package org.jboss.webbeans.test;
+
+import javax.webbeans.UnproxyableDependencyException;
+
+import org.testng.annotations.Test;
+
+ at SpecVersion("PDR")
+public class ClientProxyTest
+{
+
+
+ @Test(groups="clientProxy") @SpecAssertion(section={"4.4", "4.8"})
+ public void testClientProxyUsedForNormalScope()
+ {
+ assert false;
+ }
+
+ @Test(groups="clientProxy") @SpecAssertion(section={"4.4", "4.8"})
+ public void testClientProxyNotUsedForPseudoScope()
+ {
+ assert false;
+ }
+
+ @Test(groups="clientProxy") @SpecAssertion(section="4.4")
+ public void testClientProxyIsSerializable()
+ {
+ assert false;
+ }
+
+ @Test(groups="clientProxy", expectedExceptions=UnproxyableDependencyException.class) @SpecAssertion(section="4.4.1")
+ public void testInjectionPointWithUnproxyableTypeResolvesToNormalScopedWebBean()
+ {
+ assert false;
+ }
+
+ @Test(groups="clientProxy") @SpecAssertion(section="4.4.2")
+ public void testClientProxyInvocation()
+ {
+ assert false;
+ }
+
+ /*
+
+ @Test(groups="clientProxy") @SpecAssertion(section="4.4")
+ public void test
+ {
+ assert false;
+ }
+
+ */
+
+
+}
Property changes on: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ClientProxyTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/CommonWebBeanTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/CommonWebBeanTest.java 2008-10-27 10:41:26 UTC (rev 177)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/CommonWebBeanTest.java 2008-10-27 12:07:27 UTC (rev 178)
@@ -48,4 +48,10 @@
assert model.getDeploymentType().equals(Production.class);
}
+ @Test(groups="producerMethod") @SpecAssertion(section="4.2")
+ public void testIsNullable()
+ {
+ assert false;
+ }
+
}
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InjectionTests.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InjectionTests.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InjectionTests.java 2008-10-27 12:07:27 UTC (rev 178)
@@ -0,0 +1,57 @@
+package org.jboss.webbeans.test;
+
+import javax.webbeans.ContextNotActiveException;
+import javax.webbeans.NullableDependencyException;
+
+import org.testng.annotations.Test;
+
+ at SpecVersion("PDR")
+public class InjectionTests extends AbstractTest
+{
+
+ @Test(groups="injection") @SpecAssertion(section="4.2")
+ public void testPrimitiveTypesEquivalentToBoxedTypes()
+ {
+ assert false;
+ }
+
+ @Test(groups="injection") @SpecAssertion(section="4.2")
+ public void testInjectionPerformsBoxingIfNecessary()
+ {
+ assert false;
+ }
+
+ @Test(groups="injection") @SpecAssertion(section="4.2")
+ public void testInjectionPerformsUnboxingIfNecessary()
+ {
+ assert false;
+ }
+
+ @Test(groups="injection", expectedExceptions=NullableDependencyException.class) @SpecAssertion(section="4.2")
+ public void testPrimitiveInjectionPointResolvesToNullableWebBean()
+ {
+ assert false;
+ }
+
+ @Test(groups="injection", expectedExceptions=ContextNotActiveException.class) @SpecAssertion(section="4.3")
+ public void testInvokeNormalInjectedWebBeanWhenContextNotActive()
+ {
+ assert false;
+ }
+
+ @Test(groups="injection") @SpecAssertion(section="4.3")
+ public void testInovkeDependentScopeWhenContextNotActive()
+ {
+ assert false;
+ }
+
+ /*
+
+ @Test(groups="injection") @SpecAssertion(section="4.2")
+ public void test
+ {
+ assert false;
+ }
+
+ */
+}
Property changes on: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InjectionTests.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InstantiationByNameTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InstantiationByNameTest.java 2008-10-27 10:41:26 UTC (rev 177)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InstantiationByNameTest.java 2008-10-27 12:07:27 UTC (rev 178)
@@ -3,7 +3,6 @@
import static org.jboss.webbeans.test.util.Util.getEmptyAnnotatedType;
import javax.webbeans.AmbiguousDependencyException;
-import javax.webbeans.UnsatisfiedDependencyException;
import javax.webbeans.manager.Bean;
import org.jboss.webbeans.BeanImpl;
@@ -21,7 +20,13 @@
public class InstantiationByNameTest extends AbstractTest
{
- @Test(expectedExceptions=AmbiguousDependencyException.class)
+ @Test(groups="resolution") @SpecAssertion(section="4.10")
+ public void testNoWebBeansFound()
+ {
+ assert false;
+ }
+
+ @Test(expectedExceptions=AmbiguousDependencyException.class) @SpecAssertion(section="4.10.1")
public void testAmbiguousDependencies() throws Exception
{
InjectableField<ScottishFish> whiteScottishFishField = new InjectableField<ScottishFish>(FishFarm.class.getDeclaredField("whiteScottishFish"));
@@ -38,19 +43,26 @@
manager.getInstanceByName("whitefish");
}
- @Test(expectedExceptions=UnsatisfiedDependencyException.class)
- public void testUnsatisfiedDependencies() throws Exception
+ @Test(groups="resolution") @SpecAssertion(section="4.10.1")
+ public void testGetInstanceByName()
{
- InjectableField<ScottishFish> whiteScottishFishField = new InjectableField<ScottishFish>(FishFarm.class.getDeclaredField("whiteScottishFish"));
- Bean<Cod> codBean = new BeanImpl<Cod>(new SimpleBeanModel<Cod>(new SimpleAnnotatedType<Cod>(Cod.class), getEmptyAnnotatedType(Cod.class), super.manager), manager);
- Bean<Salmon> salmonBean = new BeanImpl<Salmon>(new SimpleBeanModel<Salmon>(new SimpleAnnotatedType<Salmon>(Salmon.class), getEmptyAnnotatedType(Salmon.class), super.manager), manager);
- manager.addBean(codBean);
- manager.addBean(salmonBean);
-
- ResolutionManager resolutionManager = manager.getResolutionManager();
- resolutionManager.addInjectionPoint(whiteScottishFishField);
-
- manager.getInstanceByName("foo");
+ assert false;
}
+ @Test(groups="resolution") @SpecAssertion(section="4.10")
+ public void testGetInstanceByNameCalledOncePerDistinctNameInElExpression()
+ {
+ assert false;
+ }
+
+ /*
+
+ @Test(groups="el") @SpecAssertion(section="4.10")
+ public void test
+ {
+ assert false;
+ }
+
+ */
+
}
Modified: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InstantiationByTypeTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InstantiationByTypeTest.java 2008-10-27 10:41:26 UTC (rev 177)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/InstantiationByTypeTest.java 2008-10-27 12:07:27 UTC (rev 178)
@@ -4,6 +4,7 @@
import javax.webbeans.AmbiguousDependencyException;
import javax.webbeans.AnnotationLiteral;
+import javax.webbeans.DuplicateBindingTypeException;
import javax.webbeans.UnproxyableDependencyException;
import javax.webbeans.UnsatisfiedDependencyException;
import javax.webbeans.manager.Bean;
@@ -25,10 +26,29 @@
import org.jboss.webbeans.test.beans.broken.PlaiceFarm;
import org.testng.annotations.Test;
+ at SpecVersion("PDR")
public class InstantiationByTypeTest extends AbstractTest
{
- @Test(expectedExceptions=AmbiguousDependencyException.class)
+ @Test(groups="resolution") @SpecAssertion(section="4.9")
+ public void testCurrentBindingTypeAssumed()
+ {
+ assert false;
+ }
+
+ @Test(groups="resolution", expectedExceptions=DuplicateBindingTypeException.class) @SpecAssertion(section="4.9")
+ public void testDuplicateBindingTypesUsed()
+ {
+ assert false;
+ }
+
+ @Test(groups="resolution", expectedExceptions=IllegalArgumentException.class) @SpecAssertion(section="4.9")
+ public void testNonBindingTypeUsed()
+ {
+ assert false;
+ }
+
+ @Test(expectedExceptions=AmbiguousDependencyException.class) @SpecAssertion(section="4.9")
public void testAmbiguousDependencies() throws Exception
{
InjectableField<ScottishFish> whiteScottishFishField = new InjectableField<ScottishFish>(FishFarm.class.getDeclaredField("whiteScottishFish"));
@@ -45,7 +65,7 @@
manager.getInstanceByType(ScottishFish.class, new AnnotationLiteral<Whitefish>(){});
}
- @Test(expectedExceptions=UnsatisfiedDependencyException.class)
+ @Test(expectedExceptions=UnsatisfiedDependencyException.class) @SpecAssertion(section="4.9")
public void testUnsatisfiedDependencies() throws Exception
{
InjectableField<ScottishFish> whiteScottishFishField = new InjectableField<ScottishFish>(FishFarm.class.getDeclaredField("whiteScottishFish"));
@@ -62,7 +82,7 @@
manager.getInstanceByType(Tuna.class, new CurrentAnnotationLiteral());
}
- @Test(expectedExceptions=UnproxyableDependencyException.class)
+ @Test(expectedExceptions=UnproxyableDependencyException.class) @SpecAssertion(section="4.9")
public void testUnproxyableDependencies() throws Exception
{
InjectableField<Plaice> plaiceField = new InjectableField<Plaice>(PlaiceFarm.class.getDeclaredField("plaice"));
@@ -75,4 +95,14 @@
manager.getInstanceByType(Plaice.class, new AnnotationLiteral<Whitefish>(){});
}
+ /*
+
+ @Test(groups="resolution") @SpecAssertion(section="4.9")
+ public void test
+ {
+ assert false;
+ }
+
+ */
+
}
Added: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ManagerTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ManagerTest.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ManagerTest.java 2008-10-27 12:07:27 UTC (rev 178)
@@ -0,0 +1,30 @@
+package org.jboss.webbeans.test;
+
+import org.testng.annotations.Test;
+
+ at SpecVersion("PDR")
+public class ManagerTest
+{
+
+ @Test(groups={"manager", "injection"}) @SpecAssertion(section="4.8")
+ public void testInjectingManager()
+ {
+ assert false;
+ }
+
+ @Test(groups={"manager", "ejb3"}) @SpecAssertion(section="4.8")
+ public void testManagerLookupInJndi()
+ {
+ assert false;
+ }
+
+ /*
+
+ @Test(groups="manager") @SpecAssertion(section="4.8")
+ public void test
+ {
+ assert false;
+ }
+
+ */
+}
Property changes on: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ManagerTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Deleted: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/NameBasedResolutionTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/NameBasedResolutionTest.java 2008-10-27 10:41:26 UTC (rev 177)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/NameBasedResolutionTest.java 2008-10-27 12:07:27 UTC (rev 178)
@@ -1,52 +0,0 @@
-package org.jboss.webbeans.test;
-
-import static org.jboss.webbeans.test.util.Util.getEmptyAnnotatedType;
-
-import javax.webbeans.manager.Bean;
-
-import org.jboss.webbeans.BeanImpl;
-import org.jboss.webbeans.introspector.SimpleAnnotatedType;
-import org.jboss.webbeans.model.bean.SimpleBeanModel;
-import org.jboss.webbeans.test.beans.Cod;
-import org.jboss.webbeans.test.beans.Haddock;
-import org.jboss.webbeans.test.beans.Plaice;
-import org.jboss.webbeans.test.beans.Salmon;
-import org.jboss.webbeans.test.beans.SeaBass;
-import org.jboss.webbeans.test.beans.Sole;
-import org.jboss.webbeans.test.beans.Tuna;
-import org.testng.annotations.Test;
-public class NameBasedResolutionTest extends AbstractTest
-{
-
- @Test
- public void testNamedBasedResolution()
- {
- Bean<Tuna> tunaBean = new BeanImpl<Tuna>(new SimpleBeanModel<Tuna>(new SimpleAnnotatedType<Tuna>(Tuna.class), getEmptyAnnotatedType(Tuna.class), super.manager), manager);
- Bean<Cod> codBean = new BeanImpl<Cod>(new SimpleBeanModel<Cod>(new SimpleAnnotatedType<Cod>(Cod.class), getEmptyAnnotatedType(Cod.class), super.manager), manager);
- Bean<Salmon> salmonBean = new BeanImpl<Salmon>(new SimpleBeanModel<Salmon>(new SimpleAnnotatedType<Salmon>(Salmon.class), getEmptyAnnotatedType(Salmon.class), super.manager), manager);
- Bean<Sole> soleBean = new BeanImpl<Sole>(new SimpleBeanModel<Sole>(new SimpleAnnotatedType<Sole>(Sole.class), getEmptyAnnotatedType(Sole.class), super.manager), manager);
- Bean<SeaBass> seaBassBean = new BeanImpl<SeaBass>(new SimpleBeanModel<SeaBass>(new SimpleAnnotatedType<SeaBass>(SeaBass.class), getEmptyAnnotatedType(SeaBass.class), super.manager), manager);
- Bean<Haddock> haddockBean = new BeanImpl<Haddock>(new SimpleBeanModel<Haddock>(new SimpleAnnotatedType<Haddock>(Haddock.class), getEmptyAnnotatedType(Haddock.class), super.manager), manager);
- Bean<Plaice> plaiceBean = new BeanImpl<Plaice>(new SimpleBeanModel<Plaice>(new SimpleAnnotatedType<Plaice>(Plaice.class), getEmptyAnnotatedType(Plaice.class), super.manager), manager);
-
- manager.addBean(tunaBean);
- manager.addBean(codBean);
- manager.addBean(salmonBean);
- manager.addBean(soleBean);
- manager.addBean(haddockBean);
- manager.addBean(seaBassBean);
-
- assert manager.resolveByName("salmon").size() == 1;
- assert manager.resolveByName("salmon").contains(salmonBean);
-
- assert manager.resolveByName("whitefish").size() == 2;
- assert manager.resolveByName("whitefish").contains(codBean);
- assert manager.resolveByName("whitefish").contains(soleBean);
-
- manager.addBean(plaiceBean);
-
- assert manager.resolveByName("whitefish").size() == 1;
- assert manager.resolveByName("whitefish").contains(plaiceBean);
- }
-
-}
Copied: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ResolutionByNameTest.java (from rev 176, ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/NameBasedResolutionTest.java)
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ResolutionByNameTest.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ResolutionByNameTest.java 2008-10-27 12:07:27 UTC (rev 178)
@@ -0,0 +1,88 @@
+package org.jboss.webbeans.test;
+
+import static org.jboss.webbeans.test.util.Util.getEmptyAnnotatedType;
+
+import javax.webbeans.manager.Bean;
+
+import org.jboss.webbeans.BeanImpl;
+import org.jboss.webbeans.introspector.SimpleAnnotatedType;
+import org.jboss.webbeans.model.bean.SimpleBeanModel;
+import org.jboss.webbeans.test.beans.Cod;
+import org.jboss.webbeans.test.beans.Haddock;
+import org.jboss.webbeans.test.beans.Plaice;
+import org.jboss.webbeans.test.beans.Salmon;
+import org.jboss.webbeans.test.beans.SeaBass;
+import org.jboss.webbeans.test.beans.Sole;
+import org.jboss.webbeans.test.beans.Tuna;
+import org.testng.annotations.Test;
+
+ at SpecVersion("PDR")
+public class ResolutionByNameTest extends AbstractTest
+{
+
+ @Test(groups="el") @SpecAssertion(section="4.10")
+ public void testELResolver()
+ {
+ assert false;
+ }
+
+ @Test(groups="el") @SpecAssertion(section="4.10.2")
+ public void testELResolverRegisteredWithJsf()
+ {
+ assert false;
+ }
+
+ @Test(groups="el") @SpecAssertion(section="4.10.2")
+ public void testELResolverRegisteredWithServlet()
+ {
+ assert false;
+ }
+
+ @Test @SpecAssertion(section="4.10.1")
+ public void testNamedBasedResolution()
+ {
+ Bean<Tuna> tunaBean = new BeanImpl<Tuna>(new SimpleBeanModel<Tuna>(new SimpleAnnotatedType<Tuna>(Tuna.class), getEmptyAnnotatedType(Tuna.class), super.manager), manager);
+ Bean<Cod> codBean = new BeanImpl<Cod>(new SimpleBeanModel<Cod>(new SimpleAnnotatedType<Cod>(Cod.class), getEmptyAnnotatedType(Cod.class), super.manager), manager);
+ Bean<Salmon> salmonBean = new BeanImpl<Salmon>(new SimpleBeanModel<Salmon>(new SimpleAnnotatedType<Salmon>(Salmon.class), getEmptyAnnotatedType(Salmon.class), super.manager), manager);
+ Bean<Sole> soleBean = new BeanImpl<Sole>(new SimpleBeanModel<Sole>(new SimpleAnnotatedType<Sole>(Sole.class), getEmptyAnnotatedType(Sole.class), super.manager), manager);
+ Bean<SeaBass> seaBassBean = new BeanImpl<SeaBass>(new SimpleBeanModel<SeaBass>(new SimpleAnnotatedType<SeaBass>(SeaBass.class), getEmptyAnnotatedType(SeaBass.class), super.manager), manager);
+ Bean<Haddock> haddockBean = new BeanImpl<Haddock>(new SimpleBeanModel<Haddock>(new SimpleAnnotatedType<Haddock>(Haddock.class), getEmptyAnnotatedType(Haddock.class), super.manager), manager);
+ Bean<Plaice> plaiceBean = new BeanImpl<Plaice>(new SimpleBeanModel<Plaice>(new SimpleAnnotatedType<Plaice>(Plaice.class), getEmptyAnnotatedType(Plaice.class), super.manager), manager);
+
+ manager.addBean(tunaBean);
+ manager.addBean(codBean);
+ manager.addBean(salmonBean);
+ manager.addBean(soleBean);
+ manager.addBean(haddockBean);
+ manager.addBean(seaBassBean);
+
+ assert manager.resolveByName("salmon").size() == 1;
+ assert manager.resolveByName("salmon").contains(salmonBean);
+
+ assert manager.resolveByName("whitefish").size() == 2;
+ assert manager.resolveByName("whitefish").contains(codBean);
+ assert manager.resolveByName("whitefish").contains(soleBean);
+
+ manager.addBean(plaiceBean);
+
+ assert manager.resolveByName("whitefish").size() == 1;
+ assert manager.resolveByName("whitefish").contains(plaiceBean);
+ }
+
+ @Test(groups="resolution") @SpecAssertion(section="4.10.1")
+ public void testNoWebBeansFound()
+ {
+ assert false;
+ }
+
+ /*
+
+ @Test(groups="el") @SpecAssertion(section="4.10")
+ public void test
+ {
+ assert false;
+ }
+
+ */
+
+}
Property changes on: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ResolutionByNameTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Copied: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ResolutionByTypeTest.java (from rev 176, ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/TypeSafeResolutionTest.java)
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ResolutionByTypeTest.java (rev 0)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ResolutionByTypeTest.java 2008-10-27 12:07:27 UTC (rev 178)
@@ -0,0 +1,261 @@
+package org.jboss.webbeans.test;
+
+import static org.jboss.webbeans.test.util.Util.getEmptyAnnotatedType;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.webbeans.AnnotationLiteral;
+import javax.webbeans.DefinitionException;
+import javax.webbeans.DuplicateBindingTypeException;
+import javax.webbeans.TypeLiteral;
+import javax.webbeans.manager.Bean;
+
+import org.jboss.webbeans.BeanImpl;
+import org.jboss.webbeans.ResolutionManager;
+import org.jboss.webbeans.bindings.CurrentAnnotationLiteral;
+import org.jboss.webbeans.injectable.InjectableField;
+import org.jboss.webbeans.introspector.SimpleAnnotatedType;
+import org.jboss.webbeans.model.bean.SimpleBeanModel;
+import org.jboss.webbeans.test.annotations.Whitefish;
+import org.jboss.webbeans.test.beans.Animal;
+import org.jboss.webbeans.test.beans.AnimalFarmer;
+import org.jboss.webbeans.test.beans.Cod;
+import org.jboss.webbeans.test.beans.Farmer;
+import org.jboss.webbeans.test.beans.FishFarm;
+import org.jboss.webbeans.test.beans.Haddock;
+import org.jboss.webbeans.test.beans.Plaice;
+import org.jboss.webbeans.test.beans.Salmon;
+import org.jboss.webbeans.test.beans.ScottishFish;
+import org.jboss.webbeans.test.beans.ScottishFishFarmer;
+import org.jboss.webbeans.test.beans.SeaBass;
+import org.jboss.webbeans.test.beans.Sole;
+import org.jboss.webbeans.test.beans.Tuna;
+import org.jboss.webbeans.test.bindings.ChunkyAnnotationLiteral;
+import org.testng.annotations.Test;
+
+ at SpecVersion("PDR")
+public class ResolutionByTypeTest extends AbstractTest
+{
+
+ @Test(groups="resolution")
+ public void testInjectableField() throws Exception
+ {
+ InjectableField<Tuna> tuna = new InjectableField<Tuna>(FishFarm.class.getDeclaredField("tuna"));
+ assert tuna.getAnnotatedItem().getType().isAssignableFrom(Tuna.class);
+ assert tuna.getBindingTypes().size() == 1;
+ assert tuna.getBindingTypes().contains(new CurrentAnnotationLiteral());
+ assert tuna.getType().isAssignableFrom(Tuna.class);
+ }
+
+ @Test(groups="resolution") @SpecAssertion(section="4.9.2")
+ public void testSingleApiTypeWithCurrent() throws Exception
+ {
+ InjectableField<Tuna> tunaField = new InjectableField<Tuna>(FishFarm.class.getDeclaredField("tuna"));
+ Bean<Tuna> tunaBean = new BeanImpl<Tuna>(new SimpleBeanModel<Tuna>(new SimpleAnnotatedType<Tuna>(Tuna.class), getEmptyAnnotatedType(Tuna.class), super.manager), manager);
+ Set<Bean<?>> beans = new HashSet<Bean<?>>();
+ beans.add(tunaBean);
+ Set<Bean<?>> possibleTargets = tunaField.getMatchingBeans(beans);
+ assert possibleTargets.size() == 1;
+ assert possibleTargets.contains(tunaBean);
+ }
+
+ @Test(groups="resolution", expectedExceptions=DuplicateBindingTypeException.class) @SpecAssertion(section="4.9.2")
+ public void testDuplicateBindingTypesUsed()
+ {
+ assert false;
+ }
+
+ @Test(groups="resolution", expectedExceptions=IllegalArgumentException.class) @SpecAssertion(section="4.9.2")
+ public void testNonBindingTypeUsed()
+ {
+ assert false;
+ }
+
+ @Test
+ public void testOneBindingType() throws Exception
+ {
+ InjectableField<ScottishFish> whiteScottishFishField = new InjectableField<ScottishFish>(FishFarm.class.getDeclaredField("whiteScottishFish"));
+ Bean<Cod> codBean = new BeanImpl<Cod>(new SimpleBeanModel<Cod>(new SimpleAnnotatedType<Cod>(Cod.class), getEmptyAnnotatedType(Cod.class), super.manager), manager);
+ Bean<Salmon> salmonBean = new BeanImpl<Salmon>(new SimpleBeanModel<Salmon>(new SimpleAnnotatedType<Salmon>(Salmon.class), getEmptyAnnotatedType(Salmon.class), super.manager), manager);
+ Bean<Sole> soleBean = new BeanImpl<Sole>(new SimpleBeanModel<Sole>(new SimpleAnnotatedType<Sole>(Sole.class), getEmptyAnnotatedType(Sole.class), super.manager), manager);
+ Set<Bean<?>> beans = new HashSet<Bean<?>>();
+ beans.add(codBean);
+ beans.add(salmonBean);
+ beans.add(soleBean);
+ Set<Bean<?>> possibleTargets = whiteScottishFishField.getMatchingBeans(beans);
+ assert possibleTargets.size() == 2;
+ assert possibleTargets.contains(codBean);
+ assert possibleTargets.contains(soleBean);
+ }
+
+ @Test
+ public void testABindingType() throws Exception
+ {
+ InjectableField<Animal> whiteChunkyFishField = new InjectableField<Animal>(FishFarm.class.getDeclaredField("realChunkyWhiteFish"));
+ Bean<Cod> codBean = new BeanImpl<Cod>(new SimpleBeanModel<Cod>(new SimpleAnnotatedType<Cod>(Cod.class), getEmptyAnnotatedType(Cod.class), super.manager), manager);
+ Bean<Salmon> salmonBean = new BeanImpl<Salmon>(new SimpleBeanModel<Salmon>(new SimpleAnnotatedType<Salmon>(Salmon.class), getEmptyAnnotatedType(Salmon.class), super.manager), manager);
+ Bean<Sole> soleBean = new BeanImpl<Sole>(new SimpleBeanModel<Sole>(new SimpleAnnotatedType<Sole>(Sole.class), getEmptyAnnotatedType(Sole.class), super.manager), manager);
+ Set<Bean<?>> beans = new HashSet<Bean<?>>();
+ beans.add(codBean);
+ beans.add(salmonBean);
+ beans.add(soleBean);
+ Set<Bean<?>> possibleTargets = whiteChunkyFishField.getMatchingBeans(beans);
+ assert possibleTargets.size() == 1;
+ assert possibleTargets.contains(codBean);
+ }
+
+ @Test
+ public void testMultipleApiTypeWithCurrent() throws Exception
+ {
+ InjectableField<Animal> animalField = new InjectableField<Animal>(FishFarm.class.getDeclaredField("animal"));
+ Bean<SeaBass> seaBassBean = new BeanImpl<SeaBass>(new SimpleBeanModel<SeaBass>(new SimpleAnnotatedType<SeaBass>(SeaBass.class), getEmptyAnnotatedType(SeaBass.class), super.manager), manager);
+ Bean<Haddock> haddockBean = new BeanImpl<Haddock>(new SimpleBeanModel<Haddock>(new SimpleAnnotatedType<Haddock>(Haddock.class), getEmptyAnnotatedType(Haddock.class), super.manager), manager);
+ Set<Bean<?>> beans = new HashSet<Bean<?>>();
+ beans.add(seaBassBean);
+ beans.add(haddockBean);
+ Set<Bean<?>> possibleTargets = animalField.getMatchingBeans(beans);
+ assert possibleTargets.size() == 2;
+ assert possibleTargets.contains(seaBassBean);
+ assert possibleTargets.contains(haddockBean);
+ }
+
+ @Test(groups="resolution") @SpecAssertion(section={"4.9.2", "4.9.4"})
+ public void testResolveByType() throws Exception
+ {
+ InjectableField<Animal> realChunkyWhiteFishField = new InjectableField<Animal>(FishFarm.class.getDeclaredField("realChunkyWhiteFish"));
+ InjectableField<Animal> animalField = new InjectableField<Animal>(FishFarm.class.getDeclaredField("animal"));
+ InjectableField<ScottishFish> scottishFishField = new InjectableField<ScottishFish>(FishFarm.class.getDeclaredField("whiteScottishFish"));
+ InjectableField<Tuna> tunaField = new InjectableField<Tuna>(FishFarm.class.getDeclaredField("tuna"));
+
+ Bean<Tuna> tunaBean = new BeanImpl<Tuna>(new SimpleBeanModel<Tuna>(new SimpleAnnotatedType<Tuna>(Tuna.class), getEmptyAnnotatedType(Tuna.class), super.manager), manager);
+ Bean<Cod> codBean = new BeanImpl<Cod>(new SimpleBeanModel<Cod>(new SimpleAnnotatedType<Cod>(Cod.class), getEmptyAnnotatedType(Cod.class), super.manager), manager);
+ Bean<Salmon> salmonBean = new BeanImpl<Salmon>(new SimpleBeanModel<Salmon>(new SimpleAnnotatedType<Salmon>(Salmon.class), getEmptyAnnotatedType(Salmon.class), super.manager), manager);
+ Bean<Sole> soleBean = new BeanImpl<Sole>(new SimpleBeanModel<Sole>(new SimpleAnnotatedType<Sole>(Sole.class), getEmptyAnnotatedType(Sole.class), super.manager), manager);
+ Bean<SeaBass> seaBassBean = new BeanImpl<SeaBass>(new SimpleBeanModel<SeaBass>(new SimpleAnnotatedType<SeaBass>(SeaBass.class), getEmptyAnnotatedType(SeaBass.class), super.manager), manager);
+ Bean<Haddock> haddockBean = new BeanImpl<Haddock>(new SimpleBeanModel<Haddock>(new SimpleAnnotatedType<Haddock>(Haddock.class), getEmptyAnnotatedType(Haddock.class), super.manager), manager);
+
+ manager.addBean(tunaBean);
+ manager.addBean(codBean);
+ manager.addBean(salmonBean);
+ manager.addBean(soleBean);
+ manager.addBean(haddockBean);
+ manager.addBean(seaBassBean);
+
+ ResolutionManager resolutionManager = manager.getResolutionManager();
+ resolutionManager.addInjectionPoint(realChunkyWhiteFishField);
+ resolutionManager.addInjectionPoint(animalField);
+ resolutionManager.addInjectionPoint(scottishFishField);
+ resolutionManager.addInjectionPoint(tunaField);
+
+ assert manager.resolveByType(Tuna.class, new CurrentAnnotationLiteral()).size() == 1;
+ assert manager.resolveByType(Tuna.class, new CurrentAnnotationLiteral()).contains(tunaBean);
+
+ assert manager.resolveByType(Tuna.class).size() == 1;
+ assert manager.resolveByType(Tuna.class).contains(tunaBean);
+
+ assert manager.resolveByType(Animal.class, new CurrentAnnotationLiteral()).size() == 3;
+ assert manager.resolveByType(Animal.class, new CurrentAnnotationLiteral()).contains(salmonBean);
+ assert manager.resolveByType(Animal.class, new CurrentAnnotationLiteral()).contains(seaBassBean);
+ assert manager.resolveByType(Animal.class, new CurrentAnnotationLiteral()).contains(haddockBean);
+
+ assert manager.resolveByType(Animal.class, new ChunkyAnnotationLiteral() {
+
+ public boolean realChunky()
+ {
+ return true;
+ }
+
+ }, new AnnotationLiteral<Whitefish>() {}).size() == 1;
+ assert manager.resolveByType(Animal.class, new ChunkyAnnotationLiteral() {
+
+ public boolean realChunky()
+ {
+ return true;
+ }
+
+ }, new AnnotationLiteral<Whitefish>() {}).contains(codBean);
+
+ assert manager.resolveByType(ScottishFish.class, new AnnotationLiteral<Whitefish>() {}).size() == 2;
+ assert manager.resolveByType(ScottishFish.class, new AnnotationLiteral<Whitefish>() {}).contains(codBean);
+ assert manager.resolveByType(ScottishFish.class, new AnnotationLiteral<Whitefish>() {}).contains(soleBean);
+
+ }
+
+ @Test(groups="resolution") @SpecAssertion(section="4.9.2")
+ public void testResolveByTypeWithTypeParameter() throws Exception
+ {
+ InjectableField<Farmer<ScottishFish>> scottishFishFarmerField = new InjectableField<Farmer<ScottishFish>>(FishFarm.class.getDeclaredField("scottishFishFarmer"));
+
+ Bean<ScottishFishFarmer> scottishFishFarmerBean = new BeanImpl<ScottishFishFarmer>(new SimpleBeanModel<ScottishFishFarmer>(new SimpleAnnotatedType<ScottishFishFarmer>(ScottishFishFarmer.class), getEmptyAnnotatedType(ScottishFishFarmer.class), super.manager), manager);
+ Bean<AnimalFarmer> farmerBean = new BeanImpl<AnimalFarmer>(new SimpleBeanModel<AnimalFarmer>(new SimpleAnnotatedType<AnimalFarmer>(AnimalFarmer.class), getEmptyAnnotatedType(AnimalFarmer.class), super.manager), manager);
+
+ manager.addBean(scottishFishFarmerBean);
+ manager.addBean(farmerBean);
+
+ ResolutionManager resolutionManager = manager.getResolutionManager();
+ resolutionManager.addInjectionPoint(scottishFishFarmerField);
+
+ assert manager.resolveByType(new TypeLiteral<Farmer<ScottishFish>>(){}).size() == 1;
+ assert manager.resolveByType(new TypeLiteral<Farmer<ScottishFish>>(){}).contains(scottishFishFarmerBean);
+ }
+
+ @Test(groups="resolution") @SpecAssertion(section="4.9.2")
+ public void testResolveByTypeWithArray()
+ {
+ assert false;
+ }
+
+ @Test @SpecAssertion(section="4.9.2")
+ public void testOnlyHighestEnabledPreecedenceWebBeansResolved() throws Exception
+ {
+ InjectableField<Animal> whiteFishField = new InjectableField<Animal>(FishFarm.class.getDeclaredField("whiteFish"));
+
+ Bean<Cod> codBean = new BeanImpl<Cod>(new SimpleBeanModel<Cod>(new SimpleAnnotatedType<Cod>(Cod.class), getEmptyAnnotatedType(Cod.class), super.manager), manager);
+ Bean<Sole> soleBean = new BeanImpl<Sole>(new SimpleBeanModel<Sole>(new SimpleAnnotatedType<Sole>(Sole.class), getEmptyAnnotatedType(Sole.class), super.manager), manager);
+ Bean<Plaice> plaiceBean = new BeanImpl<Plaice>(new SimpleBeanModel<Plaice>(new SimpleAnnotatedType<Plaice>(Plaice.class), getEmptyAnnotatedType(Plaice.class), super.manager), manager);
+
+
+ manager.addBean(plaiceBean);
+ manager.addBean(codBean);
+ manager.addBean(soleBean);
+
+ ResolutionManager resolutionManager = manager.getResolutionManager();
+ resolutionManager.addInjectionPoint(whiteFishField);
+
+ assert manager.resolveByType(Animal.class, new AnnotationLiteral<Whitefish>() {}).size() == 1;
+ assert manager.resolveByType(Animal.class, new AnnotationLiteral<Whitefish>() {}).contains(plaiceBean);
+
+ }
+
+ @Test(groups="resolution") @SpecAssertion(section="4.9.2")
+ public void testResolveByTypeNonBindingParameters()
+ {
+ assert false;
+ }
+
+ @Test(groups="resolution") @SpecAssertion(section="4.9.2")
+ public void testNoWebBeansFound()
+ {
+ assert false;
+ }
+
+ @Test(groups="resolution") @SpecAssertion(section="4.9.2")
+ public void testResolveObject()
+ {
+ assert false;
+ }
+
+ @Test(groups="resolution", expectedExceptions=DefinitionException.class) @SpecAssertion(section="4.9.2.1")
+ public void testArrayValuedAnnotationMemberWithoutNonBinding()
+ {
+ assert false;
+ }
+
+ @Test(groups="resolution", expectedExceptions=DefinitionException.class) @SpecAssertion(section="4.9.2.1")
+ public void testAnnotationValuedAnnotationMemberWithoutNonBinding()
+ {
+ assert false;
+ }
+
+}
Property changes on: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/ResolutionByTypeTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Deleted: ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/TypeSafeResolutionTest.java
===================================================================
--- ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/TypeSafeResolutionTest.java 2008-10-27 10:41:26 UTC (rev 177)
+++ ri/trunk/webbeans-ri/src/test/java/org/jboss/webbeans/test/TypeSafeResolutionTest.java 2008-10-27 12:07:27 UTC (rev 178)
@@ -1,213 +0,0 @@
-package org.jboss.webbeans.test;
-
-import static org.jboss.webbeans.test.util.Util.getEmptyAnnotatedType;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import javax.webbeans.AnnotationLiteral;
-import javax.webbeans.Current;
-import javax.webbeans.TypeLiteral;
-import javax.webbeans.manager.Bean;
-
-import org.jboss.webbeans.BeanImpl;
-import org.jboss.webbeans.ResolutionManager;
-import org.jboss.webbeans.bindings.CurrentAnnotationLiteral;
-import org.jboss.webbeans.injectable.InjectableField;
-import org.jboss.webbeans.introspector.SimpleAnnotatedType;
-import org.jboss.webbeans.model.bean.SimpleBeanModel;
-import org.jboss.webbeans.test.annotations.Whitefish;
-import org.jboss.webbeans.test.beans.Animal;
-import org.jboss.webbeans.test.beans.AnimalFarmer;
-import org.jboss.webbeans.test.beans.Cod;
-import org.jboss.webbeans.test.beans.Farmer;
-import org.jboss.webbeans.test.beans.FishFarm;
-import org.jboss.webbeans.test.beans.Haddock;
-import org.jboss.webbeans.test.beans.Plaice;
-import org.jboss.webbeans.test.beans.Salmon;
-import org.jboss.webbeans.test.beans.ScottishFish;
-import org.jboss.webbeans.test.beans.ScottishFishFarmer;
-import org.jboss.webbeans.test.beans.SeaBass;
-import org.jboss.webbeans.test.beans.Sole;
-import org.jboss.webbeans.test.beans.Tuna;
-import org.jboss.webbeans.test.bindings.ChunkyAnnotationLiteral;
-import org.jboss.webbeans.util.Reflections;
-import org.testng.annotations.Test;
-
-public class TypeSafeResolutionTest extends AbstractTest
-{
-
- @SuppressWarnings("unchecked")
- @Test
- public void testInjectableField() throws Exception
- {
- InjectableField<Tuna> tuna = new InjectableField<Tuna>(FishFarm.class.getDeclaredField("tuna"));
- assert tuna.getAnnotatedItem().getType().isAssignableFrom(Tuna.class);
- assert tuna.getBindingTypes().size() == 1;
- assert Reflections.annotationSetMatches(tuna.getBindingTypes(), Current.class);
- assert tuna.getType().isAssignableFrom(Tuna.class);
- }
-
- @Test
- public void testSingleApiTypeWithCurrent() throws Exception
- {
- InjectableField<Tuna> tunaField = new InjectableField<Tuna>(FishFarm.class.getDeclaredField("tuna"));
- Bean<Tuna> tunaBean = new BeanImpl<Tuna>(new SimpleBeanModel<Tuna>(new SimpleAnnotatedType<Tuna>(Tuna.class), getEmptyAnnotatedType(Tuna.class), super.manager), manager);
- Set<Bean<?>> beans = new HashSet<Bean<?>>();
- beans.add(tunaBean);
- Set<Bean<?>> possibleTargets = tunaField.getMatchingBeans(beans);
- assert possibleTargets.size() == 1;
- assert possibleTargets.contains(tunaBean);
- }
-
- @Test
- public void testOneBindingType() throws Exception
- {
- InjectableField<ScottishFish> whiteScottishFishField = new InjectableField<ScottishFish>(FishFarm.class.getDeclaredField("whiteScottishFish"));
- Bean<Cod> codBean = new BeanImpl<Cod>(new SimpleBeanModel<Cod>(new SimpleAnnotatedType<Cod>(Cod.class), getEmptyAnnotatedType(Cod.class), super.manager), manager);
- Bean<Salmon> salmonBean = new BeanImpl<Salmon>(new SimpleBeanModel<Salmon>(new SimpleAnnotatedType<Salmon>(Salmon.class), getEmptyAnnotatedType(Salmon.class), super.manager), manager);
- Bean<Sole> soleBean = new BeanImpl<Sole>(new SimpleBeanModel<Sole>(new SimpleAnnotatedType<Sole>(Sole.class), getEmptyAnnotatedType(Sole.class), super.manager), manager);
- Set<Bean<?>> beans = new HashSet<Bean<?>>();
- beans.add(codBean);
- beans.add(salmonBean);
- beans.add(soleBean);
- Set<Bean<?>> possibleTargets = whiteScottishFishField.getMatchingBeans(beans);
- assert possibleTargets.size() == 2;
- assert possibleTargets.contains(codBean);
- assert possibleTargets.contains(soleBean);
- }
-
- @Test
- public void testABindingType() throws Exception
- {
- InjectableField<Animal> whiteChunkyFishField = new InjectableField<Animal>(FishFarm.class.getDeclaredField("realChunkyWhiteFish"));
- Bean<Cod> codBean = new BeanImpl<Cod>(new SimpleBeanModel<Cod>(new SimpleAnnotatedType<Cod>(Cod.class), getEmptyAnnotatedType(Cod.class), super.manager), manager);
- Bean<Salmon> salmonBean = new BeanImpl<Salmon>(new SimpleBeanModel<Salmon>(new SimpleAnnotatedType<Salmon>(Salmon.class), getEmptyAnnotatedType(Salmon.class), super.manager), manager);
- Bean<Sole> soleBean = new BeanImpl<Sole>(new SimpleBeanModel<Sole>(new SimpleAnnotatedType<Sole>(Sole.class), getEmptyAnnotatedType(Sole.class), super.manager), manager);
- Set<Bean<?>> beans = new HashSet<Bean<?>>();
- beans.add(codBean);
- beans.add(salmonBean);
- beans.add(soleBean);
- Set<Bean<?>> possibleTargets = whiteChunkyFishField.getMatchingBeans(beans);
- assert possibleTargets.size() == 1;
- assert possibleTargets.contains(codBean);
- }
-
- @Test
- public void testMultipleApiTypeWithCurrent() throws Exception
- {
- InjectableField<Animal> animalField = new InjectableField<Animal>(FishFarm.class.getDeclaredField("animal"));
- Bean<SeaBass> seaBassBean = new BeanImpl<SeaBass>(new SimpleBeanModel<SeaBass>(new SimpleAnnotatedType<SeaBass>(SeaBass.class), getEmptyAnnotatedType(SeaBass.class), super.manager), manager);
- Bean<Haddock> haddockBean = new BeanImpl<Haddock>(new SimpleBeanModel<Haddock>(new SimpleAnnotatedType<Haddock>(Haddock.class), getEmptyAnnotatedType(Haddock.class), super.manager), manager);
- Set<Bean<?>> beans = new HashSet<Bean<?>>();
- beans.add(seaBassBean);
- beans.add(haddockBean);
- Set<Bean<?>> possibleTargets = animalField.getMatchingBeans(beans);
- assert possibleTargets.size() == 2;
- assert possibleTargets.contains(seaBassBean);
- assert possibleTargets.contains(haddockBean);
- }
-
- @Test
- public void testResolveByType() throws Exception
- {
- InjectableField<Animal> realChunkyWhiteFishField = new InjectableField<Animal>(FishFarm.class.getDeclaredField("realChunkyWhiteFish"));
- InjectableField<Animal> animalField = new InjectableField<Animal>(FishFarm.class.getDeclaredField("animal"));
- InjectableField<ScottishFish> scottishFishField = new InjectableField<ScottishFish>(FishFarm.class.getDeclaredField("whiteScottishFish"));
- InjectableField<Tuna> tunaField = new InjectableField<Tuna>(FishFarm.class.getDeclaredField("tuna"));
-
- Bean<Tuna> tunaBean = new BeanImpl<Tuna>(new SimpleBeanModel<Tuna>(new SimpleAnnotatedType<Tuna>(Tuna.class), getEmptyAnnotatedType(Tuna.class), super.manager), manager);
- Bean<Cod> codBean = new BeanImpl<Cod>(new SimpleBeanModel<Cod>(new SimpleAnnotatedType<Cod>(Cod.class), getEmptyAnnotatedType(Cod.class), super.manager), manager);
- Bean<Salmon> salmonBean = new BeanImpl<Salmon>(new SimpleBeanModel<Salmon>(new SimpleAnnotatedType<Salmon>(Salmon.class), getEmptyAnnotatedType(Salmon.class), super.manager), manager);
- Bean<Sole> soleBean = new BeanImpl<Sole>(new SimpleBeanModel<Sole>(new SimpleAnnotatedType<Sole>(Sole.class), getEmptyAnnotatedType(Sole.class), super.manager), manager);
- Bean<SeaBass> seaBassBean = new BeanImpl<SeaBass>(new SimpleBeanModel<SeaBass>(new SimpleAnnotatedType<SeaBass>(SeaBass.class), getEmptyAnnotatedType(SeaBass.class), super.manager), manager);
- Bean<Haddock> haddockBean = new BeanImpl<Haddock>(new SimpleBeanModel<Haddock>(new SimpleAnnotatedType<Haddock>(Haddock.class), getEmptyAnnotatedType(Haddock.class), super.manager), manager);
-
- manager.addBean(tunaBean);
- manager.addBean(codBean);
- manager.addBean(salmonBean);
- manager.addBean(soleBean);
- manager.addBean(haddockBean);
- manager.addBean(seaBassBean);
-
- ResolutionManager resolutionManager = manager.getResolutionManager();
- resolutionManager.addInjectionPoint(realChunkyWhiteFishField);
- resolutionManager.addInjectionPoint(animalField);
- resolutionManager.addInjectionPoint(scottishFishField);
- resolutionManager.addInjectionPoint(tunaField);
-
- assert manager.resolveByType(Tuna.class, new CurrentAnnotationLiteral()).size() == 1;
- assert manager.resolveByType(Tuna.class, new CurrentAnnotationLiteral()).contains(tunaBean);
-
- assert manager.resolveByType(Tuna.class).size() == 1;
- assert manager.resolveByType(Tuna.class).contains(tunaBean);
-
- assert manager.resolveByType(Animal.class, new CurrentAnnotationLiteral()).size() == 3;
- assert manager.resolveByType(Animal.class, new CurrentAnnotationLiteral()).contains(salmonBean);
- assert manager.resolveByType(Animal.class, new CurrentAnnotationLiteral()).contains(seaBassBean);
- assert manager.resolveByType(Animal.class, new CurrentAnnotationLiteral()).contains(haddockBean);
-
- assert manager.resolveByType(Animal.class, new ChunkyAnnotationLiteral() {
-
- public boolean realChunky()
- {
- return true;
- }
-
- }, new AnnotationLiteral<Whitefish>() {}).size() == 1;
- assert manager.resolveByType(Animal.class, new ChunkyAnnotationLiteral() {
-
- public boolean realChunky()
- {
- return true;
- }
-
- }, new AnnotationLiteral<Whitefish>() {}).contains(codBean);
-
- assert manager.resolveByType(ScottishFish.class, new AnnotationLiteral<Whitefish>() {}).size() == 2;
- assert manager.resolveByType(ScottishFish.class, new AnnotationLiteral<Whitefish>() {}).contains(codBean);
- assert manager.resolveByType(ScottishFish.class, new AnnotationLiteral<Whitefish>() {}).contains(soleBean);
-
- }
-
- @Test
- public void testResolveByTypeWithTypeParameter() throws Exception
- {
- InjectableField<Farmer<ScottishFish>> scottishFishFarmerField = new InjectableField<Farmer<ScottishFish>>(FishFarm.class.getDeclaredField("scottishFishFarmer"));
-
- Bean<ScottishFishFarmer> scottishFishFarmerBean = new BeanImpl<ScottishFishFarmer>(new SimpleBeanModel<ScottishFishFarmer>(new SimpleAnnotatedType<ScottishFishFarmer>(ScottishFishFarmer.class), getEmptyAnnotatedType(ScottishFishFarmer.class), super.manager), manager);
- Bean<AnimalFarmer> farmerBean = new BeanImpl<AnimalFarmer>(new SimpleBeanModel<AnimalFarmer>(new SimpleAnnotatedType<AnimalFarmer>(AnimalFarmer.class), getEmptyAnnotatedType(AnimalFarmer.class), super.manager), manager);
-
- manager.addBean(scottishFishFarmerBean);
- manager.addBean(farmerBean);
-
- ResolutionManager resolutionManager = manager.getResolutionManager();
- resolutionManager.addInjectionPoint(scottishFishFarmerField);
-
- assert manager.resolveByType(new TypeLiteral<Farmer<ScottishFish>>(){}).size() == 1;
- assert manager.resolveByType(new TypeLiteral<Farmer<ScottishFish>>(){}).contains(scottishFishFarmerBean);
- }
-
- @Test
- public void testOnlyHighestEnabledPreecedenceWebBeansResolved() throws Exception
- {
- InjectableField<Animal> whiteFishField = new InjectableField<Animal>(FishFarm.class.getDeclaredField("whiteFish"));
-
- Bean<Cod> codBean = new BeanImpl<Cod>(new SimpleBeanModel<Cod>(new SimpleAnnotatedType<Cod>(Cod.class), getEmptyAnnotatedType(Cod.class), super.manager), manager);
- Bean<Sole> soleBean = new BeanImpl<Sole>(new SimpleBeanModel<Sole>(new SimpleAnnotatedType<Sole>(Sole.class), getEmptyAnnotatedType(Sole.class), super.manager), manager);
- Bean<Plaice> plaiceBean = new BeanImpl<Plaice>(new SimpleBeanModel<Plaice>(new SimpleAnnotatedType<Plaice>(Plaice.class), getEmptyAnnotatedType(Plaice.class), super.manager), manager);
-
-
- manager.addBean(plaiceBean);
- manager.addBean(codBean);
- manager.addBean(soleBean);
-
- ResolutionManager resolutionManager = manager.getResolutionManager();
- resolutionManager.addInjectionPoint(whiteFishField);
-
- assert manager.resolveByType(Animal.class, new AnnotationLiteral<Whitefish>() {}).size() == 1;
- assert manager.resolveByType(Animal.class, new AnnotationLiteral<Whitefish>() {}).contains(plaiceBean);
-
- }
-
-}
More information about the weld-commits
mailing list