public async Task GivenACorrelatedMessage_WhenInitiatingAndObservedMessageForSagaArrives_ThenSagaShouldBeLoaded() { _correlationId = Guid.NewGuid(); var initiationMessage = new InitiateSimpleSaga(_correlationId) { Name = "Lee" }; var busControl = await Bus.StartAsync(); await busControl.Publish(initiationMessage); var sagaRepository = new MongoDbQuerySagaRepository <SimpleSaga>(SagaRepository.Instance); var foundId = await sagaRepository.ShouldContainSaga(x => x.Initiated && x.CorrelationId == _correlationId, TimeSpan.FromSeconds(30)); var observableMessage = new ObservableSagaMessage { Name = "Lee" }; await busControl.Publish(observableMessage); foundId = await sagaRepository.ShouldContainSaga(x => x.Observed && x.CorrelationId == _correlationId, TimeSpan.FromSeconds(30)); Assert.That(foundId.HasValue, Is.True); }
public void GivenAMongoDbQuerySagaRepository_WhenFindingSaga() { _correlationId = Guid.NewGuid(); SagaRepository.InsertSaga(new SimpleSaga {CorrelationId = _correlationId}).GetAwaiter().GetResult(); var repository = new MongoDbQuerySagaRepository<SimpleSaga>(SagaRepository.Instance); ISagaQuery<SimpleSaga> query = new SagaQuery<SimpleSaga>(x => x.CorrelationId == _correlationId); _result = repository.Find(query).GetAwaiter().GetResult(); }
public async Task GivenAMongoDbQuerySagaRepository_WhenFindingSaga() { _correlationId = Guid.NewGuid(); await SagaRepository.InsertSaga(new SimpleSaga { CorrelationId = _correlationId }); var repository = new MongoDbQuerySagaRepository <SimpleSaga>(SagaRepository.Instance); ISagaQuery <SimpleSaga> query = new SagaQuery <SimpleSaga>(x => x.CorrelationId == _correlationId); _result = await repository.Find(query); }
public async Task GivenAnInitiatingMessage_WhenPublishing() { _correlationId = Guid.NewGuid(); var message = new InitiateSimpleSaga(_correlationId); var busControl = await Bus.StartAsync(); await busControl.Publish(message); var sagaRepository = new MongoDbQuerySagaRepository <SimpleSaga>(SagaRepository.Instance); _foundId = await sagaRepository.ShouldContainSaga(_correlationId, TimeSpan.FromSeconds(30)); }
public void GivenAMongoDbQuerySagaRepository_WhenFindingSaga() { _correlationId = Guid.NewGuid(); SagaRepository.InsertSaga(new SimpleSaga { CorrelationId = _correlationId }).GetAwaiter().GetResult(); var repository = new MongoDbQuerySagaRepository <SimpleSaga>(SagaRepository.Instance); ISagaQuery <SimpleSaga> query = new SagaQuery <SimpleSaga>(x => x.CorrelationId == _correlationId); _result = repository.Find(query).GetAwaiter().GetResult(); }
public async Task GivenAMongoDbQuerySagaRepository_WhenFindingSaga() { _correlationId = Guid.NewGuid(); await SagaRepository.InsertSaga(new SimpleSaga() { CorrelationId = _correlationId }); var repository = new MongoDbQuerySagaRepository <SimpleSaga>(SagaRepository.Instance); var sagaQuery = new Mock <ISagaQuery <SimpleSaga> >(); sagaQuery.Setup(m => m.FilterExpression).Returns(x => x.CorrelationId == _correlationId); _result = await repository.Find(sagaQuery.Object); }
public async Task GivenACorrelatedMessage_TheCorrectSagaShouldBeFound() { _correlationId = Guid.NewGuid(); var message = new InitiateSimpleSaga(_correlationId); var busControl = await Bus.StartAsync(); await busControl.Publish(message); var sagaRepository = new MongoDbQuerySagaRepository <SimpleSaga>(SagaRepository.Instance); var foundId = await sagaRepository.ShouldContainSaga(_correlationId, TimeSpan.FromSeconds(5)); Assert.That(foundId.HasValue, Is.True); var nextMessage = new CompleteSimpleSaga(_correlationId); await busControl.Publish(nextMessage); foundId = await sagaRepository.ShouldContainSaga(x => x.CorrelationId == _correlationId && x.Completed, TimeSpan.FromSeconds(5)); Assert.That(foundId.HasValue, Is.True); }