public void CanAddInterceptor_DirectSelection() { IWindsorContainer container = new WindsorContainer(); container.Register(Component.For <WasCalledInterceptor>(), Component.For <IWatcher>() .ImplementedBy <BirdWatcher>() .Named("bird.watcher") .LifeStyle.Transient); var selector = new WatcherInterceptorSelector(); container.Kernel.ProxyFactory.AddInterceptorSelector(selector); WasCalledInterceptor.WasCalled = false; var watcher = container.Resolve <IWatcher>(); watcher.OnSomethingInterestingToWatch += delegate { }; Assert.IsFalse(WasCalledInterceptor.WasCalled); selector.Interceptors = InterceptorKind.Dummy; WasCalledInterceptor.WasCalled = false; watcher = container.Resolve <IWatcher>(); watcher.OnSomethingInterestingToWatch += delegate { }; Assert.IsTrue(WasCalledInterceptor.WasCalled); }
public void TurnProxyOnAndOff_DirectSelection() { IWindsorContainer container = new WindsorContainer(); container.Register(Component.For <WasCalledInterceptor>()).Register( Component.For(typeof(IWatcher)).ImplementedBy(typeof(BirdWatcher)).Named("bird.watcher").LifeStyle.Is( LifestyleType.Transient)); var selector = new WatcherInterceptorSelector(); container.Kernel.ProxyFactory.AddInterceptorSelector(selector); Assert.IsFalse(container.Resolve <IWatcher>().GetType().Name.Contains("Proxy")); selector.Interceptors = InterceptorKind.Dummy; Assert.IsTrue(container.Resolve <IWatcher>().GetType().Name.Contains("Proxy")); }
public void InterceptorSelectors_Are_Cumulative() { IWindsorContainer container = new WindsorContainer(); container.Register(Component.For <CountingInterceptor>(), Component.For <WasCalledInterceptor>(), Component.For <IWatcher>().ImplementedBy <BirdWatcher>().Named("bird.watcher").LifeStyle.Transient); var selector = new WatcherInterceptorSelector { Interceptors = InterceptorKind.Dummy }; container.Kernel.ProxyFactory.AddInterceptorSelector(selector); container.Kernel.ProxyFactory.AddInterceptorSelector(new AnotherInterceptorSelector()); var watcher = container.Resolve <IWatcher>(); watcher.OnSomethingInterestingToWatch += delegate { }; Assert.IsTrue(WasCalledInterceptor.WasCalled); Assert.IsTrue(WasCalledInterceptor.WasCalled); }
public void InterceptorSelectors_Are_Cumulative() { IWindsorContainer container = new WindsorContainer(); container .AddComponent<DummyInterceptor>() .AddComponent<AnotherDummyInterceptor>() .AddComponentLifeStyle<IWatcher, BirdWatcher>("bird.watcher", LifestyleType.Transient); WatcherInterceptorSelector selector = new WatcherInterceptorSelector(); selector.Interceptors = Interceptors.Dummy; container.Kernel.ProxyFactory.AddInterceptorSelector(selector); container.Kernel.ProxyFactory.AddInterceptorSelector(new AnotherInterceptorSelector()); IWatcher watcher = container.Resolve<IWatcher>(); watcher.OnSomethingInterestingToWatch += delegate { }; Assert.IsTrue(DummyInterceptor.WasCalled); Assert.IsTrue(AnotherDummyInterceptor.WasCalled); }
public void CanAddInterceptor_DirectSelection() { IWindsorContainer container = new WindsorContainer(); container .AddComponent<DummyInterceptor>() .AddComponentLifeStyle<IWatcher, BirdWatcher>("bird.watcher", LifestyleType.Transient); WatcherInterceptorSelector selector = new WatcherInterceptorSelector(); container.Kernel.ProxyFactory.AddInterceptorSelector(selector); DummyInterceptor.WasCalled = false; IWatcher watcher = container.Resolve<IWatcher>(); watcher.OnSomethingInterestingToWatch+=delegate { }; Assert.IsFalse(DummyInterceptor.WasCalled); selector.Interceptors = Interceptors.Dummy; DummyInterceptor.WasCalled = false; watcher = container.Resolve<IWatcher>(); watcher.OnSomethingInterestingToWatch += delegate { }; Assert.IsTrue(DummyInterceptor.WasCalled); }
public void TurnProxyOnAndOff_SubDependency() { IWindsorContainer container = new WindsorContainer(); container .AddComponent<DummyInterceptor>() .AddComponentLifeStyle<IWatcher, BirdWatcher>("bird.watcher", LifestyleType.Transient) .AddComponentLifeStyle<Person>(LifestyleType.Transient); WatcherInterceptorSelector selector = new WatcherInterceptorSelector(); container.Kernel.ProxyFactory.AddInterceptorSelector(selector); Assert.IsFalse(container.Resolve<Person>().Watcher.GetType().Name.Contains("Proxy")); Assert.IsFalse(container.Resolve<Person>().GetType().Name.Contains("Proxy")); selector.Interceptors = Interceptors.Dummy; Assert.IsFalse(container.Resolve<Person>().GetType().Name.Contains("Proxy")); Assert.IsTrue(container.Resolve<Person>().Watcher.GetType().Name.Contains("Proxy")); }