public void Xml_hook_and_selector() { ProxyAllHook.Instances = 0; SelectAllSelector.Calls = 0; SelectAllSelector.Instances = 0; container.Install(XmlResource("interceptorsWithHookAndSelector.xml")); var model = container.Kernel.GetHandler("ValidComponent").ComponentModel; var options = model.ObtainProxyOptions(false); Assert.IsNotNull(options); Assert.IsNotNull(options.Selector); Assert.IsNotNull(options.Hook); Assert.AreEqual(0, SelectAllSelector.Instances); Assert.AreEqual(0, ProxyAllHook.Instances); service = container.Resolve<CalculatorService>("ValidComponent"); Assert.AreEqual(1, SelectAllSelector.Instances); Assert.AreEqual(0, SelectAllSelector.Calls); Assert.AreEqual(1, ProxyAllHook.Instances); service.Sum(2, 2); Assert.AreEqual(1, SelectAllSelector.Calls); }
public void Multithreaded() { container.Register(Component.For(typeof(ResultModifierInterceptor)).Named("interceptor")); container.Register(Component.For(typeof(CalculatorService)).Named("key")); service = container.Resolve<CalculatorService>("key"); const int threadCount = 10; var threads = new Thread[threadCount]; for (var i = 0; i < threadCount; i++) { threads[i] = new Thread(ExecuteMethodUntilSignal); threads[i].Start(); } startEvent.Set(); Thread.CurrentThread.Join(2000); stopEvent.Set(); }
public void Xml_additionalInterfaces() { container.Install(XmlResource("additionalInterfaces.xml")); service = container.Resolve<CalculatorService>("ValidComponent"); Assert.IsInstanceOf<ISimpleMixIn>(service); Assert.Throws(typeof(System.NotImplementedException), () => ((ISimpleMixIn)service).DoSomething()); }
public void Xml_mixin() { container.Install(XmlResource("mixins.xml")); service = container.Resolve<CalculatorService>("ValidComponent"); Assert.IsInstanceOf<ISimpleMixIn>(service); ((ISimpleMixIn)service).DoSomething(); }
public void Xml_multiple_interceptors_resolves_correctly() { container.Install(XmlResource("interceptorsMultiple.xml")); service = container.Resolve<CalculatorService>("component"); Assert.IsNotNull(service); Assert.AreEqual(10, service.Sum(2, 2)); }
public void Xml_validComponent_resolves_correctly() { container.Install(XmlResource("interceptors.xml")); service = container.Resolve<CalculatorService>("ValidComponent"); Assert.IsNotNull(service); Assert.AreEqual(5, service.Sum(2, 2)); }
public void ClassProxy() { container.Register(Component.For(typeof(ResultModifierInterceptor)).Named("interceptor")); container.Register(Component.For(typeof(CalculatorService)).Named("key")); service = container.Resolve<CalculatorService>("key"); Assert.IsNotNull(service); Assert.AreEqual(5, service.Sum(2, 2)); }