示例#1
0
        public void SetUp()
        {
            var sagaType = typeof(ThingySaga);

            _serviceProviderMock       = InjectMock <IServiceProvider>();
            _sagaStoreMock             = InjectMock <ISagaStore>();
            _sagaDefinitionServiceMock = InjectMock <ISagaDefinitionService>();
            _sagaErrorHandlerMock      = InjectMock <ISagaErrorHandler>();

            _sagaUpdaterMock = new Mock <ISagaUpdater>();
            _sagaLocatorMock = new Mock <ISagaLocator>();

            _serviceProviderMock
            .Setup(r => r.GetService(It.Is <Type>(t => typeof(ISagaLocator).IsAssignableFrom(t))))
            .Returns(_sagaLocatorMock.Object);
            _serviceProviderMock
            .Setup(r => r.GetService(It.Is <Type>(t => typeof(ISagaUpdater).IsAssignableFrom(t))))
            .Returns(_sagaUpdaterMock.Object);
            _sagaDefinitionServiceMock
            .Setup(d => d.GetSagaDetails(It.IsAny <Type>()))
            .Returns(new[] { SagaDetails.From(sagaType) });
            _sagaLocatorMock
            .Setup(s => s.LocateSagaAsync(It.IsAny <IDomainEvent>(), CancellationToken.None))
            .Returns(() => Task.FromResult <ISagaId>(new ThingySagaId(string.Empty)));
        }
示例#2
0
        public async Task AggregateStore_UpdateAsync_IsInvoked()
        {
            // Arrange
            var aggregateStoreMock = InjectMock <IAggregateStore>();
            var thingySagaId       = A <ThingySagaId>();
            var sourceId           = A <SourceId>();

            aggregateStoreMock
            .Setup(s => s.UpdateAsync(
                       thingySagaId,
                       sourceId,
                       It.IsAny <Func <ThingySaga, CancellationToken, Task> >(),
                       It.IsAny <CancellationToken>()))
            .ReturnsAsync(new List <IDomainEvent>());

            // Act
            await Sut.UpdateAsync <ThingySaga>(
                thingySagaId,
                SagaDetails.From(typeof(ThingySaga)),
                sourceId,
                (s, c) => Task.FromResult(0),
                CancellationToken.None);

            // Assert
            aggregateStoreMock.Verify(
                s => s.UpdateAsync(
                    thingySagaId,
                    sourceId,
                    It.IsAny <Func <ThingySaga, CancellationToken, Task> >(),
                    It.IsAny <CancellationToken>()),
                Times.Once);
        }
示例#3
0
        public void SetUp()
        {
            var sagaType = typeof(ThingySaga);

            _resolverMock              = InjectMock <IResolver>();
            _sagaStoreMock             = InjectMock <ISagaStore>();
            _sagaDefinitionServiceMock = InjectMock <ISagaDefinitionService>();
            _sagaErrorHandlerMock      = InjectMock <ISagaErrorHandler>();

            _sagaUpdaterMock = new Mock <ISagaUpdater>();
            _sagaLocatorMock = new Mock <ISagaLocator>();

            _resolverMock
            .Setup(r => r.Resolve(It.Is <Type>(t => typeof(ISagaLocator).IsAssignableFrom(t))))
            .Returns(_sagaLocatorMock.Object);
            _resolverMock
            .Setup(r => r.Resolve(It.Is <Type>(t => typeof(ISagaUpdater).IsAssignableFrom(t))))
            .Returns(_sagaUpdaterMock.Object);
            _sagaDefinitionServiceMock
            .Setup(d => d.GetSagaDetails(It.IsAny <Type>()))
            .Returns(new[] { SagaDetails.From(sagaType), });
        }