public void Returns_Original_With_No_Interceptors_Added()
        {
            var result = InterceptorResolver.GetAllInterceptors(typeof(TypeC3).GetMethod("MethodA"), new IInterceptor[] { new Int2() }, typeof(IInterceptorProvider));

            Assert.AreEqual(1, result.Length);
            Assert.AreEqual(typeof(Int2), result[0].GetType());
        }
        public void Returns_All_Interceptors()
        {
            var m1 = typeof(TypeRI1).GetMethod("Method");

            var interceptorsPerMember = new TypeAccessor(typeof(InterceptorResolver)).Fields["interceptorsPerMemberCache"].GetValue <Dictionary <MemberInfo, IInterceptor[]> >();

            Assert.AreEqual(0, interceptorsPerMember.Count);

            var all1 = InterceptorResolver.GetAllInterceptors(m1, new IInterceptor[0], typeof(IMethodInterceptorProvider));

            Assert.AreEqual(1, all1.Length);
            Assert.AreEqual(typeof(IntForRI1), all1.ElementAt(0).GetType());
            Assert.AreEqual(1, interceptorsPerMember.Count);
            Assert.AreEqual(1, interceptorsPerMember[m1].Length);
            Assert.AreEqual(typeof(IntForRI1), interceptorsPerMember[m1][0].GetType());

            var all2 = InterceptorResolver.GetAllInterceptors(m1, new IInterceptor[] { new IntForRI1_b() }, typeof(IMethodInterceptorProvider));

            Assert.AreEqual(2, all2.Length);
            Assert.AreEqual(typeof(IntForRI1_b), all2.ElementAt(0).GetType());
            Assert.AreEqual(typeof(IntForRI1), all2.ElementAt(1).GetType());
            Assert.AreEqual(1, interceptorsPerMember.Count);
            Assert.AreEqual(1, interceptorsPerMember[m1].Length);
            Assert.AreEqual(typeof(IntForRI1), interceptorsPerMember[m1][0].GetType());
        }
        public void Add_Method_InterceptionAttributes_To_Interceptors()
        {
            var result = InterceptorResolver.GetAllInterceptors(typeof(TypeC1).GetMethod("MethodA"), new IInterceptor[] { new Int2() }, typeof(IMethodInterceptorProvider));

            Assert.AreEqual(2, result.Length);
            Assert.AreEqual(typeof(Int2), result[0].GetType());
            Assert.AreEqual(typeof(Int1), result[1].GetType());
        }
Ejemplo n.º 4
0
 protected virtual IInterceptor[] GetAllInterceptors(MemberInfo member, IInterceptor[] interceptors, Type interceptorProviderType)
 {
     return(InterceptorResolver.GetAllInterceptors(member, interceptors, interceptorProviderType));
 }