[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