use of cn.taketoday.aop.Pointcut in project today-framework by TAKETODAY.
the class AnnotationMatchingPointcutTests method methodLevelPointcuts.
@Test
void methodLevelPointcuts() {
Pointcut pointcut1 = new AnnotationMatchingPointcut(null, Qualifier.class, true);
Pointcut pointcut2 = new AnnotationMatchingPointcut(null, Qualifier.class, true);
Pointcut pointcut3 = new AnnotationMatchingPointcut(null, Qualifier.class);
assertThat(pointcut1.getClassFilter().getClass().getSimpleName()).isEqualTo("AnnotationCandidateClassFilter");
assertThat(pointcut2.getClassFilter().getClass().getSimpleName()).isEqualTo("AnnotationCandidateClassFilter");
assertThat(pointcut3.getClassFilter().getClass().getSimpleName()).isEqualTo("AnnotationCandidateClassFilter");
assertThat(pointcut1.getClassFilter().toString()).contains(Qualifier.class.getName());
assertThat(pointcut1.getMethodMatcher().getClass()).isEqualTo(AnnotationMethodMatcher.class);
assertThat(pointcut2.getMethodMatcher().getClass()).isEqualTo(AnnotationMethodMatcher.class);
assertThat(pointcut3.getMethodMatcher().getClass()).isEqualTo(AnnotationMethodMatcher.class);
assertThat(pointcut1).isEqualTo(pointcut2);
assertThat(pointcut1).isNotEqualTo(pointcut3);
assertThat(pointcut1.hashCode()).isEqualTo(pointcut2.hashCode());
// #1 and #3 have equivalent hash codes even though equals() returns false.
assertThat(pointcut1.hashCode()).isEqualTo(pointcut3.hashCode());
assertThat(pointcut1.toString()).isEqualTo(pointcut2.toString());
}
use of cn.taketoday.aop.Pointcut in project today-framework by TAKETODAY.
the class AnnotationMatchingPointcutTests method classLevelAndMethodLevelPointcuts.
@Test
void classLevelAndMethodLevelPointcuts() {
Pointcut pointcut1 = new AnnotationMatchingPointcut(Qualifier.class, Qualifier.class, true);
Pointcut pointcut2 = new AnnotationMatchingPointcut(Qualifier.class, Qualifier.class, true);
Pointcut pointcut3 = new AnnotationMatchingPointcut(Qualifier.class, Qualifier.class);
assertThat(pointcut1.getClassFilter().getClass()).isEqualTo(AnnotationClassFilter.class);
assertThat(pointcut2.getClassFilter().getClass()).isEqualTo(AnnotationClassFilter.class);
assertThat(pointcut3.getClassFilter().getClass()).isEqualTo(AnnotationClassFilter.class);
assertThat(pointcut1.getClassFilter().toString()).contains(Qualifier.class.getName());
assertThat(pointcut1.getMethodMatcher().getClass()).isEqualTo(AnnotationMethodMatcher.class);
assertThat(pointcut2.getMethodMatcher().getClass()).isEqualTo(AnnotationMethodMatcher.class);
assertThat(pointcut3.getMethodMatcher().getClass()).isEqualTo(AnnotationMethodMatcher.class);
assertThat(pointcut1.getMethodMatcher().toString()).contains(Qualifier.class.getName());
assertThat(pointcut1).isEqualTo(pointcut2);
assertThat(pointcut1).isNotEqualTo(pointcut3);
assertThat(pointcut1.hashCode()).isEqualTo(pointcut2.hashCode());
// #1 and #3 have equivalent hash codes even though equals() returns false.
assertThat(pointcut1.hashCode()).isEqualTo(pointcut3.hashCode());
assertThat(pointcut1.toString()).isEqualTo(pointcut2.toString());
}
use of cn.taketoday.aop.Pointcut in project today-framework by TAKETODAY.
the class PointcutsTests method testUnionOfAllSettersAndSubclassSetters.
/**
* Tests vertical composition. First pointcut matches all setters.
* Second one matches all getters in the MyTestBean class. TestBean getters shouldn't pass.
*/
@Test
public void testUnionOfAllSettersAndSubclassSetters() {
assertThat(Pointcuts.matches(myTestBeanSetterPointcut, TEST_BEAN_SET_AGE, TestBean.class, 6)).isFalse();
assertThat(Pointcuts.matches(myTestBeanSetterPointcut, TEST_BEAN_SET_AGE, MyTestBean.class, 6)).isTrue();
assertThat(Pointcuts.matches(myTestBeanSetterPointcut, TEST_BEAN_GET_AGE, TestBean.class)).isFalse();
Pointcut union = Pointcuts.union(myTestBeanSetterPointcut, allClassGetterPointcut);
assertThat(Pointcuts.matches(union, TEST_BEAN_GET_AGE, TestBean.class)).isTrue();
assertThat(Pointcuts.matches(union, TEST_BEAN_GET_AGE, MyTestBean.class)).isTrue();
// Still doesn't match superclass setter
assertThat(Pointcuts.matches(union, TEST_BEAN_SET_AGE, MyTestBean.class, 6)).isTrue();
assertThat(Pointcuts.matches(union, TEST_BEAN_SET_AGE, TestBean.class, 6)).isFalse();
}
use of cn.taketoday.aop.Pointcut in project today-framework by TAKETODAY.
the class AnnotationMatchingPointcutTests method classLevelPointcuts.
@Test
void classLevelPointcuts() {
Pointcut pointcut1 = new AnnotationMatchingPointcut(Qualifier.class, true);
Pointcut pointcut2 = new AnnotationMatchingPointcut(Qualifier.class, true);
Pointcut pointcut3 = new AnnotationMatchingPointcut(Qualifier.class);
assertThat(pointcut1.getClassFilter().getClass()).isEqualTo(AnnotationClassFilter.class);
assertThat(pointcut2.getClassFilter().getClass()).isEqualTo(AnnotationClassFilter.class);
assertThat(pointcut3.getClassFilter().getClass()).isEqualTo(AnnotationClassFilter.class);
assertThat(pointcut1.getClassFilter().toString()).contains(Qualifier.class.getName());
assertThat(pointcut1.getMethodMatcher()).isEqualTo(MethodMatcher.TRUE);
assertThat(pointcut2.getMethodMatcher()).isEqualTo(MethodMatcher.TRUE);
assertThat(pointcut3.getMethodMatcher()).isEqualTo(MethodMatcher.TRUE);
assertThat(pointcut1).isEqualTo(pointcut2);
assertThat(pointcut1).isNotEqualTo(pointcut3);
assertThat(pointcut1.hashCode()).isEqualTo(pointcut2.hashCode());
// #1 and #3 have equivalent hash codes even though equals() returns false.
assertThat(pointcut1.hashCode()).isEqualTo(pointcut3.hashCode());
assertThat(pointcut1.toString()).isEqualTo(pointcut2.toString());
}
use of cn.taketoday.aop.Pointcut in project today-framework by TAKETODAY.
the class ComposablePointcutTests method testMatchAll.
@Test
public void testMatchAll() throws NoSuchMethodException {
Pointcut pc = new ComposablePointcut();
assertThat(pc.getClassFilter().matches(Object.class)).isTrue();
assertThat(pc.getMethodMatcher().matches(Object.class.getMethod("hashCode"), Exception.class)).isTrue();
}
Aggregations