public async Task It_should_persist_successfully() { var correlationPropertyData = Guid.NewGuid().ToString(); var saga1 = new SagaWithCorrelationPropertyData { CorrelatedProperty = correlationPropertyData, SomeProperty = "foo" }; await SaveSaga(saga1); var updatedValue = "bar"; var context = configuration.GetContextBagForSagaStorage(); var correlatedPropertyName = nameof(SagaWithCorrelationPropertyData.CorrelatedProperty); var persister = configuration.SagaStorage; using (var completeSession = await configuration.SynchronizedStorage.OpenSession(context, default)) { var sagaData = await persister.Get <SagaWithCorrelationPropertyData>(correlatedPropertyName, correlationPropertyData, completeSession, context, default); sagaData.SomeProperty = updatedValue; await persister.Update(sagaData, completeSession, context, default); await completeSession.CompleteAsync(default);
public async Task Should_delete_the_saga() { var correlationPropertyData = Guid.NewGuid().ToString(); var saga = new SagaWithCorrelationPropertyData { CorrelatedProperty = correlationPropertyData, DateTimeProperty = DateTime.UtcNow }; await SaveSaga(saga); const string correlatedPropertyName = nameof(SagaWithCorrelationPropertyData.CorrelatedProperty); var context = configuration.GetContextBagForSagaStorage(); using (var completeSession = await configuration.SynchronizedStorage.OpenSession(context)) { var sagaData = await configuration.SagaStorage.Get <SagaWithCorrelationPropertyData>(correlatedPropertyName, correlationPropertyData, completeSession, context); await configuration.SagaStorage.Complete(sagaData, completeSession, context); await completeSession.CompleteAsync(); } var completedSaga = await GetByCorrelationProperty <SagaWithCorrelationPropertyData>(correlatedPropertyName, correlationPropertyData); Assert.Null(completedSaga); }
public async Task It_should_persist_successfully() { var correlationPropertyData = Guid.NewGuid().ToString(); var saga1 = new SagaWithCorrelationPropertyData { CorrelatedProperty = correlationPropertyData, SomeProperty = "foo" }; await SaveSaga(saga1); var updatedValue = "bar"; var context = configuration.GetContextBagForSagaStorage(); var persister = configuration.SagaStorage; using (var completeSession = await configuration.SynchronizedStorage.OpenSession(context)) { var sagaData = await persister.Get <SagaWithCorrelationPropertyData>(saga1.Id, completeSession, context); sagaData.SomeProperty = updatedValue; await persister.Update(sagaData, completeSession, context); await completeSession.CompleteAsync(); } var updatedSagaData = await GetById <SagaWithCorrelationPropertyData>(saga1.Id); Assert.That(updatedSagaData, Is.Not.Null); Assert.That(updatedSagaData.SomeProperty, Is.EqualTo(updatedValue)); }
public async Task It_should_persist_successfully() { var correlationPropertyData = Guid.NewGuid().ToString(); var saga1 = new SagaWithCorrelationPropertyData { CorrelatedProperty = correlationPropertyData, DataProperty = "saga1" }; var saga2 = new SagaWithCorrelationPropertyData { CorrelatedProperty = correlationPropertyData, DataProperty = "saga2" }; var persister = configuration.SagaStorage; await SaveSaga(saga1); var context1 = configuration.GetContextBagForSagaStorage(); using (var completeSession = await configuration.SynchronizedStorage.OpenSession(context1, default)) { var sagaData = await persister.Get <SagaWithCorrelationPropertyData>(nameof(saga1.CorrelatedProperty), correlationPropertyData, completeSession, context1, default); Assert.AreEqual(saga1.DataProperty, sagaData.DataProperty); await persister.Complete(sagaData, completeSession, context1, default); await completeSession.CompleteAsync(default);
public async Task It_should_enforce_uniqueness() { var correlationPropertyData = Guid.NewGuid().ToString(); var saga1 = new SagaWithCorrelationPropertyData { CorrelatedProperty = correlationPropertyData, DateTimeProperty = DateTime.UtcNow }; var saga2 = new SagaWithCorrelationPropertyData { CorrelatedProperty = correlationPropertyData, DateTimeProperty = DateTime.UtcNow }; var winningContextBag = configuration.GetContextBagForSagaStorage(); using (var winningSession = await configuration.SynchronizedStorage.OpenSession(winningContextBag)) { await SaveSagaWithSession(saga1, winningSession, winningContextBag); await winningSession.CompleteAsync(); } var losingContextBag = configuration.GetContextBagForSagaStorage(); using (var losingSession = await configuration.SynchronizedStorage.OpenSession(losingContextBag)) { Assert.That(async() => { await SaveSagaWithSession(saga2, losingSession, losingContextBag); await losingSession.CompleteAsync(); }, Throws.InstanceOf <Exception>()); } }
public async Task It_should_enforce_uniqueness() { var correlationPropertyData = Guid.NewGuid().ToString(); var saga1 = new SagaWithCorrelationPropertyData { CorrelatedProperty = correlationPropertyData, DateTimeProperty = DateTime.UtcNow }; var saga2 = new SagaWithCorrelationPropertyData { CorrelatedProperty = correlationPropertyData, DateTimeProperty = DateTime.UtcNow }; var winningContextBag = configuration.GetContextBagForSagaStorage(); using (var winningSession = await configuration.SynchronizedStorage.OpenSession(winningContextBag, default)) { await SaveSagaWithSession(saga1, winningSession, winningContextBag); await winningSession.CompleteAsync(default);
public async Task It_should_persist_successfully() { var correlationPropertyData = Guid.NewGuid().ToString(); var saga1 = new SagaWithCorrelationPropertyData { CorrelatedProperty = correlationPropertyData, DateTimeProperty = DateTime.UtcNow }; var saga2 = new AnotherSagaWithCorrelatedPropertyData { CorrelatedProperty = correlationPropertyData }; var persister = configuration.SagaStorage; var savingContextBag = configuration.GetContextBagForSagaStorage(); using (var session = await configuration.SynchronizedStorage.OpenSession(savingContextBag, default)) { await SaveSagaWithSession(saga1, session, savingContextBag); await SaveSagaWithSession(saga2, session, savingContextBag); await session.CompleteAsync(default);
public async Task It_should_persist_successfully() { var correlationPropertyData = Guid.NewGuid().ToString(); var saga1 = new SagaWithCorrelationPropertyData { CorrelatedProperty = correlationPropertyData, DateTimeProperty = DateTime.UtcNow }; var saga2 = new AnotherSagaWithCorrelatedPropertyData { CorrelatedProperty = correlationPropertyData }; var persister = configuration.SagaStorage; var savingContextBag = configuration.GetContextBagForSagaStorage(); using (var session = await configuration.SynchronizedStorage.OpenSession(savingContextBag)) { await SaveSagaWithSession(saga1, session, savingContextBag); await SaveSagaWithSession(saga2, session, savingContextBag); await session.CompleteAsync(); } var readContextBag = configuration.GetContextBagForSagaStorage(); using (var readSession = await configuration.SynchronizedStorage.OpenSession(readContextBag)) { var saga1Result = await persister.Get <SagaWithCorrelationPropertyData>(nameof(SagaWithCorrelationPropertyData.CorrelatedProperty), saga1.CorrelatedProperty, readSession, readContextBag); var saga2Result = await persister.Get <AnotherSagaWithCorrelatedPropertyData>(nameof(AnotherSagaWithCorrelatedPropertyData.CorrelatedProperty), saga2.CorrelatedProperty, readSession, readContextBag); Assert.AreEqual(saga1.CorrelatedProperty, saga1Result.CorrelatedProperty); Assert.AreEqual(saga2.CorrelatedProperty, saga2Result.CorrelatedProperty); } }