mirror of https://github.com/pf4j/pf4j.git
Mário Franco
9 years ago
4 changed files with 119 additions and 0 deletions
@ -0,0 +1,85 @@ |
|||||||
|
/* |
||||||
|
* Copyright 2015 Decebal Suiu |
||||||
|
* |
||||||
|
* 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 ro.fortsoft.pf4j; |
||||||
|
|
||||||
|
import com.github.zafarkhaja.semver.Version; |
||||||
|
import java.io.File; |
||||||
|
import java.net.URL; |
||||||
|
import org.junit.After; |
||||||
|
import org.junit.Before; |
||||||
|
import org.junit.Test; |
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals; |
||||||
|
import static org.junit.Assert.assertTrue; |
||||||
|
|
||||||
|
/** |
||||||
|
* |
||||||
|
* @author Mario Franco |
||||||
|
*/ |
||||||
|
public class ManifestPluginDescriptorFinderTest { |
||||||
|
|
||||||
|
|
||||||
|
@Before |
||||||
|
public void setUp() { |
||||||
|
} |
||||||
|
|
||||||
|
@After |
||||||
|
public void tearDown() { |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Test of find method, of class ManifestPluginDescriptorFinder. |
||||||
|
*/ |
||||||
|
@Test |
||||||
|
public void testFind() throws Exception { |
||||||
|
ManifestPluginDescriptorFinder instance = new DefaultPluginDescriptorFinder(new PluginClasspath()); |
||||||
|
URL url = getClass().getResource("/test-plugin-1"); |
||||||
|
PluginDescriptor plugin1 = instance.find(new File(url.getPath())); |
||||||
|
url = getClass().getResource("/test-plugin-2"); |
||||||
|
PluginDescriptor plugin2 = instance.find(new File(url.getPath())); |
||||||
|
|
||||||
|
assertEquals("test-plugin-1", plugin1.getPluginId()); |
||||||
|
assertEquals("Test Plugin 1", plugin1.getPluginDescription()); |
||||||
|
assertEquals("ro.fortsoft.pf4j.plugin.TestPlugin", plugin1.getPluginClass()); |
||||||
|
assertEquals(Version.valueOf("0.0.1"), plugin1.getVersion()); |
||||||
|
assertEquals("Decebal Suiu", plugin1.getProvider()); |
||||||
|
assertEquals(2, plugin1.getDependencies().size()); |
||||||
|
assertEquals("test-plugin-2", plugin1.getDependencies().get(0).getPluginId()); |
||||||
|
assertEquals("test-plugin-3", plugin1.getDependencies().get(1).getPluginId()); |
||||||
|
assertEquals("~1.0", plugin1.getDependencies().get(1).getPluginVersionSupport()); |
||||||
|
assertTrue(plugin1.getRequires().interpret(Version.valueOf("1.0.0"))); |
||||||
|
|
||||||
|
assertEquals("test-plugin-2", plugin2.getPluginId()); |
||||||
|
assertEquals("", plugin2.getPluginDescription()); |
||||||
|
assertEquals("ro.fortsoft.pf4j.plugin.TestPlugin", plugin2.getPluginClass()); |
||||||
|
assertEquals(Version.valueOf("0.0.1"), plugin2.getVersion()); |
||||||
|
assertEquals("Decebal Suiu", plugin2.getProvider()); |
||||||
|
assertEquals(0, plugin2.getDependencies().size()); |
||||||
|
assertTrue(plugin2.getRequires().interpret(Version.valueOf("1.0.0"))); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Test of find method, of class ManifestPluginDescriptorFinder. |
||||||
|
*/ |
||||||
|
@Test(expected=PluginException.class) |
||||||
|
public void testFindNotFound() throws Exception { |
||||||
|
|
||||||
|
ManifestPluginDescriptorFinder instance = new DefaultPluginDescriptorFinder(new PluginClasspath()); |
||||||
|
URL url = getClass().getResource("/test-plugin-3"); |
||||||
|
PluginDescriptor result = instance.find(new File(url.getPath())); |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,18 @@ |
|||||||
|
Manifest-Version: 1.0 |
||||||
|
Implementation-Title: Test Plugin #1 |
||||||
|
Implementation-Version: 0.10.0-SNAPSHOT |
||||||
|
Archiver-Version: Plexus Archiver |
||||||
|
Built-By: Mario Franco |
||||||
|
Specification-Title: Test Plugin #1 |
||||||
|
Implementation-Vendor-Id: ro.fortsoft.pf4j.demo |
||||||
|
Plugin-Version: 0.0.1 |
||||||
|
Plugin-Id: test-plugin-1 |
||||||
|
Plugin-Description: Test Plugin 1 |
||||||
|
Plugin-Provider: Decebal Suiu |
||||||
|
Plugin-Class: ro.fortsoft.pf4j.plugin.TestPlugin |
||||||
|
Plugin-Dependencies: test-plugin-2,test-plugin-3@~1.0 |
||||||
|
Plugin-Requires: * |
||||||
|
Created-By: Apache Maven 3.0.5 |
||||||
|
Build-Jdk: 1.8.0_45 |
||||||
|
Specification-Version: 0.10.0-SNAPSHOT |
||||||
|
|
@ -0,0 +1,16 @@ |
|||||||
|
Manifest-Version: 1.0 |
||||||
|
Plugin-Dependencies: |
||||||
|
Implementation-Title: Test Plugin #2 |
||||||
|
Implementation-Version: 0.10.0-SNAPSHOT |
||||||
|
Archiver-Version: Plexus Archiver |
||||||
|
Built-By: Mario Franco |
||||||
|
Specification-Title: Test Plugin #2 |
||||||
|
Implementation-Vendor-Id: ro.fortsoft.pf4j.demo |
||||||
|
Plugin-Version: 0.0.1 |
||||||
|
Plugin-Id: test-plugin-2 |
||||||
|
Plugin-Provider: Decebal Suiu |
||||||
|
Plugin-Class: ro.fortsoft.pf4j.plugin.TestPlugin |
||||||
|
Created-By: Apache Maven 3.0.5 |
||||||
|
Build-Jdk: 1.8.0_45 |
||||||
|
Specification-Version: 0.10.0-SNAPSHOT |
||||||
|
|
Loading…
Reference in new issue