From 9ed180a80d24c04356dcab392a488f18b26987f5 Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Tue, 16 Dec 2008 20:01:48 +0000 Subject: [PATCH] prepping .intstrument.classloading unit tests for move from .testsuite -> .context --- .../InstrumentableClassLoaderTests.java | 7 ++- .../ReflectiveLoadTimeWeaverTests.java | 44 ++++++++---------- ...ceOverridingShadowingClassLoaderTests.java | 15 ++++-- .../GlassFishLoadTimeWeaverTests.java | 30 ++++++++---- .../OC4JClassPreprocessorAdapterTests.java | 46 +++++++++---------- .../oc4j/OC4JLoadTimeWeaverTests.java | 22 ++++----- 6 files changed, 88 insertions(+), 76 deletions(-) diff --git a/org.springframework.testsuite/src/test/java/org/springframework/instrument/classloading/InstrumentableClassLoaderTests.java b/org.springframework.testsuite/src/test/java/org/springframework/instrument/classloading/InstrumentableClassLoaderTests.java index 32c2f04d3a..8d26f6af12 100644 --- a/org.springframework.testsuite/src/test/java/org/springframework/instrument/classloading/InstrumentableClassLoaderTests.java +++ b/org.springframework.testsuite/src/test/java/org/springframework/instrument/classloading/InstrumentableClassLoaderTests.java @@ -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); diff --git a/org.springframework.testsuite/src/test/java/org/springframework/instrument/classloading/ReflectiveLoadTimeWeaverTests.java b/org.springframework.testsuite/src/test/java/org/springframework/instrument/classloading/ReflectiveLoadTimeWeaverTests.java index 8c367c9445..09644b02c0 100644 --- a/org.springframework.testsuite/src/test/java/org/springframework/instrument/classloading/ReflectiveLoadTimeWeaverTests.java +++ b/org.springframework.testsuite/src/test/java/org/springframework/instrument/classloading/ReflectiveLoadTimeWeaverTests.java @@ -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(); diff --git a/org.springframework.testsuite/src/test/java/org/springframework/instrument/classloading/ResourceOverridingShadowingClassLoaderTests.java b/org.springframework.testsuite/src/test/java/org/springframework/instrument/classloading/ResourceOverridingShadowingClassLoaderTests.java index 8a49d91ef9..a5a7fc2d41 100644 --- a/org.springframework.testsuite/src/test/java/org/springframework/instrument/classloading/ResourceOverridingShadowingClassLoaderTests.java +++ b/org.springframework.testsuite/src/test/java/org/springframework/instrument/classloading/ResourceOverridingShadowingClassLoaderTests.java @@ -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(); diff --git a/org.springframework.testsuite/src/test/java/org/springframework/instrument/classloading/glassfish/GlassFishLoadTimeWeaverTests.java b/org.springframework.testsuite/src/test/java/org/springframework/instrument/classloading/glassfish/GlassFishLoadTimeWeaverTests.java index 48cb0c1442..8e711908b7 100644 --- a/org.springframework.testsuite/src/test/java/org/springframework/instrument/classloading/glassfish/GlassFishLoadTimeWeaverTests.java +++ b/org.springframework.testsuite/src/test/java/org/springframework/instrument/classloading/glassfish/GlassFishLoadTimeWeaverTests.java @@ -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; + +// converting away from old-style EasyMock APIs was problematic with this class +@SuppressWarnings("deprecation") +public class GlassFishLoadTimeWeaverTests { - private MockControl loaderCtrl; + private MockControl 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]); diff --git a/org.springframework.testsuite/src/test/java/org/springframework/instrument/classloading/oc4j/OC4JClassPreprocessorAdapterTests.java b/org.springframework.testsuite/src/test/java/org/springframework/instrument/classloading/oc4j/OC4JClassPreprocessorAdapterTests.java index 0dd77d8efb..ea5ad9ed91 100644 --- a/org.springframework.testsuite/src/test/java/org/springframework/instrument/classloading/oc4j/OC4JClassPreprocessorAdapterTests.java +++ b/org.springframework.testsuite/src/test/java/org/springframework/instrument/classloading/oc4j/OC4JClassPreprocessorAdapterTests.java @@ -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(); - - 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); + ClassFileTransformer transformer = createMock(ClassFileTransformer.class); - 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); } } diff --git a/org.springframework.testsuite/src/test/java/org/springframework/instrument/classloading/oc4j/OC4JLoadTimeWeaverTests.java b/org.springframework.testsuite/src/test/java/org/springframework/instrument/classloading/oc4j/OC4JLoadTimeWeaverTests.java index 7b93287e2b..81b9d35b69 100644 --- a/org.springframework.testsuite/src/test/java/org/springframework/instrument/classloading/oc4j/OC4JLoadTimeWeaverTests.java +++ b/org.springframework.testsuite/src/test/java/org/springframework/instrument/classloading/oc4j/OC4JLoadTimeWeaverTests.java @@ -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(); } } -- GitLab