diff options
author | Decebal Suiu <decebal.suiu@gmail.com> | 2017-02-22 23:23:16 +0200 |
---|---|---|
committer | Decebal Suiu <decebal.suiu@gmail.com> | 2017-02-22 23:23:16 +0200 |
commit | d7f245e511f82b69925f90f378123cbedddfc92a (patch) | |
tree | 5ff52e59f50899c37d98ea7cd13996478bfeb702 /pf4j/src/test/java | |
parent | c82df37f676cb1c4ddd2ba8388deb2049bcb425a (diff) | |
download | pf4j-d7f245e511f82b69925f90f378123cbedddfc92a.tar.gz pf4j-d7f245e511f82b69925f90f378123cbedddfc92a.zip |
Add JarPluginManager, PluginLoader, AbstractPluginManager
Diffstat (limited to 'pf4j/src/test/java')
3 files changed, 113 insertions, 94 deletions
diff --git a/pf4j/src/test/java/ro/fortsoft/pf4j/DefaultPluginRepositoryTest.java b/pf4j/src/test/java/ro/fortsoft/pf4j/DefaultPluginRepositoryTest.java index 7f51d6f..2b1dc32 100644 --- a/pf4j/src/test/java/ro/fortsoft/pf4j/DefaultPluginRepositoryTest.java +++ b/pf4j/src/test/java/ro/fortsoft/pf4j/DefaultPluginRepositoryTest.java @@ -19,10 +19,9 @@ import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; -import ro.fortsoft.pf4j.util.ZipFileFilter; -import java.io.File; import java.io.IOException; +import java.nio.file.Path; import java.util.List; import static org.junit.Assert.assertEquals; @@ -31,6 +30,7 @@ import static org.junit.Assert.assertTrue; /** * @author Mario Franco + * @author Decebal Suiu */ public class DefaultPluginRepositoryTest { @@ -39,52 +39,53 @@ public class DefaultPluginRepositoryTest { @Before public void setUp() throws IOException { - testFolder.newFile("plugin-1.zip"); - testFolder.newFile("plugin-2.zip"); - testFolder.newFile("plugin-3.zi_"); + testFolder.newFolder("plugin-1"); + testFolder.newFolder("plugin-2"); + testFolder.newFolder("plugin-3"); } /** - * Test of getPluginArchives method, of class DefaultPluginRepository. + * Test of {@link DefaultPluginRepository#getPluginPaths()} method. */ @Test public void testGetPluginArchives() { - DefaultPluginRepository instance = new DefaultPluginRepository(testFolder.getRoot(), new ZipFileFilter()); + Path pluginsRoot = getPluginsRoot(); - List<File> result = instance.getPluginArchives(); + PluginRepository instance = new DefaultPluginRepository(pluginsRoot, false); - assertEquals(2, result.size()); - assertFileExists(result, "plugin-1.zip"); - assertFileExists(result, "plugin-2.zip"); + List<Path> result = instance.getPluginPaths(); + + assertEquals(3, result.size()); + assertPathExists(result, pluginsRoot.resolve("plugin-1")); + assertPathExists(result, pluginsRoot.resolve("plugin-2")); + assertPathExists(result, pluginsRoot.resolve("plugin-3")); } /** - * Test of deletePluginArchive method, of class DefaultPluginRepository. + * Test of {@link DefaultPluginRepository#deletePluginPath(Path)} method. */ @Test - public void testDeletePluginArchive() { - DefaultPluginRepository instance = new DefaultPluginRepository(testFolder.getRoot(), new ZipFileFilter()); + public void testDeletePluginPath() { + Path pluginsRoot = getPluginsRoot(); + + PluginRepository instance = new DefaultPluginRepository(pluginsRoot, false); - assertTrue(instance.deletePluginArchive("/plugin-1")); - assertFalse(instance.deletePluginArchive("/plugin-3")); + assertTrue(instance.deletePluginPath(pluginsRoot.resolve("plugin-1"))); + assertTrue(instance.deletePluginPath(pluginsRoot.resolve("plugin-3"))); + assertFalse(instance.deletePluginPath(pluginsRoot.resolve("plugin-4"))); - List<File> result = instance.getPluginArchives(); + List<Path> result = instance.getPluginPaths(); assertEquals(1, result.size()); - assertEquals(result.get(0).getName(), "plugin-2.zip"); + assertEquals(pluginsRoot.relativize(result.get(0)).toString(), "plugin-2"); } - public static void assertFileExists(List<File> files, String file) { - boolean found = false; - - for (File f : files) { - if (f.getName().equals(file)) { - found = true; - break; - } - } + private void assertPathExists(List<Path> paths, Path path) { + assertTrue("The directory must contains the file " + path, paths.contains(path)); + } - assertTrue("The directory must contains the file " + file, found); + private Path getPluginsRoot() { + return testFolder.getRoot().toPath(); } } diff --git a/pf4j/src/test/java/ro/fortsoft/pf4j/DefaultPluginStatusProviderTest.java b/pf4j/src/test/java/ro/fortsoft/pf4j/DefaultPluginStatusProviderTest.java index 25dc7a1..db33d65 100644 --- a/pf4j/src/test/java/ro/fortsoft/pf4j/DefaultPluginStatusProviderTest.java +++ b/pf4j/src/test/java/ro/fortsoft/pf4j/DefaultPluginStatusProviderTest.java @@ -22,13 +22,16 @@ import ro.fortsoft.pf4j.util.FileUtils; import java.io.File; import java.io.IOException; +import java.nio.file.Path; import java.util.ArrayList; import java.util.List; -import static org.junit.Assert.*; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; /** * @author Mario Franco + * @author Decebal Suiu */ public class DefaultPluginStatusProviderTest { @@ -42,7 +45,8 @@ public class DefaultPluginStatusProviderTest { public void testIsPluginDisabled() throws IOException { createEnabledFile(); createDisabledFile(); - DefaultPluginStatusProvider instance = new DefaultPluginStatusProvider(testFolder.getRoot()); + + PluginStatusProvider instance = new DefaultPluginStatusProvider(getPluginsRoot()); assertFalse(instance.isPluginDisabled("plugin-1")); assertTrue(instance.isPluginDisabled("plugin-2")); @@ -55,7 +59,8 @@ public class DefaultPluginStatusProviderTest { @Test public void testIsPluginDisabledWithEnableEmpty() throws IOException { createDisabledFile(); - DefaultPluginStatusProvider instance = new DefaultPluginStatusProvider(testFolder.getRoot()); + + PluginStatusProvider instance = new DefaultPluginStatusProvider(getPluginsRoot()); assertFalse(instance.isPluginDisabled("plugin-1")); assertTrue(instance.isPluginDisabled("plugin-2")); @@ -69,7 +74,8 @@ public class DefaultPluginStatusProviderTest { public void testDisablePlugin() throws IOException { createEnabledFile(); createDisabledFile(); - DefaultPluginStatusProvider instance = new DefaultPluginStatusProvider(testFolder.getRoot()); + + PluginStatusProvider instance = new DefaultPluginStatusProvider(getPluginsRoot()); assertTrue(instance.disablePlugin("plugin-1")); assertTrue(instance.isPluginDisabled("plugin-1")); @@ -83,7 +89,8 @@ public class DefaultPluginStatusProviderTest { @Test public void testDisablePluginWithEnableEmpty() throws IOException { createDisabledFile(); - DefaultPluginStatusProvider instance = new DefaultPluginStatusProvider(testFolder.getRoot()); + + PluginStatusProvider instance = new DefaultPluginStatusProvider(getPluginsRoot()); assertTrue(instance.disablePlugin("plugin-1")); assertTrue(instance.isPluginDisabled("plugin-1")); @@ -97,7 +104,8 @@ public class DefaultPluginStatusProviderTest { @Test public void testEnablePlugin() throws IOException { createEnabledFile(); - DefaultPluginStatusProvider instance = new DefaultPluginStatusProvider(testFolder.getRoot()); + + PluginStatusProvider instance = new DefaultPluginStatusProvider(getPluginsRoot()); assertTrue(instance.enablePlugin("plugin-2")); assertFalse(instance.isPluginDisabled("plugin-1")); @@ -110,7 +118,7 @@ public class DefaultPluginStatusProviderTest { */ @Test public void testEnablePluginWithEnableEmpty() { - DefaultPluginStatusProvider instance = new DefaultPluginStatusProvider(testFolder.getRoot()); + PluginStatusProvider instance = new DefaultPluginStatusProvider(getPluginsRoot()); assertTrue(instance.enablePlugin("plugin-2")); assertFalse(instance.isPluginDisabled("plugin-1")); @@ -123,7 +131,7 @@ public class DefaultPluginStatusProviderTest { */ @Test public void testDisablePluginWithoutDisabledFile() throws IOException { - DefaultPluginStatusProvider instance = new DefaultPluginStatusProvider(testFolder.getRoot()); + PluginStatusProvider instance = new DefaultPluginStatusProvider(getPluginsRoot()); assertFalse(instance.isPluginDisabled("plugin-1")); assertTrue(instance.disablePlugin("plugin-1")); @@ -150,4 +158,8 @@ public class DefaultPluginStatusProviderTest { FileUtils.writeLines(lines, file); } + private Path getPluginsRoot() { + return testFolder.getRoot().toPath(); + } + } diff --git a/pf4j/src/test/java/ro/fortsoft/pf4j/ManifestPluginDescriptorFinderTest.java b/pf4j/src/test/java/ro/fortsoft/pf4j/ManifestPluginDescriptorFinderTest.java index cffbc04..0e94fcd 100644 --- a/pf4j/src/test/java/ro/fortsoft/pf4j/ManifestPluginDescriptorFinderTest.java +++ b/pf4j/src/test/java/ro/fortsoft/pf4j/ManifestPluginDescriptorFinderTest.java @@ -21,18 +21,19 @@ import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; -import java.io.File; import java.io.IOException; import java.nio.charset.Charset; import java.nio.file.Files; -import java.nio.file.Paths; +import java.nio.file.Path; import java.util.Arrays; import java.util.List; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; /** * @author Mario Franco + * @author Decebal Suiu */ public class ManifestPluginDescriptorFinderTest { @@ -43,43 +44,42 @@ public class ManifestPluginDescriptorFinderTest { public void setUp() throws IOException { Charset charset = Charset.forName("UTF-8"); - File plugin = testFolder.newFolder("test-plugin-1", "classes", "META-INF"); - Files.write(Paths.get(plugin.getPath(), "extensions.idx"), "ro.fortsoft.pf4j.demo.hello.HelloPlugin$HelloGreeting".getBytes()); - Files.write(Paths.get(plugin.getPath(), "MANIFEST.MF"), getPlugin1Manifest(), charset); + Path pluginPath = testFolder.newFolder("test-plugin-1", "classes", "META-INF").toPath(); + Files.write(pluginPath.resolve("extensions.idx"), "ro.fortsoft.pf4j.demo.hello.HelloPlugin$HelloGreeting".getBytes()); + Files.write(pluginPath.resolve("MANIFEST.MF"), getPlugin1Manifest(), charset); - plugin = testFolder.newFolder("test-plugin-2", "classes", "META-INF"); - Files.write(Paths.get(plugin.getPath(), "extensions.idx"), "ro.fortsoft.pf4j.demo.hello.HelloPlugin$HelloGreeting".getBytes()); - Files.write(Paths.get(plugin.getPath(), "MANIFEST.MF"), getPlugin2Manifest(), charset); + pluginPath = testFolder.newFolder("test-plugin-2", "classes", "META-INF").toPath(); + Files.write(pluginPath.resolve("extensions.idx"), "ro.fortsoft.pf4j.demo.hello.HelloPlugin$HelloGreeting".getBytes()); + Files.write(pluginPath.resolve("MANIFEST.MF"), getPlugin2Manifest(), charset); - // Empty Plugin + // empty plugin testFolder.newFolder("test-plugin-3"); - // No Plugin Class - plugin = testFolder.newFolder("test-plugin-4", "classes", "META-INF"); - Files.write(Paths.get(plugin.getPath(), "extensions.idx"), "ro.fortsoft.pf4j.demo.hello.HelloPlugin$HelloGreeting".getBytes()); - Files.write(Paths.get(plugin.getPath(), "MANIFEST.MF"), getPlugin4Manifest(), charset); + // no plugin class + pluginPath = testFolder.newFolder("test-plugin-4", "classes", "META-INF").toPath(); + Files.write(pluginPath.resolve("extensions.idx"), "ro.fortsoft.pf4j.demo.hello.HelloPlugin$HelloGreeting".getBytes()); + Files.write(pluginPath.resolve("MANIFEST.MF"), getPlugin4Manifest(), charset); - // No Plugin Version - plugin = testFolder.newFolder("test-plugin-5", "classes", "META-INF"); - Files.write(Paths.get(plugin.getPath(), "extensions.idx"), "ro.fortsoft.pf4j.demo.hello.HelloPlugin$HelloGreeting".getBytes()); - Files.write(Paths.get(plugin.getPath(), "MANIFEST.MF"), getPlugin5Manifest(), charset); + // no plugin version + pluginPath = testFolder.newFolder("test-plugin-5", "classes", "META-INF").toPath(); + Files.write(pluginPath.resolve("extensions.idx"), "ro.fortsoft.pf4j.demo.hello.HelloPlugin$HelloGreeting".getBytes()); + Files.write(pluginPath.resolve("MANIFEST.MF"), getPlugin5Manifest(), charset); - // No Plugin Id - plugin = testFolder.newFolder("test-plugin-6", "classes", "META-INF"); - Files.write(Paths.get(plugin.getPath(), "extensions.idx"), "ro.fortsoft.pf4j.demo.hello.HelloPlugin$HelloGreeting".getBytes()); - Files.write(Paths.get(plugin.getPath(), "MANIFEST.MF"), getPlugin6Manifest(), charset); + // no plugin id + pluginPath = testFolder.newFolder("test-plugin-6", "classes", "META-INF").toPath(); + Files.write(pluginPath.resolve("extensions.idx"), "ro.fortsoft.pf4j.demo.hello.HelloPlugin$HelloGreeting".getBytes()); + Files.write(pluginPath.resolve("MANIFEST.MF"), getPlugin6Manifest(), charset); } /** - * Test of find method, of class ManifestPluginDescriptorFinder. + * Test of {@link DefaultPluginDescriptorFinder#find(Path)} method. */ @Test public void testFind() throws Exception { - DefaultPluginDescriptorFinder instance = new DefaultPluginDescriptorFinder(new PluginClasspath()); + PluginDescriptorFinder instance = new DefaultPluginDescriptorFinder(new DefaultPluginClasspath()); - PluginDescriptor plugin1 = instance.find(Paths.get(testFolder.getRoot().getPath(),"test-plugin-1").toFile()); - - PluginDescriptor plugin2 = instance.find(Paths.get(testFolder.getRoot().getPath(),"test-plugin-2").toFile()); + PluginDescriptor plugin1 = instance.find(getPluginsRoot().resolve("test-plugin-1")); + PluginDescriptor plugin2 = instance.find(getPluginsRoot().resolve("test-plugin-2")); assertEquals("test-plugin-1", plugin1.getPluginId()); assertEquals("Test Plugin 1", plugin1.getPluginDescription()); @@ -102,48 +102,44 @@ public class ManifestPluginDescriptorFinderTest { } /** - * Test of find method, of class ManifestPluginDescriptorFinder. + * Test of {@link DefaultPluginDescriptorFinder#find(Path)} method. */ @Test(expected = PluginException.class) public void testFindNotFound() throws Exception { - - ManifestPluginDescriptorFinder instance = new DefaultPluginDescriptorFinder(new PluginClasspath()); - PluginDescriptor result = instance.find(Paths.get(testFolder.getRoot().getPath(),"test-plugin-3").toFile()); + PluginDescriptorFinder instance = new DefaultPluginDescriptorFinder(new DefaultPluginClasspath()); + instance.find(getPluginsRoot().resolve("test-plugin-3")); } /** - * Test of find method, of class ManifestPluginDescriptorFinder. + * Test of {@link DefaultPluginDescriptorFinder#find(Path)} method. */ @Test(expected = PluginException.class) public void testFindMissingPluginClass() throws Exception { - - ManifestPluginDescriptorFinder instance = new DefaultPluginDescriptorFinder(new PluginClasspath()); - PluginDescriptor result = instance.find(Paths.get(testFolder.getRoot().getPath(),"test-plugin-4").toFile()); + PluginDescriptorFinder instance = new DefaultPluginDescriptorFinder(new DefaultPluginClasspath()); + instance.find(getPluginsRoot().resolve("test-plugin-4")); } /** - * Test of find method, of class ManifestPluginDescriptorFinder. + * Test of {@link DefaultPluginDescriptorFinder#find(Path)} method. */ @Test(expected = PluginException.class) public void testFindMissingPluginVersion() throws Exception { - - ManifestPluginDescriptorFinder instance = new DefaultPluginDescriptorFinder(new PluginClasspath()); - PluginDescriptor result = instance.find(Paths.get(testFolder.getRoot().getPath(),"test-plugin-5").toFile()); + PluginDescriptorFinder instance = new DefaultPluginDescriptorFinder(new DefaultPluginClasspath()); + instance.find(getPluginsRoot().resolve("test-plugin-5")); } /** - * Test of find method, of class ManifestPluginDescriptorFinder. + * Test of {@link DefaultPluginDescriptorFinder#find(Path)} method. */ @Test(expected = PluginException.class) public void testFindMissingPluginId() throws Exception { - - ManifestPluginDescriptorFinder instance = new DefaultPluginDescriptorFinder(new PluginClasspath()); - PluginDescriptor result = instance.find(Paths.get(testFolder.getRoot().getPath(),"test-plugin-6").toFile()); + PluginDescriptorFinder instance = new DefaultPluginDescriptorFinder(new DefaultPluginClasspath()); + instance.find(getPluginsRoot().resolve("test-plugin-6")); } private List<String> getPlugin1Manifest() { - - String[] lines = new String[]{"Manifest-Version: 1.0\n" + String[] lines = new String[] { + "Manifest-Version: 1.0\n" + "Implementation-Title: Test Plugin #1\n" + "Implementation-Version: 0.10.0-SNAPSHOT\n" + "Archiver-Version: Plexus Archiver\n" @@ -161,14 +157,15 @@ public class ManifestPluginDescriptorFinderTest { + "Build-Jdk: 1.8.0_45\n" + "Specification-Version: 0.10.0-SNAPSHOT\n" + "\n" - + ""}; + + "" + }; return Arrays.asList(lines); } private List<String> getPlugin2Manifest() { - - String[] lines = new String[]{"Manifest-Version: 1.0\n" + String[] lines = new String[] { + "Manifest-Version: 1.0\n" + "Plugin-Dependencies: \n" + "Implementation-Title: Test Plugin #2\n" + "Implementation-Version: 0.10.0-SNAPSHOT\n" @@ -184,14 +181,15 @@ public class ManifestPluginDescriptorFinderTest { + "Build-Jdk: 1.8.0_45\n" + "Specification-Version: 0.10.0-SNAPSHOT\n" + "\n" - + ""}; + + "" + }; return Arrays.asList(lines); } private List<String> getPlugin4Manifest() { - - String[] lines = new String[]{"Manifest-Version: 1.0\n" + String[] lines = new String[] { + "Manifest-Version: 1.0\n" + "Implementation-Title: Test Plugin #4\n" + "Implementation-Version: 0.10.0-SNAPSHOT\n" + "Archiver-Version: Plexus Archiver\n" @@ -205,14 +203,15 @@ public class ManifestPluginDescriptorFinderTest { + "Build-Jdk: 1.8.0_45\n" + "Specification-Version: 0.10.0-SNAPSHOT\n" + "\n" - + ""}; + + "" + }; return Arrays.asList(lines); } private List<String> getPlugin5Manifest() { - - String[] lines = new String[]{"Manifest-Version: 1.0\n" + String[] lines = new String[] { + "Manifest-Version: 1.0\n" + "Implementation-Title: Test Plugin #5\n" + "Implementation-Version: 0.10.0-SNAPSHOT\n" + "Archiver-Version: Plexus Archiver\n" @@ -226,14 +225,15 @@ public class ManifestPluginDescriptorFinderTest { + "Build-Jdk: 1.8.0_45\n" + "Specification-Version: 0.10.0-SNAPSHOT\n" + "\n" - + ""}; + + "" + }; return Arrays.asList(lines); } private List<String> getPlugin6Manifest() { - - String[] lines = new String[]{"Manifest-Version: 1.0\n" + String[] lines = new String[] { + "Manifest-Version: 1.0\n" + "Implementation-Title: Test Plugin #6\n" + "Implementation-Version: 0.10.0-SNAPSHOT\n" + "Archiver-Version: Plexus Archiver\n" @@ -246,8 +246,14 @@ public class ManifestPluginDescriptorFinderTest { + "Build-Jdk: 1.8.0_45\n" + "Specification-Version: 0.10.0-SNAPSHOT\n" + "\n" - + ""}; + + "" + }; return Arrays.asList(lines); } + + private Path getPluginsRoot() { + return testFolder.getRoot().toPath(); + } + } |