Esempio n. 1
0
        public void Create_RefWithMultipleMatchingTransactionId_UseLastReference()
        {
            // Arrange
            var func      = new SagaStepResolver().Create();
            var sagaEvent = new SagaEvent01();

            var references = new List <ISagaReference>
            {
                new SagaReference(new SagaVersion("1.0.0"), 0, SagaMessageType.Command, sagaEvent.ProcessId, sagaEvent.TransactionId),
                new SagaReference(new SagaVersion("1.0.0"), 1, SagaMessageType.Command, sagaEvent.ProcessId, sagaEvent.TransactionId)
            };

            var configuration  = new SagaStepConfiguration <SagaEvent01, SagaStep01Mock>(new SagaVersion("1.0.0"), 2, null);
            var configurations = new List <ISagaStepConfiguration>
            {
                new SagaStepConfiguration <SagaEvent01, SagaStep01Mock>(new SagaVersion("1.0.0"), 0, null),
                new SagaStepConfiguration <SagaEvent01, SagaStep01Mock>(new SagaVersion("1.0.0"), 1, null),
                configuration,
            };

            // Act
            var result = func(sagaEvent, references, configurations);

            // Assert
            Assert.Same(configuration, result);
        }
Esempio n. 2
0
        public void Create_ConfigurationsNull_ThrowArgumentNull()
        {
            // Arrange
            var func      = new SagaStepResolver().Create();
            var sagaEvent = new SagaEvent01();

            IList <ISagaStepConfiguration> configurations = null;

            // Assert
            Assert.Throws <ArgumentNullException>(() => func(sagaEvent, null, configurations));
        }
Esempio n. 3
0
        public void Create_RefsNullOneStepWithFalsePredicate_ThrowInvalidOperation()
        {
            // Arrange
            var func      = new SagaStepResolver().Create();
            var sagaEvent = new SagaEvent01();

            var configurations = new List <ISagaStepConfiguration>
            {
                new SagaStepConfiguration <SagaEvent01, SagaStep01Mock>(new SagaVersion("1.0.0"), 0, _ => false)
            };

            // Assert
            Assert.Throws <InvalidOperationException>(() => func(sagaEvent, null, configurations));
        }
Esempio n. 4
0
        public void Create_EventNull_ThrowArgumentNull()
        {
            // Arrange
            var func           = new SagaStepResolver().Create();
            var configurations = new List <ISagaStepConfiguration>
            {
                new SagaStepConfiguration <SagaEvent01, SagaStep01Mock>(new SagaVersion("1.0.0"), 0, null)
            };

            ISagaEvent sagaEvent = null;

            // Assert
            Assert.Throws <ArgumentNullException>(() => func(sagaEvent, null, configurations));
        }
Esempio n. 5
0
        public void Create_RefsNullOneStepWithCorrectEvent_ReturnStep()
        {
            // Arrange
            var func           = new SagaStepResolver().Create();
            var sagaEvent      = new SagaEvent01();
            var configuartion  = new SagaStepConfiguration <SagaEvent01, SagaStep01Mock>(new SagaVersion("1.0.0"), 0, null);
            var configurations = new List <ISagaStepConfiguration>
            {
                configuartion
            };

            // Act
            var result = func(sagaEvent, null, configurations);

            // Assert
            Assert.Same(configuartion, result);
        }
Esempio n. 6
0
        public void Create_RefWithMatchingTransactionIdButFailingPredicate_ThrowInvalidOperation()
        {
            // Arrange
            var func      = new SagaStepResolver().Create();
            var sagaEvent = new SagaEvent01();

            var references = new List <ISagaReference>
            {
                new SagaReference(new SagaVersion("1.0.0"), 1, SagaMessageType.Command, sagaEvent.ProcessId, sagaEvent.TransactionId)
            };

            var configurations = new List <ISagaStepConfiguration>
            {
                new SagaStepConfiguration <SagaEvent01, SagaStep01Mock>(new SagaVersion("1.0.0"), 0, _ => false),
                new SagaStepConfiguration <SagaEvent01, SagaStep01Mock>(new SagaVersion("1.0.0"), 1, _ => false)
            };

            // Assert
            Assert.Throws <InvalidOperationException>(() => func(sagaEvent, references, configurations));
        }
Esempio n. 7
0
        public void Create_RefsNullLastStepTruePredicate_ReturnLastStep()
        {
            // Arrange
            var func      = new SagaStepResolver().Create();
            var sagaEvent = new SagaEvent01();

            var configuartion = new SagaStepConfiguration <SagaEvent01, SagaStep01Mock>(
                new SagaVersion("1.0.0"),
                1,
                sgEvnt => sgEvnt.TransactionId == sagaEvent.TransactionId);

            var configurations = new List <ISagaStepConfiguration>
            {
                new SagaStepConfiguration <SagaEvent01, SagaStep01Mock>(new SagaVersion("1.0.0"), 0, _ => false),
                configuartion
            };

            // Act
            var result = func(sagaEvent, null, configurations);

            // Assert
            Assert.Same(configuartion, result);
        }
Esempio n. 8
0
        public void Create_RefWithoutMatchingReferenceId_HandledLikeRefsNull()
        {
            // Arrange
            var func      = new SagaStepResolver().Create();
            var sagaEvent = new SagaEvent01();

            var references = new List <ISagaReference>
            {
                new SagaReference(new SagaVersion("1.0.0"), 0, SagaMessageType.Command, Guid.NewGuid(), sagaEvent.TransactionId)
            };

            var configuration  = new SagaStepConfiguration <SagaEvent01, SagaStep01Mock>(new SagaVersion("1.0.0"), 0, null);
            var configurations = new List <ISagaStepConfiguration>
            {
                configuration,
                new SagaStepConfiguration <SagaEvent01, SagaStep01Mock>(new SagaVersion("1.0.0"), 1, null)
            };

            // Act
            var result = func(sagaEvent, references, configurations);

            // Assert
            Assert.Same(configuration, result);
        }