Exemplo n.º 1
0
        public async Task It_should_successfully_update_the_saga()
        {
            configuration.RequiresFindersSupport();

            var saga = new SagaWithoutCorrelationPropertyData()
            {
                SomeSagaProperty = "initial value"
            };

            await SaveSaga(saga);

            var updateValue = Guid.NewGuid().ToString();
            var context     = configuration.GetContextBagForSagaStorage();

            using (var completeSession = await configuration.SynchronizedStorage.OpenSession(context))
            {
                // the saga won't be loaded via a persister.Get operation in this case
                var customFinder = new CustomFinder(saga);
                var sagaData     = await customFinder.FindBy(new SagaWithoutCorrelationPropertyStartingMessage(), completeSession, context);

                sagaData.SomeSagaProperty = updateValue;

                await configuration.SagaStorage.Update(sagaData, completeSession, context);

                await completeSession.CompleteAsync();
            }

            var result = await GetById <SagaWithoutCorrelationPropertyData>(saga.Id);

            Assert.That(result, Is.Not.Null);
            Assert.That(result.SomeSagaProperty, Is.EqualTo(updateValue));
        }
        public async Task It_should_successfully_update_the_saga()
        {
            configuration.RequiresFindersSupport();

            var sagaData = new SagaWithoutCorrelationPropertyData
            {
                SomeSagaProperty = Guid.NewGuid().ToString(),
            };

            await SaveSaga(sagaData);

            var updateValue = Guid.NewGuid().ToString();
            var context     = configuration.GetContextBagForSagaStorage();

            using (var completeSession = await configuration.SynchronizedStorage.OpenSession(context))
            {
                sagaData = await configuration.SagaStorage.Get <SagaWithoutCorrelationPropertyData>(sagaData.Id, completeSession, context);

                sagaData.SomeSagaProperty = updateValue;

                await configuration.SagaStorage.Update(sagaData, completeSession, context);

                await completeSession.CompleteAsync();
            }

            var result = await GetById <SagaWithoutCorrelationPropertyData>(sagaData.Id);

            Assert.That(result, Is.Not.Null);
            Assert.That(result.SomeSagaProperty, Is.EqualTo(updateValue));
        }
        public async Task It_should_successfully_remove_the_saga()
        {
            configuration.RequiresFindersSupport();

            var propertyData = Guid.NewGuid().ToString();
            var saga         = new SagaWithoutCorrelationPropertyData
            {
                FoundByFinderProperty = propertyData,
                DateTimeProperty      = DateTime.UtcNow
            };

            await SaveSaga(saga);

            var context = configuration.GetContextBagForSagaStorage();

            using (var completeSession = await configuration.SynchronizedStorage.OpenSession(context))
            {
                var sagaData = await configuration.SagaStorage.Get <SagaWithoutCorrelationPropertyData>(saga.Id, completeSession, context);

                await configuration.SagaStorage.Complete(sagaData, completeSession, context);

                await completeSession.CompleteAsync();
            }

            var result = await GetById <SagaWithoutCorrelationPropertyData>(saga.Id);

            Assert.That(result, Is.Null);
        }
        public async Task It_should_persist_successfully_when_finder_exists()
        {
            configuration.RequiresFindersSupport();

            var sagaData = new SagaWithoutCorrelationPropertyData
            {
                FoundByFinderProperty = Guid.NewGuid().ToString(),
                DateTimeProperty      = DateTime.UtcNow
            };

            await SaveSaga(sagaData);

            var result = await GetById <SagaWithoutCorrelationPropertyData>(sagaData.Id);

            Assert.AreEqual(sagaData.FoundByFinderProperty, result.FoundByFinderProperty);
        }
        public async Task It_should_persist_successfully_when_finder_exists()
        {
            configuration.RequiresFindersSupport();

            var propertyData = Guid.NewGuid().ToString();
            var saga1        = new SagaWithoutCorrelationPropertyData
            {
                FoundByFinderProperty = propertyData,
                DateTimeProperty      = DateTime.UtcNow
            };
            var saga2 = new AnotherSagaWithoutCorrelationPropertyData
            {
                FoundByFinderProperty = propertyData
            };

            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);