Пример #1
0
 public Dispatcher(ICommandSender commandSender,
                   IDomainCommandSender domainCommandSender,
                   IEventPublisher eventPublisher,
                   IQueryProcessor queryProcessor,
                   IBusMessageDispatcher busMessageDispatcher)
 {
     _commandSender        = commandSender;
     _domainCommandSender  = domainCommandSender;
     _eventPublisher       = eventPublisher;
     _queryProcessor       = queryProcessor;
     _busMessageDispatcher = busMessageDispatcher;
 }
Пример #2
0
        public void Send_NotPublishesEvents_WhenSetInOptions()
        {
            _optionsMock
            .Setup(x => x.Value)
            .Returns(new Options {
                PublishEvents = false
            });

            _sut = new DomainCommandSender(_handlerResolver.Object,
                                           _eventPublisher.Object,
                                           _eventFactory.Object,
                                           _aggregateStore.Object,
                                           _commandStore.Object,
                                           _eventStore.Object,
                                           _optionsMock.Object);

            _sut.Send <CreateAggregate, Aggregate>(_createAggregate);
            _eventPublisher.Verify(x => x.Publish(_aggregateCreatedConcrete), Times.Never);
        }
Пример #3
0
        public void SetUp()
        {
            _createSomething          = new CreateSomething();
            _somethingCreated         = new SomethingCreated();
            _somethingCreatedConcrete = new SomethingCreated();
            _events = new List <IEvent> {
                _somethingCreated
            };

            _createAggregate          = new CreateAggregate();
            _aggregateCreatedConcrete = new AggregateCreated();
            _aggregate        = new Aggregate();
            _aggregateCreated = (AggregateCreated)_aggregate.Events[0];

            _eventPublisher = new Mock <IEventPublisher>();
            _eventPublisher
            .Setup(x => x.Publish(_somethingCreatedConcrete));
            _eventPublisher
            .Setup(x => x.Publish(_aggregateCreatedConcrete));

            _eventStore = new Mock <IEventStore>();
            _eventStore
            .Setup(x => x.SaveEvent <Aggregate>(_aggregateCreatedConcrete, null));

            _commandStore = new Mock <ICommandStore>();
            _commandStore
            .Setup(x => x.SaveCommand <Aggregate>(_createAggregate));

            _aggregateStore = new Mock <IAggregateStore>();
            _aggregateStore
            .Setup(x => x.SaveAggregate <Aggregate>(_createAggregate.AggregateRootId));

            _eventFactory = new Mock <IEventFactory>();
            _eventFactory
            .Setup(x => x.CreateConcreteEvent(_somethingCreated))
            .Returns(_somethingCreatedConcrete);
            _eventFactory
            .Setup(x => x.CreateConcreteEvent(_aggregateCreated))
            .Returns(_aggregateCreatedConcrete);

            _commandHandler = new Mock <ICommandHandler <CreateSomething> >();
            _commandHandler
            .Setup(x => x.Handle(_createSomething))
            .Returns(_events);

            _domainCommandHandler = new Mock <IDomainCommandHandler <CreateAggregate> >();
            _domainCommandHandler
            .Setup(x => x.Handle(_createAggregate))
            .Returns(_aggregate.Events);

            _handlerResolver = new Mock <IHandlerResolver>();
            _handlerResolver
            .Setup(x => x.ResolveHandler <ICommandHandler <CreateSomething> >())
            .Returns(_commandHandler.Object);
            _handlerResolver
            .Setup(x => x.ResolveHandler <IDomainCommandHandler <CreateAggregate> >())
            .Returns(_domainCommandHandler.Object);

            _optionsMock = new Mock <IOptions <Options> >();
            _optionsMock
            .Setup(x => x.Value)
            .Returns(new Options());

            _sut = new DomainCommandSender(_handlerResolver.Object,
                                           _eventPublisher.Object,
                                           _eventFactory.Object,
                                           _aggregateStore.Object,
                                           _commandStore.Object,
                                           _eventStore.Object,
                                           _optionsMock.Object);
        }