@SuppressWarnings({"unchecked"}) @Test void testExpand_nothing() { InterceptorsManager im = new InterceptorsManager(); Class<? extends ActionInterceptor>[] in = new Class[] { EchoInterceptor.class, ServletConfigInterceptor.class }; Class<? extends ActionInterceptor>[] out = im.expand(in); assertArrayEquals(new Class[] {EchoInterceptor.class, ServletConfigInterceptor.class}, out); }
@SuppressWarnings({"unchecked"}) @Test void testExpandStack2() { InterceptorsManager im = createInterceptorManager(); Class<? extends ActionInterceptor>[] in = new Class[]{ TestConfigurableStack2.class }; Class<? extends ActionInterceptor>[] out = im.expand(in); assertArrayEquals(new Class[] { EchoInterceptor.class, ServletConfigInterceptor.class, AnnotatedPropertyInterceptor.class, LogEchoInterceptor.class, }, out); }
@SuppressWarnings({"unchecked"}) @Test void testExpandStack() { InterceptorsManager im = createInterceptorManager(); Class<? extends ActionInterceptor>[] in = new Class[]{ TestStack.class, TestStack3.class, EchoInterceptor.class }; Class<? extends ActionInterceptor>[] out = im.expand(in); assertArrayEquals(new Class[] { AnnotatedPropertyInterceptor.class, LogEchoInterceptor.class, EchoInterceptor.class, LogEchoInterceptor.class, ServletConfigInterceptor.class, EchoInterceptor.class }, out); }
@SuppressWarnings({"unchecked"}) @Test void testExpand_stacks() { InterceptorsManager im =createInterceptorManager(); Class<? extends ActionInterceptor>[] in = new Class[] { AnnotatedPropertyInterceptor.class, TestStack3.class, EchoInterceptor.class }; Class<? extends ActionInterceptor>[] out = im.expand(in); assertArrayEquals(new Class[] { AnnotatedPropertyInterceptor.class, EchoInterceptor.class, LogEchoInterceptor.class, ServletConfigInterceptor.class, EchoInterceptor.class, }, out); }
/** * Resolves interceptors. Unregistered interceptors will be registered. Returned array may be * different size than size of provided array, due to {@link #expand(Class[]) expanding}. */ public ActionInterceptor[] resolveAll(Class<? extends ActionInterceptor>... interceptorClasses) { if (interceptorClasses == null) { return null; } interceptorClasses = expand(interceptorClasses); ActionInterceptor[] result = new ActionInterceptor[interceptorClasses.length]; for (int i = 0; i < interceptorClasses.length; i++) { result[i] = resolve(interceptorClasses[i]); } return result; }