Esempio n. 1
0
        public void SetUp()
        {
            _somethingCreated          = new SomethingCreated();
            _getSomething              = new GetSomething();
            _something                 = new Something();
            _createAggregate           = new CreateAggregate();
            _createAggregateBusMessage = new CreateAggregateBusMessage();
            _sampleCommandSequence     = new sampleCommandSequence();

            _commandSender = new Mock <ICommandSender>();
            _commandSender
            .Setup(x => x.SendAsync(_createAggregate))
            .Returns(Task.CompletedTask);
            _commandSender
            .Setup(x => x.Send(_createAggregate));
            _commandSender
            .Setup(x => x.SendAsync(_sampleCommandSequence))
            .Returns(Task.CompletedTask);
            _commandSender
            .Setup(x => x.Send(_sampleCommandSequence));

            _eventPublisher = new Mock <IEventPublisher>();
            _eventPublisher
            .Setup(x => x.PublishAsync(_somethingCreated))
            .Returns(Task.CompletedTask);
            _eventPublisher
            .Setup(x => x.Publish(_somethingCreated));

            _queryDispatcher = new Mock <IQueryProcessor>();
            _queryDispatcher
            .Setup(x => x.ProcessAsync(_getSomething))
            .ReturnsAsync(_something);
            _queryDispatcher
            .Setup(x => x.Process(_getSomething))
            .Returns(_something);

            _busMessageDispatcher = new Mock <IBusMessageDispatcher>();
            _busMessageDispatcher
            .Setup(x => x.DispatchAsync(_createAggregateBusMessage))
            .Returns(Task.CompletedTask);

            _sut = new Dispatcher(_commandSender.Object,
                                  _eventPublisher.Object,
                                  _queryDispatcher.Object,
                                  _busMessageDispatcher.Object);
        }
Esempio n. 2
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];

            _sampleCommandSequence = new sampleCommandSequence();

            _commandResponse = new CommandResponse {
                Events = _events, Result = "Result"
            };
            _domainCommandResponse = new CommandResponse {
                Events = _aggregate.Events, Result = "Result"
            };

            _eventPublisher = new Mock <IEventPublisher>();
            _eventPublisher
            .Setup(x => x.PublishAsync(_aggregateCreatedConcrete))
            .Returns(Task.CompletedTask);

            _storeProvider = new Mock <IStoreProvider>();
            _storeProvider
            .Setup(x => x.SaveAsync(It.IsAny <SaveStoreData>()))
            .Callback <SaveStoreData>(x => _storeDataSaved = x)
            .Returns(Task.CompletedTask);

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

            _validationService = new Mock <IValidationService>();
            _validationService
            .Setup(x => x.ValidateAsync(_createAggregate))
            .Returns(Task.CompletedTask);

            _commandHandlerAsync = new Mock <ICommandHandlerAsync <CreateSomething> >();
            _commandHandlerAsync
            .Setup(x => x.HandleAsync(_createSomething))
            .ReturnsAsync(_commandResponse);

            _domainCommandHandlerAsync = new Mock <ICommandHandlerAsync <CreateAggregate> >();
            _domainCommandHandlerAsync
            .Setup(x => x.HandleAsync(_createAggregate))
            .ReturnsAsync(_domainCommandResponse);

            _sequenceCommandHandlerAsync = new Mock <ISequenceCommandHandlerAsync <ICommand> >();
            _sequenceCommandHandlerAsync
            .Setup(x => x.HandleAsync(It.IsAny <ICommand>(), It.IsAny <CommandResponse>()))
            .ReturnsAsync(It.IsAny <CommandResponse>());

            _handlerResolver = new Mock <IHandlerResolver>();
            _handlerResolver
            .Setup(x => x.ResolveHandler(_createSomething, typeof(ICommandHandlerAsync <>)))
            .Returns(_commandHandlerAsync.Object);
            _handlerResolver
            .Setup(x => x.ResolveHandler(_createAggregate, typeof(ICommandHandlerAsync <>)))
            .Returns(_domainCommandHandlerAsync.Object);
            _handlerResolver
            .Setup(x => x.ResolveHandler(It.IsAny <ICommand>(), typeof(ISequenceCommandHandlerAsync <>)))
            .Returns(_sequenceCommandHandlerAsync.Object);

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

            _sut = new CommandSender(_handlerResolver.Object,
                                     _eventPublisher.Object,
                                     _eventFactory.Object,
                                     _storeProvider.Object,
                                     _validationService.Object,
                                     _optionsMock.Object);
        }