testclasspathpluginloader.java

来自「模块化您的应用系统」· Java 代码 · 共 31 行

JAVA
31
字号
package com.opensymphony.tonic.loaders;

import com.opensymphony.tonic.DefaultModuleDescriptorFactory;
import com.opensymphony.tonic.Plugin;
import com.opensymphony.tonic.descriptors.ResourcedModuleDescriptor;
import com.opensymphony.tonic.mock.MockAnimalModuleDescriptor;
import com.opensymphony.tonic.mock.MockMineralModuleDescriptor;
import junit.framework.TestCase;

import java.util.Collection;

public class TestClassPathPluginLoader extends TestCase
{
    public void testTonicPlugins() throws Exception
    {
        ClassPathPluginLoader loader = new ClassPathPluginLoader(null, "test-tonic-plugin.xml");
        DefaultModuleDescriptorFactory moduleDescriptorFactory = new DefaultModuleDescriptorFactory();
        moduleDescriptorFactory.addModuleDescriptor("animal", MockAnimalModuleDescriptor.class);
        moduleDescriptorFactory.addModuleDescriptor("mineral", MockMineralModuleDescriptor.class);
        Collection plugins = loader.loadAllPlugins(moduleDescriptorFactory);

        Plugin plugin = (Plugin) plugins.iterator().next();
        assertEquals("Test Plugin", plugin.getName());
        assertEquals("test.tonic.plugin", plugin.getKey());
        assertEquals("This plugin descriptor is just used for test purposes!", plugin.getPluginInformation().getDescription());
        assertEquals(2, plugin.getModuleDescriptors().size());

        assertEquals("Bear Animal", ((ResourcedModuleDescriptor) plugin.getModuleDescriptor("bear")).getName());
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?