From 57b5bdea2069de5b8e05a6950280bc315d21f2ee Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Thu, 11 Dec 2008 22:08:06 +0000 Subject: [PATCH] moving unit tests from .testsuite -> .aop --- .../annotation/ArgumentBindingTests.java | 57 +++++++++++++------ .../PointcutWithAnnotationArgument.java | 37 ------------ 2 files changed, 40 insertions(+), 54 deletions(-) rename {org.springframework.testsuite => org.springframework.aop}/src/test/java/org/springframework/aop/aspectj/annotation/ArgumentBindingTests.java (63%) delete mode 100644 org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/annotation/PointcutWithAnnotationArgument.java diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/annotation/ArgumentBindingTests.java b/org.springframework.aop/src/test/java/org/springframework/aop/aspectj/annotation/ArgumentBindingTests.java similarity index 63% rename from org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/annotation/ArgumentBindingTests.java rename to org.springframework.aop/src/test/java/org/springframework/aop/aspectj/annotation/ArgumentBindingTests.java index 4f53faaf70..e3f9c0037a 100644 --- a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/annotation/ArgumentBindingTests.java +++ b/org.springframework.aop/src/test/java/org/springframework/aop/aspectj/annotation/ArgumentBindingTests.java @@ -16,46 +16,48 @@ package org.springframework.aop.aspectj.annotation; -import java.lang.reflect.Method; +import static org.junit.Assert.*; -import junit.framework.TestCase; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.reflect.Method; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.junit.Test; import org.springframework.aop.aspectj.AspectJAdviceParameterNameDiscoverer; import org.springframework.beans.ITestBean; import org.springframework.beans.TestBean; -import org.springframework.test.AssertThrows; -import org.springframework.transaction.annotation.Transactional; /** * @author Adrian Colyer * @author Juergen Hoeller + * @author Chris Beams */ -public class ArgumentBindingTests extends TestCase { +public class ArgumentBindingTests { + @Test(expected=IllegalArgumentException.class) public void testBindingInPointcutUsedByAdvice() { TestBean tb = new TestBean(); AspectJProxyFactory proxyFactory = new AspectJProxyFactory(tb); proxyFactory.addAspect(NamedPointcutWithArgs.class); - final ITestBean proxiedTestBean = (ITestBean) proxyFactory.getProxy(); - new AssertThrows(IllegalArgumentException.class) { - public void test() throws Exception { - proxiedTestBean.setName("Supercalifragalisticexpialidocious"); - } - }.runTest(); + + ITestBean proxiedTestBean = (ITestBean) proxyFactory.getProxy(); + proxiedTestBean.setName("Supercalifragalisticexpialidocious"); // should throw } + @Test(expected=IllegalStateException.class) public void testAnnotationArgumentNameBinding() { TransactionalBean tb = new TransactionalBean(); AspectJProxyFactory proxyFactory = new AspectJProxyFactory(tb); proxyFactory.addAspect(PointcutWithAnnotationArgument.class); - final ITransactionalBean proxiedTestBean = (ITransactionalBean) proxyFactory.getProxy(); - new AssertThrows(IllegalStateException.class) { - public void test() throws Exception { - proxiedTestBean.doInTransaction(); - } - }.runTest(); + + ITransactionalBean proxiedTestBean = (ITransactionalBean) proxyFactory.getProxy(); + proxiedTestBean.doInTransaction(); // should throw } + @Test public void testParameterNameDiscoverWithReferencePointcut() throws Exception { AspectJAdviceParameterNameDiscoverer discoverer = new AspectJAdviceParameterNameDiscoverer("somepc(formal) && set(* *)"); @@ -86,3 +88,24 @@ public class ArgumentBindingTests extends TestCase { } } + +/** + * Represents Spring's Transactional annotation without actually introducing the dependency + */ +@Retention(RetentionPolicy.RUNTIME) +@interface Transactional { +} + +/** + * @author Juergen Hoeller + */ +@Aspect +class PointcutWithAnnotationArgument { + + @Around(value = "execution(* org.springframework..*.*(..)) && @annotation(transaction)") + public Object around(ProceedingJoinPoint pjp, Transactional transaction) throws Throwable { + System.out.println("Invoked with transaction " + transaction); + throw new IllegalStateException(); + } + +} diff --git a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/annotation/PointcutWithAnnotationArgument.java b/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/annotation/PointcutWithAnnotationArgument.java deleted file mode 100644 index 7996374ffa..0000000000 --- a/org.springframework.testsuite/src/test/java/org/springframework/aop/aspectj/annotation/PointcutWithAnnotationArgument.java +++ /dev/null @@ -1,37 +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.aop.aspectj.annotation; - -import org.aspectj.lang.ProceedingJoinPoint; -import org.aspectj.lang.annotation.Around; -import org.aspectj.lang.annotation.Aspect; - -import org.springframework.transaction.annotation.Transactional; - -/** - * @author Juergen Hoeller - */ -@Aspect -public class PointcutWithAnnotationArgument { - - @Around(value = "execution(* org.springframework..*.*(..)) && @annotation(transaction)") - public Object around(ProceedingJoinPoint pjp, Transactional transaction) throws Throwable { - System.out.println("Invoked with transaction " + transaction); - throw new IllegalStateException(); - } - -}