public void WorksWithUserProvidedConnectionWithoutStartedTransaction()
        {
            var sagaId = Guid.NewGuid();
            var sagaData = new SomeSagaData { JustSomething = "hey!", Id = sagaId };

            persister.Insert(sagaData, new string[0]);
        }
Beispiel #2
0
        public void WorksWithUserProvidedConnectionWithoutStartedTransaction()
        {
            var sagaId   = Guid.NewGuid();
            var sagaData = new SomeSagaData {
                JustSomething = "hey!", Id = sagaId
            };

            persister.Insert(sagaData, new string[0]);
        }
        public void GetsNullIfSagaCannotBeFound()
        {
            var sagaData = new SomeSagaData {AggregatedObject = new SomeAggregatedObject {SomeRandomValue = "whooHAAA!"}};
            persister.Save(sagaData, new[] {""});

            persister.Find(Reflect.Path<SomeSagaData>(d => d.AggregatedObject.SomeRandomValue),
                           "NO MATCH",
                           SagaDataTypeDoesntMatter)
                .ShouldBe(null);

            persister.Find("Invalid.Path.To.Nothing", "whooHAAA!", SagaDataTypeDoesntMatter).ShouldBe(null);
        }
        public void CanSaveAndFindSagasById()
        {
            persister.UseIndex(new[] {"Id"});
            var someId = Guid.NewGuid();
            var mySagaData = new SomeSagaData{Id=someId};

            persister.Save(mySagaData, new[]{""});
            SagaDataTypeDoesntMatter = null;
            var storedSagaData = persister.Find("Id", someId.ToString(), SagaDataTypeDoesntMatter);

            storedSagaData.ShouldBeSameAs(mySagaData);
        }
        public void CanSaveAndFindSagasByDeepPath()
        {
            persister.UseIndex(new[] {Reflect.Path<SomeSagaData>(d => d.AggregatedObject.SomeRandomValue)});
            var mySagaData = new SomeSagaData{AggregatedObject = new SomeAggregatedObject{SomeRandomValue = "whooHAAA!"}};

            persister.Save(mySagaData, new[] { "" });
            var storedSagaData = persister.Find(Reflect.Path<SomeSagaData>(d => d.AggregatedObject.SomeRandomValue),
                                                "whooHAAA!",
                                                SagaDataTypeDoesntMatter);

            storedSagaData.ShouldBeSameAs(mySagaData);
        }
Beispiel #6
0
        public void AddShouldAddToAvailableSagaData()
        {
            var someSagaData = new SomeSagaData {
                JustSomeText = Guid.NewGuid().ToString()
            };

            var fixture = new SagaFixture <SomeSagaData>(new SomeSaga())
            {
                someSagaData
            };

            fixture.OfType <SomeSagaData>().First().JustSomeText.ShouldBe(someSagaData.JustSomeText);
        }
        public void WorksWithUserProvidedConnectionWithStartedTransaction()
        {
            // arrange
            var sagaId = Guid.NewGuid();
            var sagaData = new SomeSagaData { JustSomething = "hey!", Id = sagaId };

            // act
            BeginTransaction();

            // assert
            persister.Insert(sagaData, new string[0]);

            CommitTransaction();
        }
Beispiel #8
0
        public void WorksWithUserProvidedConnectionWithStartedTransaction()
        {
            // arrange
            var sagaId   = Guid.NewGuid();
            var sagaData = new SomeSagaData {
                JustSomething = "hey!", Id = sagaId
            };

            // act
            BeginTransaction();

            // assert
            persister.Insert(sagaData, new string[0]);

            CommitTransaction();
        }
Beispiel #9
0
        public void CanUseSagaDataProvidedInVariousWays(string howToProvideSagaData)
        {
            // arrange
            const string recognizableText = "this, I can recognize!";
            var          someSagaData     = new SomeSagaData {
                SagaDataId = 10, JustSomeText = recognizableText
            };
            SagaFixture <SomeSagaData> fixture;

            switch (howToProvideSagaData)
            {
            //case "in the list":
            //    fixture = new SagaFixture<SomeSagaData>(new SomeSaga(), new List<SomeSagaData> { someSagaData });
            //    break;

            case "after the fact":
                fixture = new SagaFixture <SomeSagaData>(new SomeSaga());
                fixture.AddSagaData(someSagaData);
                break;

            default:
                throw new ArgumentException(string.Format("Don't know how to provide saga data like this: {0}", howToProvideSagaData), "howToProvideSagaData");
            }

            // act
            fixture.Handle(new SomeMessage {
                SagaDataId = 10
            });

            // assert
            var availableSagaData = fixture.AvailableSagaData;

            availableSagaData.Count().ShouldBe(1);
            var sagaDataClone = availableSagaData.Single(d => d.SagaDataId == 10);

            sagaDataClone.JustSomeText.ShouldBe(recognizableText);
        }