private static void MeasureHandlerCreationPerformances(Container container, Type handlerType) { var invoker = new SyncMessageHandlerInvoker(container, handlerType, typeof(ScanCommand1)); var messageContext = MessageContext.CreateOverride(new PeerId("Abc.Testing.0"), null); invoker.CreateHandler(messageContext); Measure.Execution(500000, () => invoker.CreateHandler(messageContext)); }
public void should_instanciate_new_message_context_aware_bus_for_every_handler() { var busMock = new Mock <IBus>(); var container = new Container(x => x.ForSingletonOf <IBus>().Use(busMock.Object)); var invoker = new SyncMessageHandlerInvoker(container, typeof(CommandHandlerWithOneConstructorArgument), typeof(ScanCommand1)); var messageContext1 = MessageContext.CreateOverride(new PeerId("Abc.Testing.0"), null); var handler1 = (CommandHandlerWithOneConstructorArgument)invoker.CreateHandler(messageContext1); var messageContext2 = MessageContext.CreateOverride(new PeerId("Abc.Testing.0"), null); var handler2 = (CommandHandlerWithOneConstructorArgument)invoker.CreateHandler(messageContext2); handler1.Bus.ShouldNotEqual(handler2.Bus); ((MessageContextAwareBus)handler1.Bus).InnerBus.ShouldEqual(((MessageContextAwareBus)handler2.Bus).InnerBus); }
public void should_proxy_bus_with_message_context_aware_bus() { var busMock = new Mock <IBus>(); var configurationMock = new Mock <IBusConfiguration>(); var equalityComparer = StringComparer.OrdinalIgnoreCase; var container = new Container(x => { x.ForSingletonOf <IBus>().Use(busMock.Object); x.ForSingletonOf <IBusConfiguration>().Use(configurationMock.Object); x.For <IEqualityComparer <string> >().Use(equalityComparer); }); var invoker = new SyncMessageHandlerInvoker(container, typeof(CommandHandlerWithThreeConstructorArguments), typeof(ScanCommand1)); var messageContext = MessageContext.CreateOverride(new PeerId("Abc.Testing.0"), null); var handler = (CommandHandlerWithThreeConstructorArguments)invoker.CreateHandler(messageContext); handler.Bus.ShouldNotEqual(busMock.Object); handler.Configuration.ShouldEqual(configurationMock.Object); handler.EqualityComparerFunc().ShouldEqual(equalityComparer); var bus = handler.Bus.ShouldBe <MessageContextAwareBus>(); bus.InnerBus.ShouldEqual(busMock.Object); }
public void should_preserve_life_cycle() { var busMock = new Mock <IBus>(); var container = new Container(x => { x.ForSingletonOf <IBus>().Use(busMock.Object); x.ForSingletonOf <CommandHandlerWithOneConstructorArgument>().Use <CommandHandlerWithOneConstructorArgument>(); }); var invoker = new SyncMessageHandlerInvoker(container, typeof(CommandHandlerWithOneConstructorArgument), typeof(ScanCommand1)); var messageContext = MessageContext.CreateOverride(new PeerId("Abc.Testing.0"), null); var handler1 = (CommandHandlerWithOneConstructorArgument)invoker.CreateHandler(messageContext); var handler2 = (CommandHandlerWithOneConstructorArgument)invoker.CreateHandler(messageContext); ReferenceEquals(handler1, handler2).ShouldBeTrue("references should be equal"); }