コード例 #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);
        }
コード例 #2
0
        public void Create_ServiceProviderIsNull_ThrowsArgumentNull()
        {
            // Arrange
            var sagaStepConfiguration = new SagaStepConfiguration <SagaEvent01, SagaStep01Mock>(new SagaVersion("1.0.0"), 1, null);

            // Assert
            Assert.Throws <ArgumentNullException>(() => sagaStepConfiguration.Create(null));
        }
コード例 #3
0
        public void IsResponsible_EventTypeNotEqualPredicateReturnsTrue_ReturnFalse()
        {
            // Arrange
            var sagaStepConfiguration = new SagaStepConfiguration <SagaEvent01, SagaStep01Mock>(new SagaVersion("1.0.0"), 1, _ => true);
            var sagaEvent             = new SagaEvent02();

            // Act
            var result = sagaStepConfiguration.IsResponsible(sagaEvent);

            // Assert
            Assert.False(result);
        }
コード例 #4
0
        public void IsResponsible_EventTypeEqualPredicateNull_ReturnTrue()
        {
            // Arrange
            var sagaStepConfiguration = new SagaStepConfiguration <SagaEvent01, SagaStep01Mock>(new SagaVersion("1.0.0"), 1, null);
            var sagaEvent             = new SagaEvent01();

            // Act
            var result = sagaStepConfiguration.IsResponsible(sagaEvent);

            // Assert
            Assert.True(result);
        }
コード例 #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);
        }
コード例 #6
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);
        }
コード例 #7
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);
        }