Refactor Renderer Module Management
- Renamed `moduleManager` to `moduleService` in RendererData for clarity. - Updated G2DRenderer to use the new module service methods with string IDs instead of class references. - Modified RendererWorkingSet interface and implementation to use string IDs for module identification instead of class types. - Adjusted tests in ModuleManagerTest and RendererWorkingSetImplTest to reflect changes in module management and identification. - Ensured consistency across the codebase by replacing class references with module IDs in method calls and assertions.
This commit is contained in:
@@ -15,8 +15,8 @@ public class DemoModule extends AbstractClientModule {
|
||||
|
||||
@Override
|
||||
public void onLoad() {
|
||||
this.getModuleService().changeActiveState(this.getClass(), true);
|
||||
this.getModuleService().changeDisplayState(this.getClass(), true);
|
||||
this.getModuleService().changeActiveState(this.getId(), true);
|
||||
this.getModuleService().changeDisplayState(this.getId(), true);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -71,7 +71,8 @@ public class ModuleManagerTest {
|
||||
|
||||
@Test
|
||||
public void testLoadModule() {
|
||||
this.moduleManager.loadModule(AlwaysDisplayModule.class);
|
||||
final var newModule = new AlwaysDisplayModule();
|
||||
this.moduleManager.loadModule(newModule);
|
||||
|
||||
assertEquals(3, this.moduleManager.getModulesAll().size());
|
||||
assertTrue(this.moduleManager.getModulesAll().stream().anyMatch(m -> m instanceof AlwaysDisplayModule));
|
||||
@@ -81,14 +82,14 @@ public class ModuleManagerTest {
|
||||
public void testLoadModule_AlreadyLoaded() {
|
||||
final int initialSize = this.moduleManager.getModulesAll().size();
|
||||
|
||||
this.moduleManager.loadModule(TestModule.class);
|
||||
this.moduleManager.loadModule(this.testModule);
|
||||
|
||||
assertEquals(initialSize, this.moduleManager.getModulesAll().size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUnloadModule() {
|
||||
this.moduleManager.unloadModule(TestModule.class);
|
||||
this.moduleManager.unloadModule(this.testModule.getId());
|
||||
|
||||
assertEquals(1, this.moduleManager.getModulesAll().size());
|
||||
assertFalse(this.moduleManager.getModulesAll().contains(this.testModule));
|
||||
@@ -99,17 +100,17 @@ public class ModuleManagerTest {
|
||||
public void testUnloadModule_NotLoaded() {
|
||||
final int initialSize = this.moduleManager.getModulesAll().size();
|
||||
|
||||
this.moduleManager.unloadModule(AlwaysDisplayModule.class);
|
||||
this.moduleManager.unloadModule("NonExistentModule");
|
||||
|
||||
assertEquals(initialSize, this.moduleManager.getModulesAll().size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUnloadModule_DeactivatesFirst() {
|
||||
this.moduleManager.changeActiveState(TestModule.class, true);
|
||||
this.moduleManager.changeActiveState(this.testModule.getId(), true);
|
||||
assertTrue(this.moduleManager.getModulesActive().contains(this.testModule));
|
||||
|
||||
this.moduleManager.unloadModule(TestModule.class);
|
||||
this.moduleManager.unloadModule(this.testModule.getId());
|
||||
|
||||
assertFalse(this.moduleManager.getModulesActive().contains(this.testModule));
|
||||
assertTrue(this.testModule.onDeactivateCalled);
|
||||
@@ -117,7 +118,7 @@ public class ModuleManagerTest {
|
||||
|
||||
@Test
|
||||
public void testChangeActiveState_Activate() {
|
||||
this.moduleManager.changeActiveState(TestModule.class, true);
|
||||
this.moduleManager.changeActiveState(this.testModule.getId(), true);
|
||||
|
||||
assertTrue(this.moduleManager.getModulesActive().contains(this.testModule));
|
||||
assertTrue(this.testModule.onActivateCalled);
|
||||
@@ -125,10 +126,10 @@ public class ModuleManagerTest {
|
||||
|
||||
@Test
|
||||
public void testChangeActiveState_Deactivate() {
|
||||
this.moduleManager.changeActiveState(TestModule.class, true);
|
||||
this.moduleManager.changeActiveState(this.testModule.getId(), true);
|
||||
this.testModule.onActivateCalled = false;
|
||||
|
||||
this.moduleManager.changeActiveState(TestModule.class, false);
|
||||
this.moduleManager.changeActiveState(this.testModule.getId(), false);
|
||||
|
||||
assertFalse(this.moduleManager.getModulesActive().contains(this.testModule));
|
||||
assertTrue(this.testModule.onDeactivateCalled);
|
||||
@@ -136,42 +137,35 @@ public class ModuleManagerTest {
|
||||
|
||||
@Test
|
||||
public void testChangeActiveState_AlreadyActive() {
|
||||
this.moduleManager.changeActiveState(TestModule.class, true);
|
||||
this.moduleManager.changeActiveState(this.testModule.getId(), true);
|
||||
this.testModule.onActivateCalled = false;
|
||||
|
||||
this.moduleManager.changeActiveState(TestModule.class, true);
|
||||
this.moduleManager.changeActiveState(this.testModule.getId(), true);
|
||||
|
||||
assertFalse(this.testModule.onActivateCalled);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testChangeActiveState_AlreadyInactive() {
|
||||
this.moduleManager.changeActiveState(TestModule.class, false);
|
||||
this.moduleManager.changeActiveState(this.testModule.getId(), false);
|
||||
|
||||
assertFalse(this.testModule.onDeactivateCalled);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testChangeActiveState_ByClassName() {
|
||||
this.moduleManager.changeActiveState(TestModule.class.getName(), true);
|
||||
|
||||
assertTrue(this.moduleManager.getModulesActive().contains(this.testModule));
|
||||
assertTrue(this.testModule.onActivateCalled);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testChangeActiveState_AlwaysDisplayModule() {
|
||||
this.moduleManager.loadModule(AlwaysDisplayModule.class);
|
||||
final var alwaysDisplayModule = new AlwaysDisplayModule();
|
||||
this.moduleManager.loadModule(alwaysDisplayModule);
|
||||
|
||||
this.moduleManager.changeActiveState(AlwaysDisplayModule.class, true);
|
||||
this.moduleManager.changeActiveState(alwaysDisplayModule.getId(), true);
|
||||
|
||||
assertTrue(this.moduleManager.isDisplayed(AlwaysDisplayModule.class));
|
||||
assertTrue(this.moduleManager.isDisplayed(alwaysDisplayModule.getId()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeactivateAll() {
|
||||
this.moduleManager.changeActiveState(TestModule.class, true);
|
||||
this.moduleManager.changeActiveState(TestClientModule.class, true);
|
||||
this.moduleManager.changeActiveState(this.testModule.getId(), true);
|
||||
this.moduleManager.changeActiveState(this.testClientModule.getId(), true);
|
||||
|
||||
this.moduleManager.deactivateAll();
|
||||
|
||||
@@ -182,34 +176,34 @@ public class ModuleManagerTest {
|
||||
|
||||
@Test
|
||||
public void testChangeDisplayState_Show() {
|
||||
this.moduleManager.changeActiveState(TestClientModule.class, true);
|
||||
this.moduleManager.changeActiveState(this.testClientModule.getId(), true);
|
||||
this.testClientModule.onShowCalled = false;
|
||||
|
||||
this.moduleManager.changeDisplayState(TestClientModule.class, true);
|
||||
this.moduleManager.changeDisplayState(this.testClientModule.getId(), true);
|
||||
|
||||
assertTrue(this.moduleManager.isDisplayed(TestClientModule.class));
|
||||
assertTrue(this.moduleManager.isDisplayed(this.testClientModule.getId()));
|
||||
assertTrue(this.testClientModule.onShowCalled);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testChangeDisplayState_Hide() {
|
||||
this.moduleManager.changeActiveState(TestClientModule.class, true);
|
||||
this.moduleManager.changeDisplayState(TestClientModule.class, true);
|
||||
this.moduleManager.changeActiveState(this.testClientModule.getId(), true);
|
||||
this.moduleManager.changeDisplayState(this.testClientModule.getId(), true);
|
||||
this.testClientModule.onHideCalled = false;
|
||||
|
||||
this.moduleManager.changeDisplayState(TestClientModule.class, false);
|
||||
this.moduleManager.changeDisplayState(this.testClientModule.getId(), false);
|
||||
|
||||
assertFalse(this.moduleManager.isDisplayed(TestClientModule.class));
|
||||
assertFalse(this.moduleManager.isDisplayed(this.testClientModule.getId()));
|
||||
assertTrue(this.testClientModule.onHideCalled);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testChangeDisplayState_AlreadyShown() {
|
||||
this.moduleManager.changeActiveState(TestClientModule.class, true);
|
||||
this.moduleManager.changeDisplayState(TestClientModule.class, true);
|
||||
this.moduleManager.changeActiveState(this.testClientModule.getId(), true);
|
||||
this.moduleManager.changeDisplayState(this.testClientModule.getId(), true);
|
||||
this.testClientModule.onShowCalled = false;
|
||||
|
||||
this.moduleManager.changeDisplayState(TestClientModule.class, true);
|
||||
this.moduleManager.changeDisplayState(this.testClientModule.getId(), true);
|
||||
|
||||
assertFalse(this.testClientModule.onShowCalled, "onShow should not be called when already shown");
|
||||
}
|
||||
@@ -218,111 +212,98 @@ public class ModuleManagerTest {
|
||||
public void testChangeDisplayState_AlreadyHidden() {
|
||||
this.testClientModule.onHideCalled = false;
|
||||
|
||||
this.moduleManager.changeDisplayState(TestClientModule.class, false);
|
||||
this.moduleManager.changeDisplayState(this.testClientModule.getId(), false);
|
||||
|
||||
assertFalse(this.testClientModule.onHideCalled, "onHide should not be called when already hidden");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testChangeDisplayState_ByClassName() {
|
||||
this.moduleManager.changeActiveState(TestClientModule.class, true);
|
||||
this.testClientModule.onShowCalled = false;
|
||||
|
||||
this.moduleManager.changeDisplayState(TestClientModule.class.getName(), true);
|
||||
|
||||
assertTrue(this.moduleManager.isDisplayed(TestClientModule.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testChangeDisplayState_AlwaysDisplayModule() {
|
||||
this.moduleManager.loadModule(AlwaysDisplayModule.class);
|
||||
this.moduleManager.changeActiveState(AlwaysDisplayModule.class, true);
|
||||
final var alwaysDisplayModule = new AlwaysDisplayModule();
|
||||
this.moduleManager.loadModule(alwaysDisplayModule);
|
||||
this.moduleManager.changeActiveState(alwaysDisplayModule.getId(), true);
|
||||
|
||||
this.moduleManager.changeDisplayState(AlwaysDisplayModule.class, false);
|
||||
this.moduleManager.changeDisplayState(alwaysDisplayModule.getId(), false);
|
||||
|
||||
assertTrue(this.moduleManager.isDisplayed(AlwaysDisplayModule.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIsDisplayed_ByClassName() {
|
||||
this.moduleManager.changeActiveState(TestClientModule.class, true);
|
||||
this.moduleManager.changeDisplayState(TestClientModule.class, true);
|
||||
|
||||
assertTrue(this.moduleManager.isDisplayed(TestClientModule.class.getName()));
|
||||
assertTrue(this.moduleManager.isDisplayed(alwaysDisplayModule.getId()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testHideAll() {
|
||||
this.moduleManager.changeActiveState(TestClientModule.class, true);
|
||||
this.moduleManager.changeDisplayState(TestClientModule.class, true);
|
||||
this.moduleManager.changeActiveState(this.testClientModule.getId(), true);
|
||||
this.moduleManager.changeDisplayState(this.testClientModule.getId(), true);
|
||||
this.testClientModule.onHideCalled = false;
|
||||
|
||||
this.moduleManager.hideAll();
|
||||
|
||||
assertFalse(this.moduleManager.isDisplayed(TestClientModule.class));
|
||||
assertFalse(this.moduleManager.isDisplayed(this.testClientModule.getId()));
|
||||
assertTrue(this.testClientModule.onHideCalled);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testHideAll_DoesNotHideAlwaysDisplay() {
|
||||
this.moduleManager.loadModule(AlwaysDisplayModule.class);
|
||||
this.moduleManager.changeActiveState(AlwaysDisplayModule.class, true);
|
||||
this.moduleManager.changeActiveState(TestClientModule.class, true);
|
||||
this.moduleManager.changeDisplayState(TestClientModule.class, true);
|
||||
final var alwaysDisplayModule = new AlwaysDisplayModule();
|
||||
this.moduleManager.loadModule(alwaysDisplayModule);
|
||||
this.moduleManager.changeActiveState(alwaysDisplayModule.getId(), true);
|
||||
this.moduleManager.changeActiveState(this.testClientModule.getId(), true);
|
||||
this.moduleManager.changeDisplayState(this.testClientModule.getId(), true);
|
||||
|
||||
this.moduleManager.hideAll();
|
||||
|
||||
assertTrue(this.moduleManager.isDisplayed(AlwaysDisplayModule.class));
|
||||
assertFalse(this.moduleManager.isDisplayed(TestClientModule.class));
|
||||
assertTrue(this.moduleManager.isDisplayed(alwaysDisplayModule.getId()));
|
||||
assertFalse(this.moduleManager.isDisplayed(this.testClientModule.getId()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testHideExcept() {
|
||||
this.moduleManager.loadModule(AlwaysDisplayModule.class);
|
||||
this.moduleManager.changeActiveState(TestClientModule.class, true);
|
||||
this.moduleManager.changeDisplayState(TestClientModule.class, true);
|
||||
this.moduleManager.changeActiveState(AlwaysDisplayModule.class, true);
|
||||
final var alwaysDisplayModule = new AlwaysDisplayModule();
|
||||
this.moduleManager.loadModule(alwaysDisplayModule);
|
||||
this.moduleManager.changeActiveState(this.testClientModule.getId(), true);
|
||||
this.moduleManager.changeDisplayState(this.testClientModule.getId(), true);
|
||||
this.moduleManager.changeActiveState(alwaysDisplayModule.getId(), true);
|
||||
this.testClientModule.onHideCalled = false;
|
||||
|
||||
this.moduleManager.hideExcept(AlwaysDisplayModule.class.getName());
|
||||
this.moduleManager.hideExcept(alwaysDisplayModule.getId());
|
||||
|
||||
assertTrue(this.moduleManager.isDisplayed(AlwaysDisplayModule.class));
|
||||
assertFalse(this.moduleManager.isDisplayed(TestClientModule.class));
|
||||
assertTrue(this.moduleManager.isDisplayed(alwaysDisplayModule.getId()));
|
||||
assertFalse(this.moduleManager.isDisplayed(this.testClientModule.getId()));
|
||||
assertTrue(this.testClientModule.onHideCalled);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testHideExcept_MultipleExceptions() {
|
||||
this.moduleManager.loadModule(AlwaysDisplayModule.class);
|
||||
this.moduleManager.loadModule(HighPriorityModule.class);
|
||||
this.moduleManager.changeActiveState(TestClientModule.class, true);
|
||||
this.moduleManager.changeDisplayState(TestClientModule.class, true);
|
||||
this.moduleManager.changeActiveState(AlwaysDisplayModule.class, true);
|
||||
this.moduleManager.changeActiveState(HighPriorityModule.class, true);
|
||||
this.moduleManager.changeDisplayState(HighPriorityModule.class, true);
|
||||
final var alwaysDisplayModule = new AlwaysDisplayModule();
|
||||
final var highPriorityModule = new HighPriorityModule();
|
||||
this.moduleManager.loadModule(alwaysDisplayModule);
|
||||
this.moduleManager.loadModule(highPriorityModule);
|
||||
this.moduleManager.changeActiveState(this.testClientModule.getId(), true);
|
||||
this.moduleManager.changeDisplayState(this.testClientModule.getId(), true);
|
||||
this.moduleManager.changeActiveState(alwaysDisplayModule.getId(), true);
|
||||
this.moduleManager.changeActiveState(highPriorityModule.getId(), true);
|
||||
this.moduleManager.changeDisplayState(highPriorityModule.getId(), true);
|
||||
|
||||
this.moduleManager.hideExcept(
|
||||
AlwaysDisplayModule.class.getName(),
|
||||
HighPriorityModule.class.getName()
|
||||
alwaysDisplayModule.getId(),
|
||||
highPriorityModule.getId()
|
||||
);
|
||||
|
||||
assertTrue(this.moduleManager.isDisplayed(AlwaysDisplayModule.class));
|
||||
assertTrue(this.moduleManager.isDisplayed(HighPriorityModule.class));
|
||||
assertFalse(this.moduleManager.isDisplayed(TestClientModule.class));
|
||||
assertTrue(this.moduleManager.isDisplayed(alwaysDisplayModule.getId()));
|
||||
assertTrue(this.moduleManager.isDisplayed(highPriorityModule.getId()));
|
||||
assertFalse(this.moduleManager.isDisplayed(this.testClientModule.getId()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testRestoreVisibility() {
|
||||
this.moduleManager.changeActiveState(TestClientModule.class, true);
|
||||
this.moduleManager.changeDisplayState(TestClientModule.class, true);
|
||||
this.moduleManager.changeActiveState(this.testClientModule.getId(), true);
|
||||
this.moduleManager.changeDisplayState(this.testClientModule.getId(), true);
|
||||
|
||||
this.moduleManager.hideExcept();
|
||||
assertFalse(this.moduleManager.isDisplayed(TestClientModule.class));
|
||||
assertFalse(this.moduleManager.isDisplayed(this.testClientModule.getId()));
|
||||
this.testClientModule.onShowCalled = false;
|
||||
|
||||
this.moduleManager.restoreVisibility();
|
||||
|
||||
assertTrue(this.moduleManager.isDisplayed(TestClientModule.class));
|
||||
assertTrue(this.moduleManager.isDisplayed(this.testClientModule.getId()));
|
||||
assertTrue(this.testClientModule.onShowCalled);
|
||||
}
|
||||
|
||||
@@ -330,15 +311,15 @@ public class ModuleManagerTest {
|
||||
public void testRestoreVisibility_NoState() {
|
||||
this.moduleManager.restoreVisibility();
|
||||
|
||||
assertFalse(this.moduleManager.isDisplayed(TestClientModule.class));
|
||||
assertFalse(this.moduleManager.isDisplayed(this.testClientModule.getId()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIsModal() {
|
||||
assertFalse(this.moduleManager.isModal());
|
||||
|
||||
this.moduleManager.changeActiveState(TestClientModule.class, true);
|
||||
this.moduleManager.changeDisplayState(TestClientModule.class, true);
|
||||
this.moduleManager.changeActiveState(this.testClientModule.getId(), true);
|
||||
this.moduleManager.changeDisplayState(this.testClientModule.getId(), true);
|
||||
this.moduleManager.hideExcept();
|
||||
|
||||
assertTrue(this.moduleManager.isModal());
|
||||
@@ -350,7 +331,8 @@ public class ModuleManagerTest {
|
||||
|
||||
@Test
|
||||
public void testModuleSorting_Priority() {
|
||||
this.moduleManager.loadModule(HighPriorityModule.class);
|
||||
final var highPriorityModule = new HighPriorityModule();
|
||||
this.moduleManager.loadModule(highPriorityModule);
|
||||
|
||||
final List<AbstractModule> modules = this.moduleManager.getModulesAll();
|
||||
|
||||
@@ -385,20 +367,20 @@ public class ModuleManagerTest {
|
||||
|
||||
@Test
|
||||
public void testDeactivate_HidesDisplayedClientModule() {
|
||||
this.moduleManager.changeActiveState(TestClientModule.class, true);
|
||||
this.moduleManager.changeDisplayState(TestClientModule.class, true);
|
||||
this.moduleManager.changeActiveState(this.testClientModule.getId(), true);
|
||||
this.moduleManager.changeDisplayState(this.testClientModule.getId(), true);
|
||||
this.testClientModule.onHideCalled = false;
|
||||
|
||||
this.moduleManager.changeActiveState(TestClientModule.class, false);
|
||||
this.moduleManager.changeActiveState(this.testClientModule.getId(), false);
|
||||
|
||||
assertFalse(this.moduleManager.isDisplayed(TestClientModule.class));
|
||||
assertFalse(this.moduleManager.isDisplayed(this.testClientModule.getId()));
|
||||
assertTrue(this.testClientModule.onHideCalled);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeactivateAll_ClearsVisibilityStack() {
|
||||
this.moduleManager.changeActiveState(TestClientModule.class, true);
|
||||
this.moduleManager.changeDisplayState(TestClientModule.class, true);
|
||||
this.moduleManager.changeActiveState(this.testClientModule.getId(), true);
|
||||
this.moduleManager.changeDisplayState(this.testClientModule.getId(), true);
|
||||
this.moduleManager.hideExcept();
|
||||
|
||||
assertTrue(this.moduleManager.isModal());
|
||||
@@ -417,8 +399,9 @@ public class ModuleManagerTest {
|
||||
|
||||
@Test
|
||||
public void testGetSubscribersForCallback_WithSubscriber() {
|
||||
this.moduleManager.loadModule(CallbackSubscriberModule.class);
|
||||
this.moduleManager.changeActiveState(CallbackSubscriberModule.class, true);
|
||||
final var callbackSubscriberModule = new CallbackSubscriberModule();
|
||||
this.moduleManager.loadModule(callbackSubscriberModule);
|
||||
this.moduleManager.changeActiveState(callbackSubscriberModule.getId(), true);
|
||||
|
||||
final List<AbstractModule> subscribers = this.moduleManager.getSubscribersForCallback(ModuleExecutorCallbacks.UI_PRE);
|
||||
|
||||
@@ -428,8 +411,9 @@ public class ModuleManagerTest {
|
||||
|
||||
@Test
|
||||
public void testGetSubscribersForCallback_MultipleCallbacks() {
|
||||
this.moduleManager.loadModule(MultiCallbackSubscriberModule.class);
|
||||
this.moduleManager.changeActiveState(MultiCallbackSubscriberModule.class, true);
|
||||
final var multiCallbackSubscriberModule = new MultiCallbackSubscriberModule();
|
||||
this.moduleManager.loadModule(multiCallbackSubscriberModule);
|
||||
this.moduleManager.changeActiveState(multiCallbackSubscriberModule.getId(), true);
|
||||
|
||||
final List<AbstractModule> uiPreSubscribers = this.moduleManager.getSubscribersForCallback(ModuleExecutorCallbacks.UI_PRE);
|
||||
final List<AbstractModule> runSubscribers = this.moduleManager.getSubscribersForCallback(ModuleExecutorCallbacks.RUN);
|
||||
@@ -446,8 +430,9 @@ public class ModuleManagerTest {
|
||||
|
||||
@Test
|
||||
public void testGetSubscribersForCallback_UnsubscribedCallbackEmpty() {
|
||||
this.moduleManager.loadModule(CallbackSubscriberModule.class);
|
||||
this.moduleManager.changeActiveState(CallbackSubscriberModule.class, true);
|
||||
final var callbackSubscriberModule = new CallbackSubscriberModule();
|
||||
this.moduleManager.loadModule(callbackSubscriberModule);
|
||||
this.moduleManager.changeActiveState(callbackSubscriberModule.getId(), true);
|
||||
|
||||
final List<AbstractModule> runSubscribers = this.moduleManager.getSubscribersForCallback(ModuleExecutorCallbacks.RUN);
|
||||
|
||||
@@ -456,13 +441,14 @@ public class ModuleManagerTest {
|
||||
|
||||
@Test
|
||||
public void testGetSubscribersForCallback_RemovedOnDeactivate() {
|
||||
this.moduleManager.loadModule(CallbackSubscriberModule.class);
|
||||
this.moduleManager.changeActiveState(CallbackSubscriberModule.class, true);
|
||||
final var callbackSubscriberModule = new CallbackSubscriberModule();
|
||||
this.moduleManager.loadModule(callbackSubscriberModule);
|
||||
this.moduleManager.changeActiveState(callbackSubscriberModule.getId(), true);
|
||||
|
||||
List<AbstractModule> subscribers = this.moduleManager.getSubscribersForCallback(ModuleExecutorCallbacks.UI_PRE);
|
||||
assertEquals(1, subscribers.size());
|
||||
|
||||
this.moduleManager.changeActiveState(CallbackSubscriberModule.class, false);
|
||||
this.moduleManager.changeActiveState(callbackSubscriberModule.getId(), false);
|
||||
|
||||
subscribers = this.moduleManager.getSubscribersForCallback(ModuleExecutorCallbacks.UI_PRE);
|
||||
assertTrue(subscribers.isEmpty());
|
||||
@@ -470,10 +456,12 @@ public class ModuleManagerTest {
|
||||
|
||||
@Test
|
||||
public void testGetSubscribersForCallback_MultipleModules() {
|
||||
this.moduleManager.loadModule(CallbackSubscriberModule.class);
|
||||
this.moduleManager.loadModule(MultiCallbackSubscriberModule.class);
|
||||
this.moduleManager.changeActiveState(CallbackSubscriberModule.class, true);
|
||||
this.moduleManager.changeActiveState(MultiCallbackSubscriberModule.class, true);
|
||||
final var callbackSubscriberModule = new CallbackSubscriberModule();
|
||||
final var multiCallbackSubscriberModule = new MultiCallbackSubscriberModule();
|
||||
this.moduleManager.loadModule(callbackSubscriberModule);
|
||||
this.moduleManager.loadModule(multiCallbackSubscriberModule);
|
||||
this.moduleManager.changeActiveState(callbackSubscriberModule.getId(), true);
|
||||
this.moduleManager.changeActiveState(multiCallbackSubscriberModule.getId(), true);
|
||||
|
||||
final List<AbstractModule> uiPreSubscribers = this.moduleManager.getSubscribersForCallback(ModuleExecutorCallbacks.UI_PRE);
|
||||
|
||||
@@ -484,14 +472,15 @@ public class ModuleManagerTest {
|
||||
|
||||
@Test
|
||||
public void testGetSubscribersForCallback_ReactivateModule() {
|
||||
this.moduleManager.loadModule(CallbackSubscriberModule.class);
|
||||
this.moduleManager.changeActiveState(CallbackSubscriberModule.class, true);
|
||||
this.moduleManager.changeActiveState(CallbackSubscriberModule.class, false);
|
||||
final var callbackSubscriberModule = new CallbackSubscriberModule();
|
||||
this.moduleManager.loadModule(callbackSubscriberModule);
|
||||
this.moduleManager.changeActiveState(callbackSubscriberModule.getId(), true);
|
||||
this.moduleManager.changeActiveState(callbackSubscriberModule.getId(), false);
|
||||
|
||||
List<AbstractModule> subscribers = this.moduleManager.getSubscribersForCallback(ModuleExecutorCallbacks.UI_PRE);
|
||||
assertTrue(subscribers.isEmpty());
|
||||
|
||||
this.moduleManager.changeActiveState(CallbackSubscriberModule.class, true);
|
||||
this.moduleManager.changeActiveState(callbackSubscriberModule.getId(), true);
|
||||
|
||||
subscribers = this.moduleManager.getSubscribersForCallback(ModuleExecutorCallbacks.UI_PRE);
|
||||
assertEquals(1, subscribers.size());
|
||||
|
||||
@@ -32,19 +32,28 @@ public class RendererWorkingSetImplTest {
|
||||
|
||||
private RenderingBoPool renderingBoPool;
|
||||
|
||||
private TestModuleA moduleA;
|
||||
|
||||
private TestModuleB moduleB;
|
||||
|
||||
private TestModuleC moduleC;
|
||||
|
||||
@BeforeEach
|
||||
void setUp() {
|
||||
this.renderingBoPool = mock(RenderingBoPool.class);
|
||||
this.workingSet = new RendererWorkingSetImpl(this.renderingBoPool);
|
||||
this.moduleA = new TestModuleA();
|
||||
this.moduleB = new TestModuleB();
|
||||
this.moduleC = new TestModuleC();
|
||||
}
|
||||
|
||||
@Test
|
||||
void addSingleAddsToUncommittedWork() {
|
||||
final RenderingBo bo1 = mock(RenderingBo.class);
|
||||
when(bo1.getId()).thenReturn("bo1");
|
||||
this.workingSet.add(TestModuleA.class, bo1);
|
||||
this.workingSet.add(this.moduleA.getId(), bo1);
|
||||
|
||||
final var uncommitted = this.workingSet.getUncommittedWork(TestModuleA.class);
|
||||
final var uncommitted = this.workingSet.getUncommittedWork(this.moduleA.getId());
|
||||
assertNotNull(uncommitted);
|
||||
assertEquals(Map.of("bo1", bo1), uncommitted);
|
||||
}
|
||||
@@ -56,9 +65,9 @@ public class RendererWorkingSetImplTest {
|
||||
final RenderingBo bo2 = mock(RenderingBo.class);
|
||||
when(bo2.getId()).thenReturn("bo2");
|
||||
|
||||
this.workingSet.add(TestModuleA.class, List.of(bo1, bo2));
|
||||
this.workingSet.add(this.moduleA.getId(), List.of(bo1, bo2));
|
||||
|
||||
final var uncommitted = this.workingSet.getUncommittedWork(TestModuleA.class);
|
||||
final var uncommitted = this.workingSet.getUncommittedWork(this.moduleA.getId());
|
||||
assertEquals(Map.of("bo1", bo1, "bo2", bo2), uncommitted);
|
||||
}
|
||||
|
||||
@@ -69,11 +78,11 @@ public class RendererWorkingSetImplTest {
|
||||
final RenderingBo bo2 = mock(RenderingBo.class);
|
||||
when(bo2.getId()).thenReturn("bo2");
|
||||
|
||||
this.workingSet.add(TestModuleA.class, bo1);
|
||||
this.workingSet.add(TestModuleA.class, bo2);
|
||||
this.workingSet.add(this.moduleA.getId(), bo1);
|
||||
this.workingSet.add(this.moduleA.getId(), bo2);
|
||||
|
||||
final var returnedUncommitted = this.workingSet.commit(TestModuleA.class, false);
|
||||
final var currentUncommitted = this.workingSet.getUncommittedWork(TestModuleA.class);
|
||||
final var returnedUncommitted = this.workingSet.commit(this.moduleA.getId(), false);
|
||||
final var currentUncommitted = this.workingSet.getUncommittedWork(this.moduleA.getId());
|
||||
|
||||
assertSame(currentUncommitted, returnedUncommitted);
|
||||
assertTrue(currentUncommitted.isEmpty());
|
||||
@@ -93,11 +102,11 @@ public class RendererWorkingSetImplTest {
|
||||
final RenderingBo bo3 = mock(RenderingBo.class);
|
||||
when(bo3.getId()).thenReturn("bo3");
|
||||
|
||||
this.workingSet.add(TestModuleA.class, bo1);
|
||||
this.workingSet.add(TestModuleA.class, bo2);
|
||||
this.workingSet.add(this.moduleA.getId(), bo1);
|
||||
this.workingSet.add(this.moduleA.getId(), bo2);
|
||||
|
||||
final var returnedUncommitted = this.workingSet.commit(TestModuleA.class, true);
|
||||
final var currentUncommitted = this.workingSet.getUncommittedWork(TestModuleA.class);
|
||||
final var returnedUncommitted = this.workingSet.commit(this.moduleA.getId(), true);
|
||||
final var currentUncommitted = this.workingSet.getUncommittedWork(this.moduleA.getId());
|
||||
|
||||
assertSame(currentUncommitted, returnedUncommitted);
|
||||
assertEquals(Map.of("bo1", bo1, "bo2", bo2), currentUncommitted);
|
||||
@@ -107,7 +116,7 @@ public class RendererWorkingSetImplTest {
|
||||
assertEquals(2, live.size());
|
||||
assertTrue(live.containsAll(List.of(bo1, bo2)));
|
||||
|
||||
this.workingSet.add(TestModuleA.class, bo3);
|
||||
this.workingSet.add(this.moduleA.getId(), bo3);
|
||||
final List<RenderingBo> liveAfterAdd = new ArrayList<>();
|
||||
this.workingSet.getLiveSet(liveAfterAdd, null);
|
||||
assertEquals(2, liveAfterAdd.size());
|
||||
@@ -123,12 +132,12 @@ public class RendererWorkingSetImplTest {
|
||||
final RenderingBo bo3 = mock(RenderingBo.class);
|
||||
when(bo3.getId()).thenReturn("bo3");
|
||||
|
||||
this.workingSet.add(TestModuleA.class, bo1);
|
||||
this.workingSet.add(TestModuleA.class, bo2);
|
||||
this.workingSet.add(TestModuleB.class, bo3);
|
||||
this.workingSet.add(this.moduleA.getId(), bo1);
|
||||
this.workingSet.add(this.moduleA.getId(), bo2);
|
||||
this.workingSet.add(this.moduleB.getId(), bo3);
|
||||
|
||||
this.workingSet.commit(TestModuleA.class, false);
|
||||
this.workingSet.commit(TestModuleB.class, false);
|
||||
this.workingSet.commit(this.moduleA.getId(), false);
|
||||
this.workingSet.commit(this.moduleB.getId(), false);
|
||||
|
||||
final List<RenderingBo> live = new ArrayList<>();
|
||||
this.workingSet.getLiveSet(live, null);
|
||||
@@ -138,7 +147,7 @@ public class RendererWorkingSetImplTest {
|
||||
|
||||
@Test
|
||||
void commitOnUnknownProducerCreatesEmptyState() {
|
||||
final var returnedUncommitted = this.workingSet.commit(TestModuleC.class, false);
|
||||
final var returnedUncommitted = this.workingSet.commit(this.moduleC.getId(), false);
|
||||
assertNotNull(returnedUncommitted);
|
||||
assertTrue(returnedUncommitted.isEmpty());
|
||||
|
||||
@@ -154,24 +163,24 @@ public class RendererWorkingSetImplTest {
|
||||
final var bo2 = new TestBoB();
|
||||
bo2.setId("bo2");
|
||||
|
||||
this.workingSet.add(TestModuleA.class, bo1);
|
||||
this.workingSet.commit(TestModuleA.class, false);
|
||||
this.workingSet.add(TestModuleA.class, bo2);
|
||||
this.workingSet.add(this.moduleA.getId(), bo1);
|
||||
this.workingSet.commit(this.moduleA.getId(), false);
|
||||
this.workingSet.add(this.moduleA.getId(), bo2);
|
||||
|
||||
// Before clear
|
||||
final List<RenderingBo> liveBefore = new ArrayList<>();
|
||||
this.workingSet.getLiveSet(liveBefore, null);
|
||||
assertTrue(liveBefore.contains(bo1));
|
||||
assertNotNull(this.workingSet.get(TestModuleA.class, "bo2"));
|
||||
assertNotNull(this.workingSet.get(this.moduleA.getId(), "bo2"));
|
||||
|
||||
this.workingSet.clear(TestModuleA.class);
|
||||
this.workingSet.clear(this.moduleA.getId());
|
||||
|
||||
// After clear
|
||||
final List<RenderingBo> liveAfter = new ArrayList<>();
|
||||
this.workingSet.getLiveSet(liveAfter, null);
|
||||
assertTrue(liveAfter.isEmpty());
|
||||
|
||||
final var uncommittedAfter = this.workingSet.getUncommittedWork(TestModuleA.class);
|
||||
final var uncommittedAfter = this.workingSet.getUncommittedWork(this.moduleA.getId());
|
||||
assertTrue(uncommittedAfter.isEmpty());
|
||||
|
||||
verify(this.renderingBoPool, times(1)).release(bo1);
|
||||
@@ -184,10 +193,10 @@ public class RendererWorkingSetImplTest {
|
||||
void clearOnUnknownProducerDoesNothing() {
|
||||
final RenderingBo bo1 = mock(RenderingBo.class);
|
||||
when(bo1.getId()).thenReturn("bo1");
|
||||
this.workingSet.add(TestModuleA.class, bo1);
|
||||
this.workingSet.commit(TestModuleA.class, false);
|
||||
this.workingSet.add(this.moduleA.getId(), bo1);
|
||||
this.workingSet.commit(this.moduleA.getId(), false);
|
||||
|
||||
this.workingSet.clear(TestModuleC.class);
|
||||
this.workingSet.clear(this.moduleC.getId());
|
||||
|
||||
final List<RenderingBo> live = new ArrayList<>();
|
||||
this.workingSet.getLiveSet(live, null);
|
||||
@@ -202,14 +211,14 @@ public class RendererWorkingSetImplTest {
|
||||
final var bo2 = new TestBoA();
|
||||
bo2.setId("bo2");
|
||||
|
||||
this.workingSet.add(TestModuleA.class, bo1);
|
||||
this.workingSet.add(TestModuleA.class, bo2);
|
||||
this.workingSet.commit(TestModuleA.class, false);
|
||||
this.workingSet.add(this.moduleA.getId(), bo1);
|
||||
this.workingSet.add(this.moduleA.getId(), bo2);
|
||||
this.workingSet.commit(this.moduleA.getId(), false);
|
||||
|
||||
final var bo3 = new TestBoB();
|
||||
bo3.setId("bo3");
|
||||
this.workingSet.add(TestModuleA.class, bo3);
|
||||
this.workingSet.commit(TestModuleA.class, false);
|
||||
this.workingSet.add(this.moduleA.getId(), bo3);
|
||||
this.workingSet.commit(this.moduleA.getId(), false);
|
||||
|
||||
verify(this.renderingBoPool, times(1)).release(bo1);
|
||||
verify(this.renderingBoPool, times(1)).release(bo2);
|
||||
@@ -227,12 +236,12 @@ public class RendererWorkingSetImplTest {
|
||||
final RenderingBo bo2 = mock(RenderingBo.class);
|
||||
when(bo2.getId()).thenReturn("bo2");
|
||||
|
||||
this.workingSet.add(TestModuleA.class, bo1);
|
||||
this.workingSet.add(TestModuleA.class, bo2);
|
||||
this.workingSet.add(this.moduleA.getId(), bo1);
|
||||
this.workingSet.add(this.moduleA.getId(), bo2);
|
||||
|
||||
final var retrieved1 = this.workingSet.get(TestModuleA.class, "bo1");
|
||||
final var retrieved2 = this.workingSet.get(TestModuleA.class, "bo2");
|
||||
final var notFound = this.workingSet.get(TestModuleA.class, "nonexistent");
|
||||
final var retrieved1 = this.workingSet.get(this.moduleA.getId(), "bo1");
|
||||
final var retrieved2 = this.workingSet.get(this.moduleA.getId(), "bo2");
|
||||
final var notFound = this.workingSet.get(this.moduleA.getId(), "nonexistent");
|
||||
|
||||
assertSame(bo1, retrieved1);
|
||||
assertSame(bo2, retrieved2);
|
||||
@@ -246,16 +255,16 @@ public class RendererWorkingSetImplTest {
|
||||
final RenderingBo bo2 = mock(RenderingBo.class);
|
||||
when(bo2.getId()).thenReturn("bo2");
|
||||
|
||||
this.workingSet.add(TestModuleA.class, bo1);
|
||||
this.workingSet.add(TestModuleA.class, bo2);
|
||||
final var committedWork = this.workingSet.commit(TestModuleA.class, false);
|
||||
this.workingSet.add(this.moduleA.getId(), bo1);
|
||||
this.workingSet.add(this.moduleA.getId(), bo2);
|
||||
final var committedWork = this.workingSet.commit(this.moduleA.getId(), false);
|
||||
|
||||
// After commit without clone, the uncommitted work should be empty
|
||||
assertTrue(committedWork.isEmpty());
|
||||
|
||||
// get() only retrieves from next set, not live set, so it returns null after commit
|
||||
final var retrieved1 = this.workingSet.get(TestModuleA.class, "bo1");
|
||||
final var retrieved2 = this.workingSet.get(TestModuleA.class, "bo2");
|
||||
final var retrieved1 = this.workingSet.get(this.moduleA.getId(), "bo1");
|
||||
final var retrieved2 = this.workingSet.get(this.moduleA.getId(), "bo2");
|
||||
|
||||
assertTrue(retrieved1 == null);
|
||||
assertTrue(retrieved2 == null);
|
||||
@@ -268,13 +277,13 @@ public class RendererWorkingSetImplTest {
|
||||
final RenderingBo bo1_replacement = mock(RenderingBo.class);
|
||||
when(bo1_replacement.getId()).thenReturn("bo1");
|
||||
|
||||
this.workingSet.add(TestModuleA.class, bo1);
|
||||
final var uncommittedBefore = this.workingSet.getUncommittedWork(TestModuleA.class);
|
||||
this.workingSet.add(this.moduleA.getId(), bo1);
|
||||
final var uncommittedBefore = this.workingSet.getUncommittedWork(this.moduleA.getId());
|
||||
assertEquals(1, uncommittedBefore.size());
|
||||
assertSame(bo1, uncommittedBefore.get("bo1"));
|
||||
|
||||
this.workingSet.add(TestModuleA.class, bo1_replacement);
|
||||
final var uncommittedAfter = this.workingSet.getUncommittedWork(TestModuleA.class);
|
||||
this.workingSet.add(this.moduleA.getId(), bo1_replacement);
|
||||
final var uncommittedAfter = this.workingSet.getUncommittedWork(this.moduleA.getId());
|
||||
assertEquals(1, uncommittedAfter.size());
|
||||
assertSame(bo1_replacement, uncommittedAfter.get("bo1"));
|
||||
}
|
||||
@@ -288,12 +297,12 @@ public class RendererWorkingSetImplTest {
|
||||
final var boA2 = new TestBoA();
|
||||
boA2.setId("boA2");
|
||||
|
||||
this.workingSet.add(TestModuleA.class, boA1);
|
||||
this.workingSet.add(TestModuleB.class, boB1);
|
||||
this.workingSet.add(TestModuleA.class, boA2);
|
||||
this.workingSet.add(this.moduleA.getId(), boA1);
|
||||
this.workingSet.add(this.moduleB.getId(), boB1);
|
||||
this.workingSet.add(this.moduleA.getId(), boA2);
|
||||
|
||||
this.workingSet.commit(TestModuleA.class, false);
|
||||
this.workingSet.commit(TestModuleB.class, false);
|
||||
this.workingSet.commit(this.moduleA.getId(), false);
|
||||
this.workingSet.commit(this.moduleB.getId(), false);
|
||||
|
||||
final List<RenderingBo> allLive = new ArrayList<>();
|
||||
this.workingSet.getLiveSet(allLive, null);
|
||||
@@ -301,7 +310,7 @@ public class RendererWorkingSetImplTest {
|
||||
assertTrue(allLive.containsAll(List.of(boA1, boB1, boA2)));
|
||||
|
||||
final List<RenderingBo> filteredLive = new ArrayList<>();
|
||||
this.workingSet.getLiveSet(filteredLive, TestModuleA.class::equals);
|
||||
this.workingSet.getLiveSet(filteredLive, this.moduleA.getId()::equals);
|
||||
assertEquals(2, filteredLive.size());
|
||||
assertTrue(filteredLive.containsAll(List.of(boA1, boA2)));
|
||||
assertFalse(filteredLive.contains(boB1));
|
||||
|
||||
Reference in New Issue
Block a user