package org.skywalking.apm.agent.core.plugin; import net.bytebuddy.dynamic.DynamicType; import org.junit.Assert; import org.junit.Test; import java.util.ArrayList; /** * Created by wusheng on 2017/2/27. */ public class PluginFinderTest { @Test public void testFind() { ArrayList<AbstractClassEnhancePluginDefine> defines = new ArrayList<AbstractClassEnhancePluginDefine>(); defines.add(new NewTestPlugin()); defines.add(new NewTestPlugin2()); PluginFinder finder = new PluginFinder(defines); Assert.assertNotNull(finder.find("test.NewClass")); Assert.assertTrue(finder.exist("test.NewClass")); } @Test(expected = PluginException.class) public void testCanNotFind() { ArrayList<AbstractClassEnhancePluginDefine> defines = new ArrayList<AbstractClassEnhancePluginDefine>(); defines.add(new NewTestPlugin()); PluginFinder finder = new PluginFinder(defines); finder.find("test.NewClass2"); } public class NewTestPlugin extends AbstractClassEnhancePluginDefine { @Override protected DynamicType.Builder<?> enhance(String enhanceOriginClassName, DynamicType.Builder<?> newClassBuilder) throws PluginException { return newClassBuilder; } @Override protected String enhanceClassName() { return "test.NewClass"; } } public class NewTestPlugin2 extends AbstractClassEnhancePluginDefine { @Override protected DynamicType.Builder<?> enhance(String enhanceOriginClassName, DynamicType.Builder<?> newClassBuilder) throws PluginException { return newClassBuilder; } @Override protected String enhanceClassName() { return null; } } }