Browse Source

Add stopPluginWithDeletedDependency (see #576)

master
Decebal Suiu 1 month ago
parent
commit
74aa987ca9
  1. 30
      pf4j/src/test/java/org/pf4j/DefaultPluginManagerTest.java

30
pf4j/src/test/java/org/pf4j/DefaultPluginManagerTest.java

@ -366,4 +366,34 @@ public class DefaultPluginManagerTest {
assertTrue(unloadedEvent.isPresent());
}
@Test
void stopPluginWithDeletedDependency() 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();
pluginManager.loadPlugins();
pluginManager.startPlugins();
assertEquals(PluginState.STARTED, pluginManager.getPlugin(pluginZip1.pluginId()).getPluginState());
assertEquals(PluginState.STARTED, pluginManager.getPlugin(pluginZip2.pluginId()).getPluginState());
System.out.println("Stopping " + pluginZip1.pluginId());
pluginManager.stopPlugin(pluginZip1.pluginId());
assertEquals(PluginState.STOPPED, pluginManager.getPlugin(pluginZip1.pluginId()).getPluginState());
boolean deleted = pluginManager.deletePlugin(pluginZip1.pluginId());
assertTrue(deleted);
assertEquals(0, pluginManager.getPlugins().size());
assertThrows(PluginNotFoundException.class, () -> pluginManager.stopPlugin(pluginZip2.pluginId()));
}
}

Loading…
Cancel
Save