public async Task It_should_successfully_update_the_saga() { var id = Guid.NewGuid(); var sagaData = new SagaWithoutUniquePropertyData { Id = id, NonUniqueString = "whatever" }; var persister = new InMemorySagaPersister(); // first session var session = new InMemorySynchronizedStorageSession(); await persister.Save(sagaData, SagaCorrelationProperty.None, session, new ContextBag()); await session.CompleteAsync(); // second session var session2 = new InMemorySynchronizedStorageSession(); var ctx = new ContextBag(); var saga = await persister.Get <SagaWithoutUniquePropertyData>(id, session2, ctx); saga.NonUniqueString = "asdfasdf"; await persister.Update(saga, session2, ctx); await session2.CompleteAsync(); var result = await persister.Get <SagaWithoutUniquePropertyData>(sagaData.Id, new InMemorySynchronizedStorageSession(), new ContextBag()); Assert.That(result, Is.Not.Null); Assert.That(result.NonUniqueString, Is.EqualTo("asdfasdf")); }
public async Task It_should_successfully_remove_the_saga() { var id = Guid.NewGuid(); var sagaData = new SagaWithoutUniquePropertyData { Id = id, NonUniqueString = "whatever" }; var persister = new InMemorySagaPersister(); var savingSession = new InMemorySynchronizedStorageSession(); await persister.Save(sagaData, null, savingSession, new ContextBag()); await savingSession.CompleteAsync(); // second session var completingSession = new InMemorySynchronizedStorageSession(); var completingContextBag = new ContextBag(); var saga = await persister.Get <SagaWithoutUniquePropertyData>(id, completingSession, completingContextBag); await persister.Complete(saga, completingSession, completingContextBag); await completingSession.CompleteAsync(); var result = await persister.Get <SagaWithoutUniquePropertyData>(sagaData.Id, savingSession, new ContextBag()); Assert.That(result, Is.Null); }
public async Task It_should_persist_successfully() { var sagaData = new SagaWithoutUniquePropertyData { Id = Guid.NewGuid(), NonUniqueString = "whatever" }; var persister = new InMemorySagaPersister(); using (var session = new InMemorySynchronizedStorageSession()) { await persister.Save(sagaData, null, session, new ContextBag()); await session.CompleteAsync(); } using (var session = new InMemorySynchronizedStorageSession()) { var retrieved = await persister.Get <SagaWithoutUniquePropertyData>(sagaData.Id, session, new ContextBag()); Assert.AreEqual(sagaData.NonUniqueString, retrieved.NonUniqueString); } }