// non-transitive bindings
assertEquals(1, manager.resolveInterceptors(InterceptionType.AROUND_INVOKE, new SynchronizedLiteral()).size());
assertEquals(1, manager.resolveInterceptors(InterceptionType.AROUND_INVOKE, new SecureLiteral()).size());
assertEquals(1, manager.resolveInterceptors(InterceptionType.AROUND_INVOKE, new TransactionalLiteral()).size());
// transitive bindings
assertEquals(2, manager.resolveInterceptors(InterceptionType.AROUND_INVOKE, new UltraSynchronizedLiteral()).size());
// transitive bindings
assertEquals(2, manager.resolveInterceptors(InterceptionType.AROUND_INVOKE, new UltraSynchronizedLiteral(), new SynchronizedLiteral()).size());
assertEquals(2, manager.resolveInterceptors(InterceptionType.AROUND_INVOKE, new AnnotationLiteral<UltraSynchronized>() {}, new AnnotationLiteral<Synchronized>() {}).size());
// should resolve UltraSecureInterceptor and transitively also SecureInterceptor
assertEquals(2, manager.resolveInterceptors(InterceptionType.AROUND_INVOKE, new UltraSecureLiteral()).size());
// should resolve UltraTransactionalInterceptor and transitively also TransactionalInterceptor
assertEquals(2, manager.resolveInterceptors(InterceptionType.AROUND_INVOKE, new UltraTransactionalLiteral()).size());