aboutsummaryrefslogtreecommitdiffstats
path: root/pf4j/src/test/java
diff options
context:
space:
mode:
authorDecebal Suiu <decebal.suiu@gmail.com>2017-02-22 23:23:16 +0200
committerDecebal Suiu <decebal.suiu@gmail.com>2017-02-22 23:23:16 +0200
commitd7f245e511f82b69925f90f378123cbedddfc92a (patch)
tree5ff52e59f50899c37d98ea7cd13996478bfeb702 /pf4j/src/test/java
parentc82df37f676cb1c4ddd2ba8388deb2049bcb425a (diff)
downloadpf4j-d7f245e511f82b69925f90f378123cbedddfc92a.tar.gz
pf4j-d7f245e511f82b69925f90f378123cbedddfc92a.zip
Add JarPluginManager, PluginLoader, AbstractPluginManager
Diffstat (limited to 'pf4j/src/test/java')
-rw-r--r--pf4j/src/test/java/ro/fortsoft/pf4j/DefaultPluginRepositoryTest.java57
-rw-r--r--pf4j/src/test/java/ro/fortsoft/pf4j/DefaultPluginStatusProviderTest.java28
-rw-r--r--pf4j/src/test/java/ro/fortsoft/pf4j/ManifestPluginDescriptorFinderTest.java122
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();
+ }
+
}