[jboss-cvs] JBossAS SVN: r71929 - projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Apr 10 10:43:16 EDT 2008


Author: scott.stark at jboss.org
Date: 2008-04-10 10:43:16 -0400 (Thu, 10 Apr 2008)
New Revision: 71929

Modified:
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/BeanContainerUsageMDTestCase.java
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/BeanContainerUsageTestCase.java
Log:
Update tests to further validate the components returned.

Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/BeanContainerUsageMDTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/BeanContainerUsageMDTestCase.java	2008-04-10 14:37:02 UTC (rev 71928)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/BeanContainerUsageMDTestCase.java	2008-04-10 14:43:16 UTC (rev 71929)
@@ -70,25 +70,95 @@
       super(name);
    }
 
+   /**
+    * Test of the ComponentFactory usecase
+    * 
+    * @see {@link GenericComponentFactory}
+    * @see {@link ComponentFactory}
+    * @throws Throwable
+    */
    @SuppressWarnings("unchecked")
    public void testComponentBeanFactory()
       throws Throwable
    {
       bootstrap();
+      // Lookup the ComponentFactory implementation
       ComponentFactory<BaseContext<Bean1Type, BeanContainer<Bean1Type>>> factory =
          (ComponentFactory<BaseContext<Bean1Type, BeanContainer<Bean1Type>>>) getBean("ComponentBeanFactory");
       getLog().info("ComponentBeanFactory bean: "+factory);
-   
+      // Create a component instance
       ComponentInstance<BaseContext<Bean1Type, BeanContainer<Bean1Type>>> contextInstance =
          factory.createComponents("ComponentBeanFactory");
+      // Validate the component bean names
       List<String> beanNames = contextInstance.getComponentNames();
       getLog().info("createComponents(ComponentBeanFactory): "+beanNames);
-      // ??? long compID = contextInstance.getComponentID();
-      // ??? BaseContext<Bean1Type, BeanContainer<Bean1Type>> context = contextInstance.getContext();
-      // ??? String contextName = contextInstance.getContextName();
+
+      HashSet<String> expectedBeanNames = new HashSet<String>();
+      expectedBeanNames.add("ComponentBeanFactory at ContextFactory#1");
+      expectedBeanNames.add("ComponentBeanFactory at BeanInstance#1");
+      expectedBeanNames.add("ComponentBeanFactory at Interceptor:0#1");
+      assertEquals(expectedBeanNames, new HashSet<String>(beanNames));
+      long compID = contextInstance.getComponentID();
+      assertEquals(1, compID);
+      BaseContext<Bean1Type, BeanContainer<Bean1Type>> context = contextInstance.getContext();
+      assertNotNull(context);
+      String contextName = contextInstance.getContextName();
+      assertEquals("ComponentBeanFactory at ContextFactory#1", contextName);
+      Object contextBean = getBean("ComponentBeanFactory at ContextFactory#1");
+      assertTrue(contextBean == context);
+      Bean1Type bean1 = (Bean1Type) getBean("ComponentBeanFactory at BeanInstance#1");
+      assertTrue(bean1 == context.getInstance());
    
       Object interceptor = getBean("ComponentBeanFactory at Interceptor:0#1");
       assertNotNull(interceptor);
+      List expectedInterceptors = new ArrayList();
+      expectedInterceptors.add(interceptor);
+      List interceptors = context.getInterceptors();
+      assertEquals(interceptors, expectedInterceptors);
+
+      factory.destroyComponents(contextInstance);
+      expectedBeanNames.clear();
+      expectedBeanNames.add("ComponentBeanFactory");
+      // Only the ComponentBeanFactory should exist
+      assertBeansExist(expectedBeanNames);
+      contextInstance = null;
+
+      // Create a second component instance
+      ComponentInstance<BaseContext<Bean1Type, BeanContainer<Bean1Type>>> contextInstance2 =
+         factory.createComponents("ComponentBeanFactory");
+      // Validate the component bean names
+      List<String> beanNames2 = contextInstance2.getComponentNames();
+      getLog().info("createComponents(ComponentBeanFactory): "+beanNames2);
+      expectedBeanNames = new HashSet<String>();
+      expectedBeanNames.add("ComponentBeanFactory at ContextFactory#2");
+      expectedBeanNames.add("ComponentBeanFactory at BeanInstance#2");
+      expectedBeanNames.add("ComponentBeanFactory at Interceptor:0#2");
+      assertEquals(expectedBeanNames, new HashSet<String>(beanNames2));
+      compID = contextInstance2.getComponentID();
+      assertEquals(2, compID);
+      BaseContext<Bean1Type, BeanContainer<Bean1Type>> context2 = contextInstance2.getContext();
+      assertNotNull(context2);
+      String contextName2 = contextInstance2.getContextName();
+      assertEquals("ComponentBeanFactory at ContextFactory#2", contextName2);
+      Object contextBean2 = getBean("ComponentBeanFactory at ContextFactory#2");
+      assertTrue(contextBean2 == context2);
+      Bean1Type bean2 = (Bean1Type) getBean("ComponentBeanFactory at BeanInstance#2");
+      assertTrue(bean2 == context2.getInstance());
+      assertTrue(bean2 != bean1);
+ 
+      Object interceptor2 = getBean("ComponentBeanFactory at Interceptor:0#2");
+      assertNotNull(interceptor2);
+      List expectedInterceptors2 = new ArrayList();
+      expectedInterceptors2.add(interceptor2);
+      List interceptors2 = context2.getInterceptors();
+      assertEquals(interceptors2, expectedInterceptors2);
+
+      factory.destroyComponents(contextInstance2);
+      expectedBeanNames.clear();
+      expectedBeanNames.add("ComponentBeanFactory");
+      // Only the ComponentBeanFactory should exist
+      assertBeansExist(expectedBeanNames);
+
       shutdown();
    }
 

Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/BeanContainerUsageTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/BeanContainerUsageTestCase.java	2008-04-10 14:37:02 UTC (rev 71928)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/deployment/test/BeanContainerUsageTestCase.java	2008-04-10 14:43:16 UTC (rev 71929)
@@ -23,9 +23,13 @@
 
 import java.lang.reflect.Method;
 import java.net.URL;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
 
 import junit.framework.Test;
 
+import org.jboss.dependency.spi.ControllerContext;
 import org.jboss.dependency.spi.ControllerMode;
 import org.jboss.dependency.spi.ControllerState;
 import org.jboss.dependency.spi.ControllerStateModel;
@@ -161,6 +165,35 @@
    {
       deployer.shutdown();
    }
+   protected void assertNoBeansExist()
+   {
+      KernelController controller = kernel.getController();
+      ControllerStateModel states = controller.getStates();
+      int beanCount = 0;
+      for(ControllerState s : states)
+      {
+         Set<ControllerContext> ctxs = controller.getContextsByState(s);
+         beanCount += ctxs.size();
+      }
+      assertEquals(0, beanCount);
+   }
+   protected void assertBeansExist(Set<String> names)
+   {
+      HashSet<String> unexpectedBeanNames = new HashSet<String>();
+      KernelController controller = kernel.getController();
+      ControllerStateModel states = controller.getStates();
+      for(ControllerState s : states)
+      {
+         Set<ControllerContext> ctxs = controller.getContextsByState(s);
+         for(ControllerContext ctx : ctxs)
+         {
+            String name = ctx.getName().toString();
+            if(names.contains(name) == false)
+               unexpectedBeanNames.add(name);
+         }
+      }
+      assertEquals(Collections.emptySet(), unexpectedBeanNames);
+   }
    protected Object getBean(final Object name)
    {
       KernelControllerContext context = getControllerContext(name, ControllerState.INSTALLED);




More information about the jboss-cvs-commits mailing list