}
public void testReinstall() throws Throwable
{
TestDelegate delegate = new TestDelegate("ReinstallTestRecursive");
RecursiveControllerContext context = new RecursiveControllerContext(delegate, this);
TestDelegate other = new TestDelegate("Other");
TestControllerContext otherContext = new TestControllerContext(other);
DependencyItem item = new AbstractDependencyItem(other.getName(), delegate.getName(), ControllerState.CREATE, ControllerState.CONFIGURED);
otherContext.getDependencyInfo().addIDependOn(item);
assertInstall(otherContext, ControllerState.CONFIGURED);
assertInstall(context, ControllerState.INSTALLED);
assertContext(otherContext, ControllerState.INSTALLED);
assertContext(context.child, ControllerState.INSTALLED);
assertUninstall(context);
if (context.child.error != null)
throw context.child.error;
assertNoContext(context.child);
assertContext(otherContext, ControllerState.CONFIGURED);
context = new RecursiveControllerContext(delegate, this);
assertInstall(context, ControllerState.INSTALLED);
if (context.child.error != null)
throw context.child.error;
assertContext(otherContext, ControllerState.INSTALLED);
assertContext(context.child, ControllerState.INSTALLED);