partial void OnCreateContainer(UnityContainer container) { var serializer = container.Resolve<ITextSerializer>(); var metadata = container.Resolve<IMetadataProvider>(); var commandBus = new CommandBus(new MessageSender(Database.DefaultConnectionFactory, "SqlBus", "SqlBus.Commands"), serializer); var eventBus = new EventBus(new MessageSender(Database.DefaultConnectionFactory, "SqlBus", "SqlBus.Events"), serializer); var commandProcessor = new CommandProcessor(new MessageReceiver(Database.DefaultConnectionFactory, "SqlBus", "SqlBus.Commands"), serializer); var eventProcessor = new EventProcessor(new MessageReceiver(Database.DefaultConnectionFactory, "SqlBus", "SqlBus.Events"), serializer); container.RegisterInstance<ICommandBus>(commandBus); container.RegisterInstance<IEventBus>(eventBus); container.RegisterInstance<ICommandHandlerRegistry>(commandProcessor); container.RegisterInstance<IProcessor>("CommandProcessor", commandProcessor); container.RegisterInstance<IEventHandlerRegistry>(eventProcessor); container.RegisterInstance<IProcessor>("EventProcessor", eventProcessor); // Event log database and handler. container.RegisterType<SqlMessageLog>(new InjectionConstructor("MessageLog", serializer, metadata)); container.RegisterType<IEventHandler, SqlMessageLogHandler>("SqlMessageLogHandler"); container.RegisterType<ICommandHandler, SqlMessageLogHandler>("SqlMessageLogHandler"); RegisterRepository(container); RegisterEventHandlers(container, eventProcessor); }
public given_command_processor() { this.receiverMock = new Mock<IMessageReceiver>(); this.processor = new CommandProcessor(this.receiverMock.Object, CreateSerializer()); }