Browse Source

Polish tests in spring-aop

This commit polishes tests in spring-aop by using
OrderComparator.sort() and lambda expressions instead of anonymous
classes where feasible.

Closes gh-23458
pull/23530/head
lijuny 6 years ago committed by Sam Brannen
parent
commit
a0d50a546b
  1. 59
      spring-aop/src/test/java/org/springframework/aop/aspectj/MethodInvocationProceedingJoinPointTests.java
  2. 4
      spring-aop/src/test/java/org/springframework/aop/aspectj/annotation/AbstractAspectJAdvisorFactoryTests.java
  3. 5
      spring-aop/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJPrecedenceComparatorTests.java
  4. 7
      spring-aop/src/test/java/org/springframework/aop/framework/MethodInvocationTests.java
  5. 14
      spring-aop/src/test/java/org/springframework/aop/framework/NullPrimitiveTests.java
  6. 7
      spring-aop/src/test/java/org/springframework/aop/framework/ProxyFactoryTests.java
  7. 7
      spring-aop/src/test/java/org/springframework/aop/support/PointcutsTests.java
  8. 1
      spring-webflux/src/main/java/org/springframework/web/reactive/config/ViewResolverRegistry.java

59
spring-aop/src/test/java/org/springframework/aop/aspectj/MethodInvocationProceedingJoinPointTests.java

@ -129,15 +129,12 @@ public class MethodInvocationProceedingJoinPointTests {
final Object raw = new TestBean(); final Object raw = new TestBean();
ProxyFactory pf = new ProxyFactory(raw); ProxyFactory pf = new ProxyFactory(raw);
pf.addAdvisor(ExposeInvocationInterceptor.ADVISOR); pf.addAdvisor(ExposeInvocationInterceptor.ADVISOR);
pf.addAdvice(new MethodBeforeAdvice() { pf.addAdvice((MethodBeforeAdvice) (method, args, target) -> {
@Override SourceLocation sloc = AbstractAspectJAdvice.currentJoinPoint().getSourceLocation();
public void before(Method method, Object[] args, @Nullable Object target) throws Throwable { assertThat(AbstractAspectJAdvice.currentJoinPoint().getSourceLocation()).as("Same source location must be returned on subsequent requests").isEqualTo(sloc);
SourceLocation sloc = AbstractAspectJAdvice.currentJoinPoint().getSourceLocation(); assertThat(sloc.getWithinType()).isEqualTo(TestBean.class);
assertThat(AbstractAspectJAdvice.currentJoinPoint().getSourceLocation()).as("Same source location must be returned on subsequent requests").isEqualTo(sloc); assertThatExceptionOfType(UnsupportedOperationException.class).isThrownBy(sloc::getLine);
assertThat(sloc.getWithinType()).isEqualTo(TestBean.class); assertThatExceptionOfType(UnsupportedOperationException.class).isThrownBy(sloc::getFileName);
assertThatExceptionOfType(UnsupportedOperationException.class).isThrownBy(sloc::getLine);
assertThatExceptionOfType(UnsupportedOperationException.class).isThrownBy(sloc::getFileName);
}
}); });
ITestBean itb = (ITestBean) pf.getProxy(); ITestBean itb = (ITestBean) pf.getProxy();
// Any call will do // Any call will do
@ -149,15 +146,12 @@ public class MethodInvocationProceedingJoinPointTests {
final Object raw = new TestBean(); final Object raw = new TestBean();
ProxyFactory pf = new ProxyFactory(raw); ProxyFactory pf = new ProxyFactory(raw);
pf.addAdvisor(ExposeInvocationInterceptor.ADVISOR); pf.addAdvisor(ExposeInvocationInterceptor.ADVISOR);
pf.addAdvice(new MethodBeforeAdvice() { pf.addAdvice((MethodBeforeAdvice) (method, args, target) -> {
@Override StaticPart staticPart = AbstractAspectJAdvice.currentJoinPoint().getStaticPart();
public void before(Method method, Object[] args, @Nullable Object target) throws Throwable { assertThat(AbstractAspectJAdvice.currentJoinPoint().getStaticPart()).as("Same static part must be returned on subsequent requests").isEqualTo(staticPart);
StaticPart staticPart = AbstractAspectJAdvice.currentJoinPoint().getStaticPart(); assertThat(staticPart.getKind()).isEqualTo(ProceedingJoinPoint.METHOD_EXECUTION);
assertThat(AbstractAspectJAdvice.currentJoinPoint().getStaticPart()).as("Same static part must be returned on subsequent requests").isEqualTo(staticPart); assertThat(staticPart.getSignature()).isSameAs(AbstractAspectJAdvice.currentJoinPoint().getSignature());
assertThat(staticPart.getKind()).isEqualTo(ProceedingJoinPoint.METHOD_EXECUTION); assertThat(staticPart.getSourceLocation()).isEqualTo(AbstractAspectJAdvice.currentJoinPoint().getSourceLocation());
assertThat(staticPart.getSignature()).isSameAs(AbstractAspectJAdvice.currentJoinPoint().getSignature());
assertThat(staticPart.getSourceLocation()).isEqualTo(AbstractAspectJAdvice.currentJoinPoint().getSourceLocation());
}
}); });
ITestBean itb = (ITestBean) pf.getProxy(); ITestBean itb = (ITestBean) pf.getProxy();
// Any call will do // Any call will do
@ -169,22 +163,19 @@ public class MethodInvocationProceedingJoinPointTests {
final Object raw = new TestBean(); final Object raw = new TestBean();
ProxyFactory pf = new ProxyFactory(raw); ProxyFactory pf = new ProxyFactory(raw);
pf.addAdvisor(ExposeInvocationInterceptor.ADVISOR); pf.addAdvisor(ExposeInvocationInterceptor.ADVISOR);
pf.addAdvice(new MethodBeforeAdvice() { pf.addAdvice((MethodBeforeAdvice) (method, args, target) -> {
@Override // makeEncSJP, although meant for computing the enclosing join point,
public void before(Method method, Object[] args, @Nullable Object target) throws Throwable { // it serves our purpose here
// makeEncSJP, although meant for computing the enclosing join point, StaticPart aspectJVersionJp = Factory.makeEncSJP(method);
// it serves our purpose here JoinPoint jp = AbstractAspectJAdvice.currentJoinPoint();
JoinPoint.StaticPart aspectJVersionJp = Factory.makeEncSJP(method);
JoinPoint jp = AbstractAspectJAdvice.currentJoinPoint(); assertThat(jp.getSignature().toLongString()).isEqualTo(aspectJVersionJp.getSignature().toLongString());
assertThat(jp.getSignature().toShortString()).isEqualTo(aspectJVersionJp.getSignature().toShortString());
assertThat(jp.getSignature().toLongString()).isEqualTo(aspectJVersionJp.getSignature().toLongString()); assertThat(jp.getSignature().toString()).isEqualTo(aspectJVersionJp.getSignature().toString());
assertThat(jp.getSignature().toShortString()).isEqualTo(aspectJVersionJp.getSignature().toShortString());
assertThat(jp.getSignature().toString()).isEqualTo(aspectJVersionJp.getSignature().toString()); assertThat(jp.toLongString()).isEqualTo(aspectJVersionJp.toLongString());
assertThat(jp.toShortString()).isEqualTo(aspectJVersionJp.toShortString());
assertThat(jp.toLongString()).isEqualTo(aspectJVersionJp.toLongString()); assertThat(jp.toString()).isEqualTo(aspectJVersionJp.toString());
assertThat(jp.toShortString()).isEqualTo(aspectJVersionJp.toShortString());
assertThat(jp.toString()).isEqualTo(aspectJVersionJp.toString());
}
}); });
ITestBean itb = (ITestBean) pf.getProxy(); ITestBean itb = (ITestBean) pf.getProxy();
itb.getAge(); itb.getAge();

4
spring-aop/src/test/java/org/springframework/aop/aspectj/annotation/AbstractAspectJAdvisorFactoryTests.java

@ -144,7 +144,7 @@ public abstract class AbstractAspectJAdvisorFactoryTests {
aspect2.setOrder(5); aspect2.setOrder(5);
advisors.addAll( advisors.addAll(
getFixture().getAdvisors(new SingletonMetadataAwareAspectInstanceFactory(aspect2, "someBean2"))); getFixture().getAdvisors(new SingletonMetadataAwareAspectInstanceFactory(aspect2, "someBean2")));
Collections.sort(advisors, new OrderComparator()); OrderComparator.sort(advisors);
TestBean itb = (TestBean) createProxy(target, advisors, TestBean.class); TestBean itb = (TestBean) createProxy(target, advisors, TestBean.class);
assertThat(itb.getAge()).as("Around advice must NOT apply").isEqualTo(realAge); assertThat(itb.getAge()).as("Around advice must NOT apply").isEqualTo(realAge);
@ -170,7 +170,7 @@ public abstract class AbstractAspectJAdvisorFactoryTests {
PerTargetAspectWithOrderAnnotation5 aspect2 = new PerTargetAspectWithOrderAnnotation5(); PerTargetAspectWithOrderAnnotation5 aspect2 = new PerTargetAspectWithOrderAnnotation5();
advisors.addAll( advisors.addAll(
getFixture().getAdvisors(new SingletonMetadataAwareAspectInstanceFactory(aspect2, "someBean2"))); getFixture().getAdvisors(new SingletonMetadataAwareAspectInstanceFactory(aspect2, "someBean2")));
Collections.sort(advisors, new OrderComparator()); OrderComparator.sort(advisors);
TestBean itb = (TestBean) createProxy(target, advisors, TestBean.class); TestBean itb = (TestBean) createProxy(target, advisors, TestBean.class);
assertThat(itb.getAge()).as("Around advice must NOT apply").isEqualTo(realAge); assertThat(itb.getAge()).as("Around advice must NOT apply").isEqualTo(realAge);

5
spring-aop/src/test/java/org/springframework/aop/aspectj/autoproxy/AspectJPrecedenceComparatorTests.java

@ -195,10 +195,7 @@ public class AspectJPrecedenceComparatorTests {
} }
private Advisor createSpringAOPAfterAdvice(int order) { private Advisor createSpringAOPAfterAdvice(int order) {
AfterReturningAdvice advice = new AfterReturningAdvice() { AfterReturningAdvice advice = (returnValue, method, args, target) -> {
@Override
public void afterReturning(@Nullable Object returnValue, Method method, Object[] args, @Nullable Object target) throws Throwable {
}
}; };
DefaultPointcutAdvisor advisor = new DefaultPointcutAdvisor(this.anyOldPointcut, advice); DefaultPointcutAdvisor advisor = new DefaultPointcutAdvisor(this.anyOldPointcut, advice);
advisor.setOrder(order); advisor.setOrder(order);

7
spring-aop/src/test/java/org/springframework/aop/framework/MethodInvocationTests.java

@ -41,12 +41,7 @@ public class MethodInvocationTests {
Object proxy = new Object(); Object proxy = new Object();
final Object returnValue = new Object(); final Object returnValue = new Object();
List<Object> is = new LinkedList<>(); List<Object> is = new LinkedList<>();
is.add(new MethodInterceptor() { is.add((MethodInterceptor) invocation -> returnValue);
@Override
public Object invoke(MethodInvocation invocation) throws Throwable {
return returnValue;
}
});
ReflectiveMethodInvocation invocation = new ReflectiveMethodInvocation(proxy, null, //? ReflectiveMethodInvocation invocation = new ReflectiveMethodInvocation(proxy, null, //?
m, null, null, is // list m, null, null, is // list
); );

14
spring-aop/src/test/java/org/springframework/aop/framework/NullPrimitiveTests.java

@ -48,12 +48,7 @@ public class NullPrimitiveTests {
SimpleFoo target = new SimpleFoo(); SimpleFoo target = new SimpleFoo();
ProxyFactory factory = new ProxyFactory(target); ProxyFactory factory = new ProxyFactory(target);
factory.addAdvice(new MethodInterceptor() { factory.addAdvice((MethodInterceptor) invocation -> null);
@Override
public Object invoke(MethodInvocation invocation) throws Throwable {
return null;
}
});
Foo foo = (Foo) factory.getProxy(); Foo foo = (Foo) factory.getProxy();
@ -73,12 +68,7 @@ public class NullPrimitiveTests {
Bar target = new Bar(); Bar target = new Bar();
ProxyFactory factory = new ProxyFactory(target); ProxyFactory factory = new ProxyFactory(target);
factory.addAdvice(new MethodInterceptor() { factory.addAdvice((MethodInterceptor) invocation -> null);
@Override
public Object invoke(MethodInvocation invocation) throws Throwable {
return null;
}
});
Bar bar = (Bar) factory.getProxy(); Bar bar = (Bar) factory.getProxy();

7
spring-aop/src/test/java/org/springframework/aop/framework/ProxyFactoryTests.java

@ -170,11 +170,8 @@ public class ProxyFactoryTests {
@Test @Test
public void testAddRepeatedInterface() { public void testAddRepeatedInterface() {
TimeStamped tst = new TimeStamped() { TimeStamped tst = () -> {
@Override throw new UnsupportedOperationException("getTimeStamp");
public long getTimeStamp() {
throw new UnsupportedOperationException("getTimeStamp");
}
}; };
ProxyFactory pf = new ProxyFactory(tst); ProxyFactory pf = new ProxyFactory(tst);
// We've already implicitly added this interface. // We've already implicitly added this interface.

7
spring-aop/src/test/java/org/springframework/aop/support/PointcutsTests.java

@ -56,12 +56,7 @@ public class PointcutsTests {
public static Pointcut allTestBeanMethodsPointcut = new StaticMethodMatcherPointcut() { public static Pointcut allTestBeanMethodsPointcut = new StaticMethodMatcherPointcut() {
@Override @Override
public ClassFilter getClassFilter() { public ClassFilter getClassFilter() {
return new ClassFilter() { return type -> type.equals(TestBean.class);
@Override
public boolean matches(Class<?> clazz) {
return clazz.equals(TestBean.class);
}
};
} }
@Override @Override

1
spring-webflux/src/main/java/org/springframework/web/reactive/config/ViewResolverRegistry.java

@ -182,5 +182,4 @@ public class ViewResolverRegistry {
getViewResolver(); getViewResolver();
} }
} }
} }

Loading…
Cancel
Save