public async Task Saga_states_should_be_updated_on_database(TransactionItem item, TransactionItem newItem) { var documentCollectorMock = new Mock <IAsyncCollector <TransactionItem> >(); var documentClientMock = new Mock <IDocumentClient>(); var documents = new List <Document> { new Document { Id = item.Id } }; documentClientMock .Setup(x => x.CreateDocumentAsync(It.IsAny <Uri>(), item, It.IsAny <RequestOptions>(), It.IsAny <bool>(), default)); documentClientMock .Setup(x => x.CreateDocumentQuery(It.IsAny <Uri>(), It.IsAny <FeedOptions>())) .Returns((IOrderedQueryable <Document>)documents.AsQueryable()); TransactionItem resultItem = await OrchestratorActivity .SagaOrchestratorActivity(newItem, documentCollectorMock.Object, documentClientMock.Object); Assert.NotNull(resultItem); Assert.Equal(newItem.Id, resultItem.Id); Assert.Equal(newItem.State, resultItem.State); }
public async Task Pending_saga_state_should_be_persisted_on_database() { var documentCollectorMock = new Mock <IAsyncCollector <TransactionItem> >(); var documentClientMock = new Mock <IDocumentClient>(); var item = new TransactionItem { Id = Guid.NewGuid().ToString(), AccountFromId = Guid.NewGuid().ToString(), AccountToId = Guid.NewGuid().ToString(), Amount = 100.00M, State = nameof(SagaState.Pending) }; documentCollectorMock .Setup(x => x.AddAsync(It.IsAny <TransactionItem>(), default)) .Returns( Task.CompletedTask ); TransactionItem resultItem = await OrchestratorActivity .SagaOrchestratorActivity(item, documentCollectorMock.Object, documentClientMock.Object); Assert.Equal(item.Id, resultItem.Id); }