|
|
@@ -396,4 +396,40 @@ public class DefaultPluginManagerTest { |
|
|
|
assertThrows(PluginNotFoundException.class, () -> pluginManager.stopPlugin(pluginZip2.pluginId())); |
|
|
|
} |
|
|
|
|
|
|
|
@Test |
|
|
|
void deletePluginWithDependency() throws IOException { |
|
|
|
PluginZip pluginZip1 = new PluginZip.Builder(pluginsPath.resolve("my-first-plugin-1.1.1.zip"), "myPlugin1") |
|
|
|
.pluginVersion("1.1.1") |
|
|
|
.build(); |
|
|
|
|
|
|
|
PluginZip pluginZip2 = new PluginZip.Builder(pluginsPath.resolve("my-second-plugin-2.2.2.zip"), "myPlugin2") |
|
|
|
.pluginVersion("2.2.2") |
|
|
|
.pluginDependencies("myPlugin1") |
|
|
|
.build(); |
|
|
|
|
|
|
|
PluginZip pluginZip3 = new PluginZip.Builder(pluginsPath.resolve("my-third-plugin-3.3.3.zip"), "myPlugin3") |
|
|
|
.pluginVersion("3.3.3") |
|
|
|
.pluginDependencies("myPlugin2") |
|
|
|
.build(); |
|
|
|
|
|
|
|
pluginManager.loadPlugins(); |
|
|
|
pluginManager.startPlugins(); |
|
|
|
|
|
|
|
assertEquals(PluginState.STARTED, pluginManager.getPlugin(pluginZip1.pluginId()).getPluginState()); |
|
|
|
assertEquals(PluginState.STARTED, pluginManager.getPlugin(pluginZip2.pluginId()).getPluginState()); |
|
|
|
assertEquals(PluginState.STARTED, pluginManager.getPlugin(pluginZip3.pluginId()).getPluginState()); |
|
|
|
|
|
|
|
System.out.println("Stopping " + pluginZip2.pluginId()); |
|
|
|
pluginManager.stopPlugin(pluginZip2.pluginId()); |
|
|
|
assertEquals(PluginState.STOPPED, pluginManager.getPlugin(pluginZip2.pluginId()).getPluginState()); |
|
|
|
|
|
|
|
boolean deleted = pluginManager.deletePlugin(pluginZip2.pluginId()); |
|
|
|
assertTrue(deleted); |
|
|
|
|
|
|
|
assertEquals(1, pluginManager.getPlugins().size()); // myPlugin1 should still be there, myPlugin2 and myPlugin3 should be gone |
|
|
|
|
|
|
|
pluginManager.stopPlugin(pluginZip1.pluginId()); |
|
|
|
assertEquals(PluginState.STOPPED, pluginManager.getPlugin(pluginZip1.pluginId()).getPluginState()); |
|
|
|
} |
|
|
|
|
|
|
|
} |