package org.hotswap.agent.util.classloader; import org.hotswap.agent.config.PluginManager; import org.hotswap.agent.plugin.jvm.AnonymousClassInfo; import org.junit.Test; import java.net.URL; import java.net.URLClassLoader; import static org.junit.Assert.assertEquals; /** * Created by bubnik on 29.10.13. */ public class ClassLoaderDefineClassPatcherTest { // @Test public void testWithoutPatch() throws Exception { ClassLoader appClassLoader = new URLClassLoader(new URL[]{}, getClass().getClassLoader()); assertEquals("Class created in parent classloader", getClass().getClassLoader(), appClassLoader.loadClass(AnonymousClassInfo.class.getName()).getClassLoader()); ; } @Test public void testPatch() throws Exception { ClassLoader appClassLoader = new URLClassLoader(new URL[]{}, getClass().getClassLoader()); assertEquals("Class created in parent classloader", getClass().getClassLoader(), appClassLoader.loadClass(AnonymousClassInfo.class.getName()).getClassLoader()); new ClassLoaderDefineClassPatcher().patch(getClass().getClassLoader(), PluginManager.PLUGIN_PACKAGE.replace(".", "/"), appClassLoader, null); assertEquals("Class created in app classloader", appClassLoader, appClassLoader.loadClass(AnonymousClassInfo.class.getName()).getClassLoader()); ; } }