[jboss-cvs] JBossAS SVN: r75703 - projects/microcontainer/trunk/dependency/src/tests/org/jboss/test/dependency/controller/test.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Jul 11 11:58:00 EDT 2008
Author: alesj
Date: 2008-07-11 11:58:00 -0400 (Fri, 11 Jul 2008)
New Revision: 75703
Modified:
projects/microcontainer/trunk/dependency/src/tests/org/jboss/test/dependency/controller/test/BadDependencyInfoTestCase.java
Log:
Add new test + more state assertions.
Modified: projects/microcontainer/trunk/dependency/src/tests/org/jboss/test/dependency/controller/test/BadDependencyInfoTestCase.java
===================================================================
--- projects/microcontainer/trunk/dependency/src/tests/org/jboss/test/dependency/controller/test/BadDependencyInfoTestCase.java 2008-07-11 15:45:13 UTC (rev 75702)
+++ projects/microcontainer/trunk/dependency/src/tests/org/jboss/test/dependency/controller/test/BadDependencyInfoTestCase.java 2008-07-11 15:58:00 UTC (rev 75703)
@@ -24,7 +24,9 @@
import java.lang.reflect.Method;
import junit.framework.Test;
+import org.jboss.dependency.plugins.AbstractController;
import org.jboss.dependency.plugins.AbstractControllerContext;
+import org.jboss.dependency.plugins.AbstractDependencyItem;
import org.jboss.dependency.spi.ControllerContext;
import org.jboss.dependency.spi.ControllerState;
import org.jboss.dependency.spi.DependencyInfo;
@@ -95,6 +97,61 @@
}
}
+ public void testDependencyItemMethodsOnMeResolved() throws Throwable
+ {
+ ControllerContext bean = createControllerContext("bean");
+ Method[] methods = DependencyItem.class.getDeclaredMethods();
+ for(int i = numberOfInvocations; i >= 0; i--)
+ {
+ for (Method method : methods)
+ {
+ for(ControllerState whenRequired : getStateModel())
+ {
+ ControllerContext context = createControllerContext(method.getName());
+ DependencyInfo info = context.getDependencyInfo();
+ info.addDependsOnMe(ProxyDependencyItem.createDependencyInfo(method, i, whenRequired));
+ DependencyItem beanDependency = new AbstractDependencyItem("bean", context.getName(), whenRequired, null);
+ bean.getDependencyInfo().addIDependOn(beanDependency);
+ ControllerState previous = getStateModel().getPreviousState(whenRequired);
+ if (previous == null)
+ previous = ControllerState.INSTALLED;
+ install(bean);
+ assertEquals(previous, bean.getState());
+ install(context);
+ ControllerState state = context.getState();
+ assertTrue(context.getName().toString(), ControllerState.ERROR.equals(state) || ControllerState.INSTALLED.equals(state));
+ if (ControllerState.INSTALLED.equals(state))
+ assertEquals(ControllerState.INSTALLED, bean.getState());
+ else
+ assertEquals(previous, bean.getState());
+ uninstall(context);
+ if (beanDependency.isResolved())
+ {
+ Throwable t = context.getError();
+ if (t != null)
+ {
+ StackTraceElement[] elements = t.getStackTrace();
+ for(StackTraceElement trace : elements)
+ {
+ // we failed in uninstall - cannot unwind dependencies
+ if (trace.getClassName().equals(AbstractController.class.getName()) && "uninstallContext".equals(trace.getMethodName()))
+ {
+ previous = ControllerState.INSTALLED;
+ break;
+ }
+ }
+ }
+ else if (ControllerState.INSTALLED.equals(previous))
+ previous = ControllerState.NOT_INSTALLED;
+ }
+ assertEquals(context.toString(), previous, bean.getState());
+ uninstall(bean);
+ bean.getDependencyInfo().removeIDependOn(beanDependency);
+ }
+ }
+ }
+ }
+
public void testDependencyItemMethodsOnThem() throws Throwable
{
Method[] methods = DependencyItem.class.getDeclaredMethods();
@@ -134,6 +191,11 @@
assertEquals(bean.getName().toString(), ControllerState.INSTALLED, bean.getState());
assertTrue(context.getName().toString(), ControllerState.ERROR.equals(context.getState()) || ControllerState.INSTALLED.equals(context.getState()));
uninstall(bean);
+ ControllerState previous = getStateModel().getPreviousState(whenRequired);
+ if (previous == null)
+ previous = ControllerState.INSTALLED;
+ if (ControllerState.ERROR.equals(context.getState()) == false)
+ assertEquals(previous, context.getState());
uninstall(context);
}
}
More information about the jboss-cvs-commits
mailing list