[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