]> source.dussan.org Git - pf4j.git/commitdiff
Polishing #321
authordecebals <decebal.suiu@gmail.com>
Tue, 4 Jun 2019 10:17:43 +0000 (13:17 +0300)
committerdecebals <decebal.suiu@gmail.com>
Tue, 4 Jun 2019 10:17:43 +0000 (13:17 +0300)
pf4j/src/test/java/org/pf4j/LegacyExtensionFinderTest.java

index fe2cac25d84f572ae5240df0153fc523517b8447..8f5a72739ddb3006da488a40029e26a05281984f 100644 (file)
@@ -1,69 +1,73 @@
+/*
+ * Copyright (C) 2012-present the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package org.pf4j;
 
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.contains;
-import static org.hamcrest.Matchers.equalTo;
-import static org.hamcrest.Matchers.is;
-import static org.hamcrest.Matchers.notNullValue;
-import static org.junit.jupiter.api.Assumptions.assumeTrue;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.condition.EnabledOnOs;
+import org.junit.jupiter.api.io.TempDir;
+import org.pf4j.plugin.PluginJar;
+import org.pf4j.plugin.TestExtension;
+import org.pf4j.plugin.TestPlugin;
 
-import java.io.IOException;
 import java.nio.file.Path;
-import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
 
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.io.TempDir;
-import org.pf4j.plugin.PluginJar;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.contains;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.condition.OS.WINDOWS;
 
 public class LegacyExtensionFinderTest {
 
     @TempDir
-    public Path pluginsPath;
-
-    public static class TestPlugin extends Plugin {
-
-        public TestPlugin(PluginWrapper wrapper) {
-            super(wrapper);
-        }
-    }
-
-    @Extension
-    public static class TestExtension implements ExtensionPoint {
-
-    }
-
-    private static boolean systemIsWindows() {
-        String os = System.getProperty("os.name").toLowerCase(Locale.ENGLISH);
-        return os.startsWith("win");
-    }
+    Path pluginsPath;
 
     @Test
-    public void shouldUnlockFileAfterReadingExtensionsFromPlugin() throws IOException, PluginException {
-
-        assumeTrue(systemIsWindows());
-        final Path pluginJarPath = pluginsPath.resolve("test-plugin.jar");
-        PluginJar pluginJar = new PluginJar.Builder(pluginJarPath, "test-plugin")
+    @EnabledOnOs(WINDOWS)
+    public void shouldUnlockFileAfterReadingExtensionsFromPlugin() throws Exception {
+        PluginJar pluginJar = new PluginJar.Builder(pluginsPath.resolve("test-plugin.jar"), "test-plugin")
                 .pluginClass(TestPlugin.class.getName())
                 .pluginVersion("1.2.3")
                 .extension(TestExtension.class.getName())
                 .build();
 
-        JarPluginManager pluginManager = new JarPluginManager(pluginsPath);
+        assertTrue(pluginJar.file().exists());
 
+        PluginManager pluginManager = new JarPluginManager(pluginsPath);
         pluginManager.loadPlugins();
+
+        assertEquals(1, pluginManager.getPlugins().size());
+
         LegacyExtensionFinder extensionFinder = new LegacyExtensionFinder(pluginManager);
-        Map<String, Set<String>> pluginStorages = extensionFinder.readPluginsStorages();
-        pluginManager.unloadPlugin(pluginJar.pluginId());
-        boolean fileDeleted = pluginJarPath.toFile().delete();
+        Map<String, Set<String>> pluginsStorages = extensionFinder.readPluginsStorages();
+        assertNotNull(pluginsStorages);
 
-        assertThat(pluginStorages, is(notNullValue()));
-        assertThat(pluginStorages.get(pluginJar.pluginId()), is(notNullValue()));
-        assertThat(pluginStorages.get(pluginJar.pluginId()).size(), is(equalTo(1)));
-        assertThat(pluginStorages.get(pluginJar.pluginId()),
-                contains("org.pf4j.LegacyExtensionFinderTest$TestExtension"));
-        assertThat(fileDeleted, is(equalTo(true)));
+        pluginManager.unloadPlugin(pluginJar.pluginId());
+        boolean fileDeleted = pluginJar.file().delete();
+
+        Set<String> pluginStorages = pluginsStorages.get(pluginJar.pluginId());
+        assertNotNull(pluginStorages);
+        assertEquals(1, pluginStorages.size());
+        assertThat(pluginStorages, contains(TestExtension.class.getName()));
+        assertTrue(fileDeleted);
+        assertFalse(pluginJar.file().exists());
     }
 
 }