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()); }
protected virtual IInterceptor[] GetAllInterceptors(MemberInfo member, IInterceptor[] interceptors, Type interceptorProviderType) { return(InterceptorResolver.GetAllInterceptors(member, interceptors, interceptorProviderType)); }