|
|
|
@ -21,6 +21,7 @@ import org.junit.jupiter.api.Test; |
|
|
|
import test.aop.PerTargetAspect; |
|
|
|
import test.aop.PerTargetAspect; |
|
|
|
|
|
|
|
|
|
|
|
import org.springframework.aop.Pointcut; |
|
|
|
import org.springframework.aop.Pointcut; |
|
|
|
|
|
|
|
import org.springframework.aop.aspectj.AspectJExpressionPointcut; |
|
|
|
import org.springframework.aop.aspectj.annotation.AbstractAspectJAdvisorFactoryTests.ExceptionAspect; |
|
|
|
import org.springframework.aop.aspectj.annotation.AbstractAspectJAdvisorFactoryTests.ExceptionAspect; |
|
|
|
|
|
|
|
|
|
|
|
import static org.assertj.core.api.Assertions.assertThat; |
|
|
|
import static org.assertj.core.api.Assertions.assertThat; |
|
|
|
@ -30,36 +31,43 @@ import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException |
|
|
|
* @since 2.0 |
|
|
|
* @since 2.0 |
|
|
|
* @author Rod Johnson |
|
|
|
* @author Rod Johnson |
|
|
|
* @author Chris Beams |
|
|
|
* @author Chris Beams |
|
|
|
|
|
|
|
* @author Sam Brannen |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
public class AspectMetadataTests { |
|
|
|
class AspectMetadataTests { |
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
|
public void testNotAnAspect() { |
|
|
|
void notAnAspect() { |
|
|
|
assertThatIllegalArgumentException().isThrownBy(() -> |
|
|
|
assertThatIllegalArgumentException().isThrownBy(() -> new AspectMetadata(String.class, "someBean")); |
|
|
|
new AspectMetadata(String.class,"someBean")); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
|
public void testSingletonAspect() { |
|
|
|
void singletonAspect() { |
|
|
|
AspectMetadata am = new AspectMetadata(ExceptionAspect.class,"someBean"); |
|
|
|
AspectMetadata am = new AspectMetadata(ExceptionAspect.class, "someBean"); |
|
|
|
assertThat(am.isPerThisOrPerTarget()).isFalse(); |
|
|
|
assertThat(am.isPerThisOrPerTarget()).isFalse(); |
|
|
|
assertThat(am.getPerClausePointcut()).isSameAs(Pointcut.TRUE); |
|
|
|
assertThat(am.getPerClausePointcut()).isSameAs(Pointcut.TRUE); |
|
|
|
assertThat(am.getAjType().getPerClause().getKind()).isEqualTo(PerClauseKind.SINGLETON); |
|
|
|
assertThat(am.getAjType().getPerClause().getKind()).isEqualTo(PerClauseKind.SINGLETON); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
|
public void testPerTargetAspect() { |
|
|
|
void perTargetAspect() { |
|
|
|
AspectMetadata am = new AspectMetadata(PerTargetAspect.class,"someBean"); |
|
|
|
AspectMetadata am = new AspectMetadata(PerTargetAspect.class, "someBean"); |
|
|
|
assertThat(am.isPerThisOrPerTarget()).isTrue(); |
|
|
|
assertThat(am.isPerThisOrPerTarget()).isTrue(); |
|
|
|
assertThat(am.getPerClausePointcut()).isNotSameAs(Pointcut.TRUE); |
|
|
|
assertThat(am.getPerClausePointcut()).isNotSameAs(Pointcut.TRUE); |
|
|
|
assertThat(am.getAjType().getPerClause().getKind()).isEqualTo(PerClauseKind.PERTARGET); |
|
|
|
assertThat(am.getAjType().getPerClause().getKind()).isEqualTo(PerClauseKind.PERTARGET); |
|
|
|
|
|
|
|
assertThat(am.getPerClausePointcut()).isInstanceOf(AspectJExpressionPointcut.class); |
|
|
|
|
|
|
|
assertThat(((AspectJExpressionPointcut) am.getPerClausePointcut()).getExpression()) |
|
|
|
|
|
|
|
.isEqualTo("execution(* *.getSpouse())"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
|
public void testPerThisAspect() { |
|
|
|
void perThisAspect() { |
|
|
|
AspectMetadata am = new AspectMetadata(PerThisAspect.class,"someBean"); |
|
|
|
AspectMetadata am = new AspectMetadata(PerThisAspect.class, "someBean"); |
|
|
|
assertThat(am.isPerThisOrPerTarget()).isTrue(); |
|
|
|
assertThat(am.isPerThisOrPerTarget()).isTrue(); |
|
|
|
assertThat(am.getPerClausePointcut()).isNotSameAs(Pointcut.TRUE); |
|
|
|
assertThat(am.getPerClausePointcut()).isNotSameAs(Pointcut.TRUE); |
|
|
|
assertThat(am.getAjType().getPerClause().getKind()).isEqualTo(PerClauseKind.PERTHIS); |
|
|
|
assertThat(am.getAjType().getPerClause().getKind()).isEqualTo(PerClauseKind.PERTHIS); |
|
|
|
|
|
|
|
assertThat(am.getPerClausePointcut()).isInstanceOf(AspectJExpressionPointcut.class); |
|
|
|
|
|
|
|
assertThat(((AspectJExpressionPointcut) am.getPerClausePointcut()).getExpression()) |
|
|
|
|
|
|
|
.isEqualTo("execution(* *.getSpouse())"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|