public async Task LoadSaga_DeserializesExisting() { var context = new QueueContext { }; var testSaga = new TestSaga { }; dataAccess.Setup(d => d.GetSagaData(It.IsAny <string>(), It.IsAny <string>())) .Returns(Task.FromResult(new SagaData { Blocked = false, Data = "{}", Key = "SagaKey", })); serializer.Setup(s => s.DeserializeSaga("{}", typeof(TestSagaData))) .Returns(new TestSagaData()); await reader.LoadSaga(testSaga, context); Assert.IsNotNull(testSaga.Data); serializer.Verify(s => s.DeserializeSaga("{}", typeof(TestSagaData)), Times.Once); }
public async Task SaveSaga_UpdatesExistingSagaData() { var context = new QueueContext { MessageData = new QueueMessage { Id = 12345, NotBefore = clock.Object.UtcNow, }, SourceQueue = "SourceQueue", SagaKey = "SagaKey", SagaData = new SagaData { Key = "SagaKey", Data = "InitialData", } }; var testSaga = new TestSaga { SagaComplete = false }; await reader.SaveSaga(testSaga, context); dataAccess.Verify(d => d.Update(It.IsAny <SagaData>(), It.IsAny <string>()), Times.Once); Assert.AreEqual(testSaga.SagaName, UpdatedSagaName); Assert.AreEqual("SerializedTestSagaData", UpdatedSagaData.Data); Assert.AreEqual(context.SagaKey, UpdatedSagaData.Key); }
public void Should_have_the_saga_instance_with_the_value() { TestSaga saga = _test.Saga.Created.Contains(_sagaId); saga.ShouldNotBeNull(); saga.ValueA.ShouldEqual(_testValueA); }
public async Task BuilderTest2() { var context = new FakeContext(); var saga = new TestSaga(); await saga.Execute(context); }
public void Should_track_changes() { var agg = new TestSaga(_dependencyResolver, Guid.NewGuid()); _unitOfWork.Add(agg); var saga = _unitOfWork.Get <TestSaga>(agg.Id); Assert.AreEqual(agg, saga); }
protected virtual void EstablishContext() { var saga = new TestSaga(Guid.NewGuid()); var inspector = new SagaStateMachineEventInspector<TestSaga>(); saga.Inspect(inspector); Results = inspector.GetResults().ToArray(); }
public void StartSagaSaga(string sagaId, string profileName) { ObjectFactory.GetInstance <IBus>().CurrentMessageContext.Headers[BusExtensions.PROFILENAME_KEY] = profileName; _sagaId = new Guid(sagaId); _saga = new TestSaga { Data = new TestSagaData { Id = _sagaId } }; }
public void StartSagaByProfile(string sagaDataValue, string profileName) { ObjectFactory.GetInstance <IBus>().CurrentMessageContext.Headers[BusExtensions.PROFILENAME_KEY] = profileName; _sagaId = Guid.NewGuid(); _saga = new TestSaga { Data = new TestSagaData { TestValue = sagaDataValue, Id = _sagaId } }; }
protected virtual void EstablishContext() { var saga = new TestSaga(Guid.NewGuid()); var inspector = new SagaStateMachineEventInspector <TestSaga>(); saga.Inspect(inspector); Results = inspector.GetResults().ToArray(); }
public async Task Should_receive_the_message_a() { Guid?sagaId = await _repository.ShouldContainSaga(_sagaId, TestTimeout); Assert.IsTrue(sagaId.HasValue); TestSaga saga = _repository[sagaId.Value].Instance; await saga.A.Task; }
public void Initialize_should_throw_when_message_is_not_mapped() { //arrange var id = "something-unique"; var store = new Mock <ISagaStore>(); var saga = new TestSaga(); var startMessage = new TestSagaMessage(id); var handler = new SagaHandler <TestSagaData, TestSagaMessage>(store.Object, saga, startMessage); //act & assert handler.Awaiting(x => x.Initialize()).Should().Throw <SagaMessageMappingNotFoundException>(); }
public async Task Should_receive_the_message_b() { Guid?sagaId = await _repository.ShouldContainSaga(_sagaId, TestTimeout); Assert.IsTrue(sagaId.HasValue); TestSaga saga = _repository[sagaId.Value].Instance; await InputQueueSendEndpoint.Send(new B { CorrelationId = _sagaId }); await saga.B.Task; }
public async Task Initialize_should_start_new_saga_when_start_message_is_received() { //arrange var id = "something-unique"; var store = new Mock <ISagaStore>(); var saga = new TestSaga(); var startMessage = new TestSagaStartMessage(id); var handler = new SagaHandler <TestSagaData, TestSagaStartMessage>(store.Object, saga, startMessage); //act await handler.Initialize(); //assert store.Verify(x => x.Create(saga.PartitionKey, id, It.IsAny <TestSagaData>()), Times.Once); }
public static void SagaTest1() { SagaStateHelper hh = new SagaStateHelper(); var repo = new Mock<ISagaRepository>(); hh.SagaStateRepo = repo.Object; hh.UseDbRecordLocking = true; var m = new SagaMessage1 { Id = "T1" }; var sh = new TestSaga(); hh.DispatchToSaga(null, m, true, true, sh, sb => { }); }
public async Task LoadSaga_InitializesWhenNew() { var context = new QueueContext { }; var testSaga = new TestSaga { }; dataAccess.Setup(d => d.GetSagaData(It.IsAny <string>(), It.IsAny <string>())) .Returns(Task.FromResult <SagaData>(null)); await reader.LoadSaga(testSaga, context); Assert.IsNotNull(testSaga.Data); }
public async Task SaveSaga_DeletesCompleteSaga() { var context = new QueueContext { MessageData = new QueueMessage { Id = 12345, NotBefore = clock.Object.UtcNow, }, SourceQueue = "SourceQueue", SagaKey = "SagaKey" }; var testSaga = new TestSaga { SagaComplete = true }; await reader.SaveSaga(testSaga, context); dataAccess.Verify(d => d.DeleteSagaData(testSaga.SagaName, context.SagaKey), Times.Once); }
public async Task LoadSaga_ReturnsWhenBlocked() { var context = new QueueContext { }; var testSaga = new TestSaga { }; dataAccess.Setup(d => d.GetSagaData(It.IsAny <string>(), It.IsAny <string>())) .Returns(Task.FromResult(new SagaData { Blocked = true, Data = "{}", Key = "SagaKey", })); await reader.LoadSaga(testSaga, context); Assert.IsNull(testSaga.Data); Assert.IsTrue(context.SagaData.Blocked); }
protected override void Context() { base.Context(); _id = "something"; _testSaga = new TestSaga(_id); }
IEnumerable <Action <IConsumeContext <InitiateSimpleSaga> > > GetHandlers(TestSaga instance, IConsumeContext <InitiateSimpleSaga> context) { yield return(x => instance.RaiseEvent(TestSaga.Initiate, x.Message)); }
private IEnumerable<Action<IConsumeContext<InitiateSimpleSaga>>> GetHandlers( TestSaga instance, IConsumeContext<InitiateSimpleSaga> context) { yield return x => instance.RaiseEvent(TestSaga.Initiate, x.Message); }