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