prepping .intstrument.classloading unit tests for move from .testsuite -> .context
This commit is contained in:
parent
2952609672
commit
9ed180a80d
|
|
@ -16,16 +16,19 @@
|
|||
|
||||
package org.springframework.instrument.classloading;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
import static org.junit.Assert.assertSame;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.springframework.util.ClassUtils;
|
||||
|
||||
/**
|
||||
* @author Costin Leau
|
||||
* @author Juergen Hoeller
|
||||
* @author Chris Beams
|
||||
*/
|
||||
public class InstrumentableClassLoaderTests extends TestCase {
|
||||
public class InstrumentableClassLoaderTests {
|
||||
|
||||
@Test
|
||||
public void testDefaultLoadTimeWeaver() {
|
||||
ClassLoader loader = new SimpleInstrumentableClassLoader(ClassUtils.getDefaultClassLoader());
|
||||
ReflectiveLoadTimeWeaver handler = new ReflectiveLoadTimeWeaver(loader);
|
||||
|
|
|
|||
|
|
@ -16,36 +16,33 @@
|
|||
|
||||
package org.springframework.instrument.classloading;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
import org.springframework.test.AssertThrows;
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import java.lang.instrument.ClassFileTransformer;
|
||||
import java.security.ProtectionDomain;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
* Unit tests for the {@link ReflectiveLoadTimeWeaver} class.
|
||||
*
|
||||
* @author Rick Evans
|
||||
* @author Chris Beams
|
||||
*/
|
||||
public final class ReflectiveLoadTimeWeaverTests extends TestCase {
|
||||
public final class ReflectiveLoadTimeWeaverTests {
|
||||
|
||||
public void testCtorWithNullClassLoader() throws Exception {
|
||||
new AssertThrows(IllegalArgumentException.class) {
|
||||
public void test() throws Exception {
|
||||
new ReflectiveLoadTimeWeaver(null);
|
||||
}
|
||||
}.runTest();
|
||||
@Test(expected=IllegalArgumentException.class)
|
||||
public void testCtorWithNullClassLoader() {
|
||||
new ReflectiveLoadTimeWeaver(null);
|
||||
}
|
||||
|
||||
public void testCtorWithClassLoaderThatDoesNotExposeAnAddTransformerMethod() throws Exception {
|
||||
new AssertThrows(IllegalStateException.class) {
|
||||
public void test() throws Exception {
|
||||
new ReflectiveLoadTimeWeaver(getClass().getClassLoader());
|
||||
}
|
||||
}.runTest();
|
||||
@Test(expected=IllegalStateException.class)
|
||||
public void testCtorWithClassLoaderThatDoesNotExposeAnAddTransformerMethod() {
|
||||
new ReflectiveLoadTimeWeaver(getClass().getClassLoader());
|
||||
}
|
||||
|
||||
public void testCtorWithClassLoaderThatDoesNotExposeAGetThrowawayClassLoaderMethodIsOkay() throws Exception {
|
||||
@Test
|
||||
public void testCtorWithClassLoaderThatDoesNotExposeAGetThrowawayClassLoaderMethodIsOkay() {
|
||||
JustAddTransformerClassLoader classLoader = new JustAddTransformerClassLoader();
|
||||
ReflectiveLoadTimeWeaver weaver = new ReflectiveLoadTimeWeaver(classLoader);
|
||||
weaver.addTransformer(new ClassFileTransformer() {
|
||||
|
|
@ -56,21 +53,20 @@ public final class ReflectiveLoadTimeWeaverTests extends TestCase {
|
|||
assertEquals(1, classLoader.getNumTimesGetThrowawayClassLoaderCalled());
|
||||
}
|
||||
|
||||
public void testAddTransformerWithNullTransformer() throws Exception {
|
||||
new AssertThrows(IllegalArgumentException.class) {
|
||||
public void test() throws Exception {
|
||||
new ReflectiveLoadTimeWeaver(new JustAddTransformerClassLoader()).addTransformer(null);
|
||||
}
|
||||
}.runTest();
|
||||
@Test(expected=IllegalArgumentException.class)
|
||||
public void testAddTransformerWithNullTransformer() {
|
||||
new ReflectiveLoadTimeWeaver(new JustAddTransformerClassLoader()).addTransformer(null);
|
||||
}
|
||||
|
||||
public void testGetThrowawayClassLoaderWithClassLoaderThatDoesNotExposeAGetThrowawayClassLoaderMethodYieldsFallbackClassLoader() throws Exception {
|
||||
@Test
|
||||
public void testGetThrowawayClassLoaderWithClassLoaderThatDoesNotExposeAGetThrowawayClassLoaderMethodYieldsFallbackClassLoader() {
|
||||
ReflectiveLoadTimeWeaver weaver = new ReflectiveLoadTimeWeaver(new JustAddTransformerClassLoader());
|
||||
ClassLoader throwawayClassLoader = weaver.getThrowawayClassLoader();
|
||||
assertNotNull(throwawayClassLoader);
|
||||
}
|
||||
|
||||
public void testGetThrowawayClassLoaderWithTotallyCompliantClassLoader() throws Exception {
|
||||
@Test
|
||||
public void testGetThrowawayClassLoaderWithTotallyCompliantClassLoader() {
|
||||
TotallyCompliantClassLoader classLoader = new TotallyCompliantClassLoader();
|
||||
ReflectiveLoadTimeWeaver weaver = new ReflectiveLoadTimeWeaver(classLoader);
|
||||
ClassLoader throwawayClassLoader = weaver.getThrowawayClassLoader();
|
||||
|
|
|
|||
|
|
@ -16,16 +16,19 @@
|
|||
|
||||
package org.springframework.instrument.classloading;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Enumeration;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
* @author Rod Johnson
|
||||
* @author Chris Beams
|
||||
* @since 2.0
|
||||
*/
|
||||
public class ResourceOverridingShadowingClassLoaderTests extends TestCase {
|
||||
public class ResourceOverridingShadowingClassLoaderTests {
|
||||
|
||||
private static final String EXISTING_RESOURCE = "org/springframework/instrument/classloading/testResource.xml";
|
||||
|
||||
|
|
@ -34,41 +37,47 @@ public class ResourceOverridingShadowingClassLoaderTests extends TestCase {
|
|||
private ResourceOverridingShadowingClassLoader overridingLoader = new ResourceOverridingShadowingClassLoader(thisClassLoader);
|
||||
|
||||
|
||||
@Test
|
||||
public void testFindsExistingResourceWithGetResourceAndNoOverrides() {
|
||||
assertNotNull(thisClassLoader.getResource(EXISTING_RESOURCE));
|
||||
assertNotNull(overridingLoader.getResource(EXISTING_RESOURCE));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDoesNotFindExistingResourceWithGetResourceAndNullOverride() {
|
||||
assertNotNull(thisClassLoader.getResource(EXISTING_RESOURCE));
|
||||
overridingLoader.override(EXISTING_RESOURCE, null);
|
||||
assertNull(overridingLoader.getResource(EXISTING_RESOURCE));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFindsExistingResourceWithGetResourceAsStreamAndNoOverrides() {
|
||||
assertNotNull(thisClassLoader.getResourceAsStream(EXISTING_RESOURCE));
|
||||
assertNotNull(overridingLoader.getResourceAsStream(EXISTING_RESOURCE));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDoesNotFindExistingResourceWithGetResourceAsStreamAndNullOverride() {
|
||||
assertNotNull(thisClassLoader.getResourceAsStream(EXISTING_RESOURCE));
|
||||
overridingLoader.override(EXISTING_RESOURCE, null);
|
||||
assertNull(overridingLoader.getResourceAsStream(EXISTING_RESOURCE));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFindsExistingResourceWithGetResourcesAndNoOverrides() throws IOException {
|
||||
assertNotNull(thisClassLoader.getResources(EXISTING_RESOURCE));
|
||||
assertNotNull(overridingLoader.getResources(EXISTING_RESOURCE));
|
||||
assertEquals(1, countElements(overridingLoader.getResources(EXISTING_RESOURCE)));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDoesNotFindExistingResourceWithGetResourcesAndNullOverride() throws IOException {
|
||||
assertNotNull(thisClassLoader.getResources(EXISTING_RESOURCE));
|
||||
overridingLoader.override(EXISTING_RESOURCE, null);
|
||||
assertEquals(0, countElements(overridingLoader.getResources(EXISTING_RESOURCE)));
|
||||
}
|
||||
|
||||
private int countElements(Enumeration e) {
|
||||
private int countElements(Enumeration<?> e) {
|
||||
int elts = 0;
|
||||
while (e.hasMoreElements()) {
|
||||
e.nextElement();
|
||||
|
|
|
|||
|
|
@ -16,6 +16,8 @@
|
|||
|
||||
package org.springframework.instrument.classloading.glassfish;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
import java.lang.instrument.ClassFileTransformer;
|
||||
import java.net.URL;
|
||||
import java.net.URLClassLoader;
|
||||
|
|
@ -26,16 +28,20 @@ import java.util.List;
|
|||
|
||||
import javax.persistence.spi.ClassTransformer;
|
||||
|
||||
import com.sun.enterprise.loader.InstrumentableClassLoader;
|
||||
import junit.framework.TestCase;
|
||||
import org.easymock.ArgumentsMatcher;
|
||||
import org.easymock.MockControl;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.springframework.instrument.classloading.LoadTimeWeaver;
|
||||
|
||||
public class GlassFishLoadTimeWeaverTests extends TestCase {
|
||||
import com.sun.enterprise.loader.InstrumentableClassLoader;
|
||||
|
||||
private MockControl loaderCtrl;
|
||||
// converting away from old-style EasyMock APIs was problematic with this class
|
||||
@SuppressWarnings("deprecation")
|
||||
public class GlassFishLoadTimeWeaverTests {
|
||||
|
||||
private MockControl<InstrumentableClassLoader> loaderCtrl;
|
||||
private InstrumentableClassLoader loader;
|
||||
private LoadTimeWeaver ltw;
|
||||
|
||||
|
|
@ -60,9 +66,10 @@ public class GlassFishLoadTimeWeaverTests extends TestCase {
|
|||
}
|
||||
}
|
||||
|
||||
protected void setUp() throws Exception {
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
loaderCtrl = MockControl.createControl(InstrumentableClassLoader.class);
|
||||
loader = (InstrumentableClassLoader) loaderCtrl.getMock();
|
||||
loader = loaderCtrl.getMock();
|
||||
loaderCtrl.replay();
|
||||
|
||||
ltw = new GlassFishLoadTimeWeaver() {
|
||||
|
|
@ -73,11 +80,13 @@ public class GlassFishLoadTimeWeaverTests extends TestCase {
|
|||
};
|
||||
}
|
||||
|
||||
protected void tearDown() throws Exception {
|
||||
@After
|
||||
public void tearDown() throws Exception {
|
||||
loaderCtrl.verify();
|
||||
ltw = null;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGlassFishLoadTimeWeaver() {
|
||||
try {
|
||||
ltw = new GlassFishLoadTimeWeaver();
|
||||
|
|
@ -89,6 +98,7 @@ public class GlassFishLoadTimeWeaverTests extends TestCase {
|
|||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGlassFishLoadTimeWeaverClassLoader() {
|
||||
try {
|
||||
ltw = new GlassFishLoadTimeWeaver(null);
|
||||
|
|
@ -115,8 +125,9 @@ public class GlassFishLoadTimeWeaverTests extends TestCase {
|
|||
assertSame(cl4, ltw.getInstrumentableClassLoader());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAddTransformer() {
|
||||
ClassFileTransformer transformer = (ClassFileTransformer) MockControl.createNiceControl(
|
||||
ClassFileTransformer transformer = MockControl.createNiceControl(
|
||||
ClassFileTransformer.class).getMock();
|
||||
loaderCtrl.reset();
|
||||
loader.addTransformer(new ClassTransformerAdapter(transformer));
|
||||
|
|
@ -141,6 +152,7 @@ public class GlassFishLoadTimeWeaverTests extends TestCase {
|
|||
ltw.addTransformer(transformer);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetThrowawayClassLoader() {
|
||||
loaderCtrl.reset();
|
||||
ClassLoader cl = new URLClassLoader(new URL[0]);
|
||||
|
|
|
|||
|
|
@ -16,50 +16,48 @@
|
|||
|
||||
package org.springframework.instrument.classloading.oc4j;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
import org.easymock.AbstractMatcher;
|
||||
import org.easymock.MockControl;
|
||||
import org.springframework.test.AssertThrows;
|
||||
import static org.easymock.EasyMock.*;
|
||||
import static org.easymock.EasyMock.createMock;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
|
||||
import java.lang.instrument.ClassFileTransformer;
|
||||
import java.lang.instrument.IllegalClassFormatException;
|
||||
import java.security.ProtectionDomain;
|
||||
|
||||
import org.easymock.AbstractMatcher;
|
||||
import org.easymock.MockControl;
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
* Unit tests for the {@link OC4JClassPreprocessorAdapter} class.
|
||||
*
|
||||
* @author Rick Evans
|
||||
* @author Chris Beams
|
||||
*/
|
||||
public final class OC4JClassPreprocessorAdapterTests extends TestCase {
|
||||
public final class OC4JClassPreprocessorAdapterTests {
|
||||
|
||||
public void testClassNameIsUnMangledPriorToTransformation() throws Exception {
|
||||
@Test
|
||||
public void testClassNameIsUnMangledPriorToTransformation() throws IllegalClassFormatException {
|
||||
final byte[] classBytes = "CAFEBABE".getBytes();
|
||||
final ClassLoader classLoader = getClass().getClassLoader();
|
||||
|
||||
MockControl mockTransformer = MockControl.createControl(ClassFileTransformer.class);
|
||||
ClassFileTransformer transformer = (ClassFileTransformer) mockTransformer.getMock();
|
||||
ClassFileTransformer transformer = createMock(ClassFileTransformer.class);
|
||||
|
||||
transformer.transform(classLoader, "com/foo/Bar", null, null, classBytes);
|
||||
mockTransformer.setMatcher(new AbstractMatcher() {
|
||||
public boolean matches(Object[] expected, Object[] actual) {
|
||||
return expected[1].equals(actual[1]);
|
||||
}
|
||||
});
|
||||
mockTransformer.setReturnValue(classBytes);
|
||||
|
||||
mockTransformer.replay();
|
||||
expect(
|
||||
transformer.transform(eq(classLoader), eq("com/foo/Bar"), (Class<?>)isNull(), (ProtectionDomain)isNull(), isA(byte[].class))
|
||||
).andReturn(classBytes);
|
||||
replay(transformer);
|
||||
|
||||
OC4JClassPreprocessorAdapter processor = new OC4JClassPreprocessorAdapter(transformer);
|
||||
byte[] bytes = processor.processClass("com.foo.Bar", classBytes, 0, 0, null, classLoader);
|
||||
assertNotNull(bytes);
|
||||
|
||||
mockTransformer.verify();
|
||||
verify(transformer);
|
||||
}
|
||||
|
||||
public void testCtorWithNullClassFileTransformer() throws Exception {
|
||||
new AssertThrows(IllegalArgumentException.class) {
|
||||
public void test() throws Exception {
|
||||
new OC4JClassPreprocessorAdapter(null);
|
||||
}
|
||||
}.runTest();
|
||||
@Test(expected=IllegalArgumentException.class)
|
||||
public void testCtorWithNullClassFileTransformer() {
|
||||
new OC4JClassPreprocessorAdapter(null);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,30 +16,24 @@
|
|||
|
||||
package org.springframework.instrument.classloading.oc4j;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
import org.springframework.test.AssertThrows;
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
* Unit tests for the {@link OC4JLoadTimeWeaver} class.
|
||||
*
|
||||
* @author Rick Evans
|
||||
* @author Chris Beams
|
||||
*/
|
||||
public final class OC4JLoadTimeWeaverTests extends TestCase {
|
||||
public final class OC4JLoadTimeWeaverTests {
|
||||
|
||||
public void testCtorWithNullClassLoader() throws Exception {
|
||||
new AssertThrows(IllegalArgumentException.class) {
|
||||
public void test() throws Exception {
|
||||
new OC4JLoadTimeWeaver(null);
|
||||
}
|
||||
}.runTest();
|
||||
@Test(expected=IllegalArgumentException.class)
|
||||
public void testCtorWithNullClassLoader() {
|
||||
new OC4JLoadTimeWeaver(null);
|
||||
}
|
||||
|
||||
public void testAddTransformerWithNullTransformer() throws Exception {
|
||||
new AssertThrows(IllegalArgumentException.class) {
|
||||
public void test() throws Exception {
|
||||
@Test(expected=IllegalArgumentException.class)
|
||||
public void testAddTransformerWithNullTransformer() {
|
||||
new OC4JLoadTimeWeaver().addTransformer(null);
|
||||
}
|
||||
}.runTest();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue