private static void initializePlugins() { final CorePlugin corePlugin = getPlugin(CorePlugin.class); final Collection<String> disabledPlugins = corePlugin.getDisabledPlugins(); pathsOfWidgetMetricTabPlugins = new CopyOnWriteArrayList<String>(); pathsOfWidgetTabPlugins = new CopyOnWriteArrayList<String>(); initializePluginsInOrder(disabledPlugins, plugins); }
@Test public void testInitPlugins_NoDependency() { final PluginNoDependency pluginNoDependency = new PluginNoDependency(); Stagemonitor.initializePluginsInOrder(Collections.emptyList(), Collections.singletonList(pluginNoDependency)); assertThat(pluginNoDependency.isInitialized()).isTrue(); }
@Test public void testInitPlugins_SimpleDependency() { final PluginNoDependency pluginNoDependency = new PluginNoDependency(); final PluginSimpleDependency pluginSimpleDependency = new PluginSimpleDependency(); Stagemonitor.initializePluginsInOrder(Collections.emptyList(), Arrays.asList(pluginNoDependency, pluginSimpleDependency)); assertThat(pluginNoDependency.isInitialized()).isTrue(); assertThat(pluginSimpleDependency.isInitialized()).isTrue(); }
@Test public void testInitPlugins_MultipleDependencies() { final List<StagemonitorPlugin> plugins = Arrays.asList(new PluginMultipleDependencies(), new PluginSimpleDependency2(), new PluginNoDependency(), new PluginSimpleDependency()); Stagemonitor.initializePluginsInOrder(Collections.emptyList(), plugins); for (StagemonitorPlugin plugin : plugins) { assertThat(plugin.isInitialized()).describedAs("{} is not initialized", plugin.getClass().getSimpleName()).isTrue(); } }
@Test public void testInitPluginsCyclicDependency() { final List<StagemonitorPlugin> plugins = Arrays.asList(new PluginNoDependency(), new PluginCyclicA(), new PluginCyclicB()); assertThatThrownBy(() -> Stagemonitor.initializePluginsInOrder(Collections.emptyList(), plugins)) .isInstanceOf(IllegalStateException.class) .hasMessageContaining("PluginCyclicA") .hasMessageContaining("PluginCyclicB"); }