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()); }
public void Deploy(WeldEnvironment environment) { environment.AddValue(this, new IAnnotation[0], this); environment.AddValue(new ContextualStore(), new IAnnotation[0], this); var mixins = environment.Components.OfType <Mixin>().ToArray(); var interceptors = environment.Components.OfType <Interceptor>().ToArray(); _registeredComponents.AddRange(environment.Components.Except(mixins).Except(interceptors)); _componentResolver.Invalidate(); AddObservers(environment.Observers); _mixinResolver = new MixinResolver(this, mixins); _interceptorResolver = new InterceptorResolver(this, interceptors); _services.Add(typeof(IExceptionHandlerDispatcher), new ExceptionHandlerDispatcher(this, environment.ExceptionHandlers)); _componentResolver.Validate(); ExecuteConfigurations(environment); }
public void ResolveInterceptors() { var fileName = @"..\..\..\ResolveInterceptors.txt"; File.WriteAllText(fileName, ""); var serviceProvider = new ServiceCollection().BuildServiceProvider(); var collector = new InterceptorResolver(new InterceptorChainBuilder(serviceProvider), new IInterceptorProviderResolver[] { new AttributeInterceptorProviderResolver() }); var sw = Stopwatch.StartNew(); collector.GetInterceptors(typeof(Demo)); File.AppendAllLines(fileName, new string[] { sw.Elapsed.ToString() }); sw.Restart(); collector.GetInterceptors(typeof(Demo)); File.AppendAllLines(fileName, new string[] { sw.Elapsed.ToString() }); sw.Restart(); collector.GetInterceptors(typeof(Demo)); File.AppendAllLines(fileName, new string[] { sw.Elapsed.ToString() }); Console.WriteLine(sw.Elapsed); }
public void Startup() { InterceptorResolver.ClearCache(); }
protected virtual IInterceptor[] GetAllInterceptors(MemberInfo member, IInterceptor[] interceptors, Type interceptorProviderType) { return(InterceptorResolver.GetAllInterceptors(member, interceptors, interceptorProviderType)); }