diff --git a/org.springframework.aop/src/test/java/example/annotations/EmptySpringAnnotation.java b/org.springframework.aop/src/test/java/example/annotations/EmptySpringAnnotation.java index 455352c8d13..daf8aa488f8 100644 --- a/org.springframework.aop/src/test/java/example/annotations/EmptySpringAnnotation.java +++ b/org.springframework.aop/src/test/java/example/annotations/EmptySpringAnnotation.java @@ -1,6 +1,19 @@ -/** - * +/* + * Copyright 2002-2006 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ + package example.annotations; import java.lang.annotation.ElementType; diff --git a/org.springframework.testsuite/src/test/java/org/springframework/core/annotation/AnnotationUtilsTests.java b/org.springframework.core/src/test/java/org/springframework/core/annotation/AnnotationUtilsTests.java similarity index 94% rename from org.springframework.testsuite/src/test/java/org/springframework/core/annotation/AnnotationUtilsTests.java rename to org.springframework.core/src/test/java/org/springframework/core/annotation/AnnotationUtilsTests.java index 348bea9833a..7c142146ab7 100644 --- a/org.springframework.testsuite/src/test/java/org/springframework/core/annotation/AnnotationUtilsTests.java +++ b/org.springframework.core/src/test/java/org/springframework/core/annotation/AnnotationUtilsTests.java @@ -16,26 +16,26 @@ package org.springframework.core.annotation; -import static org.springframework.core.annotation.AnnotationUtils.findAnnotation; -import static org.springframework.core.annotation.AnnotationUtils.findAnnotationDeclaringClass; -import static org.springframework.core.annotation.AnnotationUtils.getAnnotation; -import static org.springframework.core.annotation.AnnotationUtils.isAnnotationDeclaredLocally; -import static org.springframework.core.annotation.AnnotationUtils.isAnnotationInherited; +import static org.junit.Assert.*; +import static org.springframework.core.annotation.AnnotationUtils.*; +import java.lang.annotation.Inherited; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; import java.lang.reflect.Method; -import junit.framework.TestCase; - +import org.junit.Test; import org.springframework.core.Ordered; -import org.springframework.transaction.annotation.Transactional; /** * @author Rod Johnson * @author Juergen Hoeller * @author Sam Brannen + * @author Chris Beams */ -public class AnnotationUtilsTests extends TestCase { +public class AnnotationUtilsTests { + @Test public void testFindMethodAnnotationOnLeaf() throws SecurityException, NoSuchMethodException { final Method m = Leaf.class.getMethod("annotatedOnLeaf", (Class[]) null); @@ -44,6 +44,7 @@ public class AnnotationUtilsTests extends TestCase { assertNotNull(findAnnotation(m, Order.class)); } + @Test public void testFindMethodAnnotationOnRoot() throws SecurityException, NoSuchMethodException { final Method m = Leaf.class.getMethod("annotatedOnRoot", (Class[]) null); @@ -52,6 +53,7 @@ public class AnnotationUtilsTests extends TestCase { assertNotNull(findAnnotation(m, Order.class)); } + @Test public void testFindMethodAnnotationOnRootButOverridden() throws SecurityException, NoSuchMethodException { final Method m = Leaf.class.getMethod("overrideWithoutNewAnnotation", (Class[]) null); @@ -60,12 +62,14 @@ public class AnnotationUtilsTests extends TestCase { assertNotNull(findAnnotation(m, Order.class)); } + @Test public void testFindMethodAnnotationNotAnnotated() throws SecurityException, NoSuchMethodException { final Method m = Leaf.class.getMethod("notAnnotated", (Class[]) null); assertNull(findAnnotation(m, Order.class)); } + @Test public void testFindMethodAnnotationOnBridgeMethod() throws Exception { final Method m = SimpleFoo.class.getMethod("something", Object.class); @@ -87,6 +91,7 @@ public class AnnotationUtilsTests extends TestCase { // assertNotNull(o); // } + @Test public void testFindAnnotationDeclaringClass() throws Exception { // no class-level annotation @@ -113,6 +118,7 @@ public class AnnotationUtilsTests extends TestCase { SubNonInheritedAnnotationClass.class)); } + @Test public void testIsAnnotationDeclaredLocally() throws Exception { // no class-level annotation @@ -132,6 +138,7 @@ public class AnnotationUtilsTests extends TestCase { assertFalse(isAnnotationDeclaredLocally(Order.class, SubNonInheritedAnnotationClass.class)); } + @Test public void testIsAnnotationInherited() throws Exception { // no class-level annotation @@ -154,6 +161,7 @@ public class AnnotationUtilsTests extends TestCase { assertFalse(isAnnotationInherited(Order.class, SubNonInheritedAnnotationClass.class)); } + @Test public void testGetValueFromAnnotation() throws Exception { final Method method = SimpleFoo.class.getMethod("something", Object.class); @@ -163,6 +171,7 @@ public class AnnotationUtilsTests extends TestCase { assertEquals(1, AnnotationUtils.getValue(order)); } + @Test public void testGetDefaultValueFromAnnotation() throws Exception { final Method method = SimpleFoo.class.getMethod("something", Object.class); @@ -172,6 +181,7 @@ public class AnnotationUtilsTests extends TestCase { assertEquals(Ordered.LOWEST_PRECEDENCE, AnnotationUtils.getDefaultValue(order)); } + @Test public void testGetDefaultValueFromAnnotationType() throws Exception { assertEquals(Ordered.LOWEST_PRECEDENCE, AnnotationUtils.getDefaultValue(Order.class, AnnotationUtils.VALUE)); @@ -277,3 +287,9 @@ public class AnnotationUtilsTests extends TestCase { } } + +@Retention(RetentionPolicy.RUNTIME) +@Inherited +@interface Transactional { + +} diff --git a/org.springframework.testsuite/src/test/java/org/springframework/core/io/ResourceTests.java b/org.springframework.core/src/test/java/org/springframework/core/io/ResourceTests.java similarity index 88% rename from org.springframework.testsuite/src/test/java/org/springframework/core/io/ResourceTests.java rename to org.springframework.core/src/test/java/org/springframework/core/io/ResourceTests.java index 125d1d770e0..97e498bfbdd 100644 --- a/org.springframework.testsuite/src/test/java/org/springframework/core/io/ResourceTests.java +++ b/org.springframework.core/src/test/java/org/springframework/core/io/ResourceTests.java @@ -16,10 +16,7 @@ package org.springframework.core.io; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; +import static org.junit.Assert.*; import java.io.ByteArrayInputStream; import java.io.FileNotFoundException; @@ -30,9 +27,7 @@ import java.util.HashSet; import org.junit.Ignore; import org.junit.Test; -import org.springframework.mock.web.MockServletContext; import org.springframework.util.FileCopyUtils; -import org.springframework.web.context.support.ServletContextResource; /** * @author Juergen Hoeller @@ -94,7 +89,7 @@ public class ResourceTests { assertEquals(resource, resource3); // Check whether equal/hashCode works in a HashSet. - HashSet resources = new HashSet(); + HashSet resources = new HashSet(); resources.add(resource); resources.add(resource2); assertEquals(1, resources.size()); @@ -135,14 +130,6 @@ public class ResourceTests { assertEquals(resource2, new UrlResource("file:core/../core/io/./Resource.class")); } - @Test - public void testServletContextResource() throws IOException { - MockServletContext sc = new MockServletContext(); - Resource resource = new ServletContextResource(sc, "org/springframework/core/io/Resource.class"); - doTestResource(resource); - assertEquals(resource, new ServletContextResource(sc, "org/springframework/core/../core/io/./Resource.class")); - } - private void doTestResource(Resource resource) throws IOException { assertEquals("Resource.class", resource.getFilename()); assertTrue(resource.getURL().getFile().endsWith("Resource.class")); @@ -186,14 +173,6 @@ public class ResourceTests { assertEquals(new UrlResource("file:dir/subdir"), relative); } - @Test - public void testServletContextResourceWithRelativePath() throws IOException { - MockServletContext sc = new MockServletContext(); - Resource resource = new ServletContextResource(sc, "dir/"); - Resource relative = resource.createRelative("subdir"); - assertEquals(new ServletContextResource(sc, "dir/subdir"), relative); - } - /* * @Test public void testNonFileResourceExists() throws Exception { diff --git a/org.springframework.testsuite/src/test/java/org/springframework/core/io/support/PathMatchingResourcePatternResolverTests.java b/org.springframework.core/src/test/java/org/springframework/core/io/support/PathMatchingResourcePatternResolverTests.java similarity index 90% rename from org.springframework.testsuite/src/test/java/org/springframework/core/io/support/PathMatchingResourcePatternResolverTests.java rename to org.springframework.core/src/test/java/org/springframework/core/io/support/PathMatchingResourcePatternResolverTests.java index a6d91b7e0fa..0db7b301ff5 100644 --- a/org.springframework.testsuite/src/test/java/org/springframework/core/io/support/PathMatchingResourcePatternResolverTests.java +++ b/org.springframework.core/src/test/java/org/springframework/core/io/support/PathMatchingResourcePatternResolverTests.java @@ -35,6 +35,7 @@ import org.springframework.core.io.Resource; * * @author Oliver Hutchison * @author Juergen Hoeller + * @author Chris Beams * @since 17.11.2004 */ public class PathMatchingResourcePatternResolverTests { @@ -49,10 +50,11 @@ public class PathMatchingResourcePatternResolverTests { private static final String[] TEST_CLASSES_IN_CORE_IO_SUPPORT = new String[] {"PathMatchingResourcePatternResolverTests.class"}; - private static final String[] CLASSES_IN_AOPALLIANCE = - new String[] {"Advice.class", "AspectException.class", "ConstructorInterceptor.class", - "ConstructorInvocation.class", "Interceptor.class", "Invocation.class", - "Joinpoint.class", "MethodInterceptor.class", "MethodInvocation.class"}; + private static final String[] CLASSES_IN_COMMONSLOGGING = + new String[] {"Log.class", "LogConfigurationException.class", "LogFactory.class", + "LogFactory$1.class", "LogFactory$2.class", "LogFactory$3.class", + "LogFactory$4.class", "LogFactory$5.class", "LogFactory$6.class", + "LogSource.class"}; private PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); @@ -101,14 +103,14 @@ public class PathMatchingResourcePatternResolverTests { @Test public void testClasspathWithPatternInJar() throws IOException { - Resource[] resources = resolver.getResources("classpath:org/aopalliance/**/*.class"); - assertProtocolAndFilenames(resources, "jar", CLASSES_IN_AOPALLIANCE); + Resource[] resources = resolver.getResources("classpath:org/apache/commons/logging/*.class"); + assertProtocolAndFilenames(resources, "jar", CLASSES_IN_COMMONSLOGGING); } @Test public void testClasspathStartWithPatternInJar() throws IOException { - Resource[] resources = resolver.getResources("classpath*:org/aopalliance/**/*.class"); - assertProtocolAndFilenames(resources, "jar", CLASSES_IN_AOPALLIANCE); + Resource[] resources = resolver.getResources("classpath*:org/apache/commons/logging/*.class"); + assertProtocolAndFilenames(resources, "jar", CLASSES_IN_COMMONSLOGGING); } private void assertProtocolAndFilename(Resource resource, String urlProtocol, String fileName) throws IOException { diff --git a/org.springframework.testsuite/src/test/java/org/springframework/context/annotation/InvalidConstructorTestBeanNameGenerator.java b/org.springframework.testsuite/src/test/java/org/springframework/context/annotation/InvalidConstructorTestBeanNameGenerator.java deleted file mode 100644 index f79335ecfcc..00000000000 --- a/org.springframework.testsuite/src/test/java/org/springframework/context/annotation/InvalidConstructorTestBeanNameGenerator.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright 2002-2007 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.context.annotation; - -import org.springframework.beans.factory.config.BeanDefinition; -import org.springframework.beans.factory.support.BeanDefinitionRegistry; -import org.springframework.beans.factory.support.BeanNameGenerator; - -/** - * @author Mark Fisher - */ -public class InvalidConstructorTestBeanNameGenerator implements BeanNameGenerator { - - public InvalidConstructorTestBeanNameGenerator(String s) { - // a no-arg constructor is required - } - - public String generateBeanName(BeanDefinition definition, BeanDefinitionRegistry registry) { - return null; - } - -} diff --git a/org.springframework.testsuite/src/test/java/org/springframework/core/task/MockRunnable.java b/org.springframework.testsuite/src/test/java/org/springframework/core/task/MockRunnable.java deleted file mode 100644 index 8aa2d639546..00000000000 --- a/org.springframework.testsuite/src/test/java/org/springframework/core/task/MockRunnable.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright 2002-2007 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.core.task; - -/** - * @author Juergen Hoeller - */ -public class MockRunnable implements Runnable { - - private boolean executed = false; - - public void run() { - this.executed = true; - } - - public boolean wasExecuted() { - return this.executed; - } - -} diff --git a/org.springframework.testsuite/src/test/java/org/springframework/core/type/ClassloadingAssertions.java b/org.springframework.testsuite/src/test/java/org/springframework/core/type/ClassloadingAssertions.java deleted file mode 100644 index 089c6858559..00000000000 --- a/org.springframework.testsuite/src/test/java/org/springframework/core/type/ClassloadingAssertions.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright 2002-2007 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.core.type; - -import java.lang.reflect.Method; - -import junit.framework.TestCase; - -import org.springframework.util.ClassUtils; -import org.springframework.util.ReflectionUtils; - -/** - * - * @author Ramnivas Laddad - * - */ -public class ClassloadingAssertions { - public static boolean isClassLoaded(String className) { - ClassLoader cl = ClassUtils.getDefaultClassLoader(); - Method findLoadeClassMethod = ReflectionUtils.findMethod(cl.getClass(), "findLoadedClass", new Class[]{String.class}); - findLoadeClassMethod.setAccessible(true); - Class loadedClass = (Class)ReflectionUtils.invokeMethod(findLoadeClassMethod, cl, new Object[]{className}); - return loadedClass != null; - } - - public static void assertClassLoaded(String className) { - } - - public static void assertClassNotLoaded(String className) { - TestCase.assertFalse("Class shouldn't have been loaded", isClassLoaded(className)); - } -} diff --git a/org.springframework.web/src/test/java/org/springframework/web/context/support/ResourceTests.java b/org.springframework.web/src/test/java/org/springframework/web/context/support/ResourceTests.java new file mode 100644 index 00000000000..fae23ee85c5 --- /dev/null +++ b/org.springframework.web/src/test/java/org/springframework/web/context/support/ResourceTests.java @@ -0,0 +1,47 @@ +package org.springframework.web.context.support; + +import static org.junit.Assert.*; + +import java.io.IOException; + +import org.junit.Test; +import org.springframework.core.io.Resource; +import org.springframework.mock.web.MockServletContext; + +/** + * @author Chris Beams + * @see org.springframework.core.io.ResourceTests + */ +public class ResourceTests { + + @Test + public void testServletContextResource() throws IOException { + MockServletContext sc = new MockServletContext(); + Resource resource = new ServletContextResource(sc, "org/springframework/core/io/Resource.class"); + doTestResource(resource); + assertEquals(resource, new ServletContextResource(sc, "org/springframework/core/../core/io/./Resource.class")); + } + + @Test + public void testServletContextResourceWithRelativePath() throws IOException { + MockServletContext sc = new MockServletContext(); + Resource resource = new ServletContextResource(sc, "dir/"); + Resource relative = resource.createRelative("subdir"); + assertEquals(new ServletContextResource(sc, "dir/subdir"), relative); + } + + private void doTestResource(Resource resource) throws IOException { + assertEquals("Resource.class", resource.getFilename()); + assertTrue(resource.getURL().getFile().endsWith("Resource.class")); + + Resource relative1 = resource.createRelative("ClassPathResource.class"); + assertEquals("ClassPathResource.class", relative1.getFilename()); + assertTrue(relative1.getURL().getFile().endsWith("ClassPathResource.class")); + assertTrue(relative1.exists()); + + Resource relative2 = resource.createRelative("support/ResourcePatternResolver.class"); + assertEquals("ResourcePatternResolver.class", relative2.getFilename()); + assertTrue(relative2.getURL().getFile().endsWith("ResourcePatternResolver.class")); + assertTrue(relative2.exists()); + } +}