{
TestDelegate delegate = new TestDelegate("UninstallTestRecursive");
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);