public when_an_event_is_received()
        {
            Bus = new InMemoryMessageBus();

            var config          = Bus.Configuration;
            var persistence     = new InMemoryPersistence(config.MessageSender, config.Sagas.Storage);
            var repository      = new Repository <InventoryItem>(new InMemoryEventStore <Guid>(persistence));
            var commandHandlers = new InventoryCommandHandlers(repository);
            var projector       = new Projector();

            config.CommandHandlers.Register <CreateInventoryItem>(() => commandHandlers);
            config.CommandHandlers.Register <RenameInventoryItem>(() => commandHandlers);
            config.CommandHandlers.Register <DeactivateInventoryItem>(() => commandHandlers);
            config.EventReceivers.Register <InventoryItemCreated>(() => projector);
            config.EventReceivers.Register <InventoryItemRenamed>(() => projector);
            config.EventReceivers.Register <InventoryItemDeactivated>(() => projector);
            Products = projector.Products;
            Bus.Start();
        }
示例#2
0
        protected ScenarioTest(ITestOutputHelper output)
        {
            this.output = output;

            var ignoredMessages   = new List <IMessageDescriptor>();
            var pendingOperations = new PendingOperations();

            IgnoredMessages = ignoredMessages;

            var container     = CreateContainer(pendingOperations, ignoredMessages);
            var configuration = new MessageBusConfigurationBuilder().HasServiceProvider(container).CreateConfiguration();

            Bus   = new InMemoryMessageBus(configuration, pendingOperations);
            Setup = new ScenarioBuilder(Bus);
            RegisterCommandHandlers(configuration);
            RegisterEventReceivers(configuration);
            RegisterSagas(configuration);
            Bus.Start(new MessageObserver(output));
        }