scope,
ModuleScopeDestroyOnlyComponent.class);
destroyOnlyContext.start();
scope.onEvent(new CompositeStart(this, null));
ModuleScopeInitDestroyComponent initDestroy =
(ModuleScopeInitDestroyComponent) scope.getInstance(initDestroyContext);
Assert.assertNotNull(initDestroy);
ModuleScopeInitOnlyComponent initOnly = (ModuleScopeInitOnlyComponent) scope.getInstance(initOnlyContext);
Assert.assertNotNull(initOnly);
ModuleScopeDestroyOnlyComponent destroyOnly =
(ModuleScopeDestroyOnlyComponent) scope.getInstance(destroyOnlyContext);
Assert.assertNotNull(destroyOnly);
Assert.assertTrue(initDestroy.isInitialized());
Assert.assertTrue(initOnly.isInitialized());
Assert.assertFalse(initDestroy.isDestroyed());
Assert.assertFalse(destroyOnly.isDestroyed());
// expire module
scope.onEvent(new CompositeStop(this, null));
Assert.assertTrue(initDestroy.isDestroyed());
Assert.assertTrue(destroyOnly.isDestroyed());
scope.stop();
}