public void When_saga_receives_a_message_that_case_saga_exception() { var sagaId = Guid.NewGuid(); //prepare initial saga state var sagaData = new SoftwareProgrammingSagaData(nameof(SoftwareProgrammingSaga.MakingCoffee)) { PersonId = Guid.NewGuid() }; var sagaDataEvent = new SagaCreatedEvent <SoftwareProgrammingSagaData>(sagaData, sagaId); SaveInJournal <SagaDataAggregate <SoftwareProgrammingSagaData> >(sagaId, sagaDataEvent); var waiter = GridNode.NewWaiter(TimeSpan.FromSeconds(5)) .Expect <IFault <CoffeMakeFailedEvent> >() .Create(); GridNode.Transport.Publish(new CoffeMakeFailedEvent(Guid.Empty, sagaData.PersonId).CloneWithSaga(sagaId)); _fault = waiter.Result.Message <IFault <CoffeMakeFailedEvent> >(); }
public void When_publishing_start_message() { var sagaId = Guid.NewGuid(); _sagaData = new SoftwareProgrammingSagaData(nameof(SoftwareProgrammingSaga.MakingCoffee)) { PersonId = Guid.NewGuid() }; var sagaDataEvent = new SagaCreatedEvent <SoftwareProgrammingSagaData>(_sagaData, sagaId); SaveInJournal <SagaDataAggregate <SoftwareProgrammingSagaData> >(sagaId, sagaDataEvent); Thread.Sleep(100); _coffeMakeFailedEvent = new CoffeMakeFailedEvent(Guid.NewGuid(), Guid.NewGuid(), BusinessDateTime.UtcNow, sagaId); GridNode.Transport.Publish(_coffeMakeFailedEvent, new MessageMetadata(_coffeMakeFailedEvent.SourceId)); //WaitFor<SagaTransitionEvent<SoftwareProgrammingSagaData>>(); //WaitFor<SagaTransitionEvent<SoftwareProgrammingSagaData>>(); Thread.Sleep(1000); _sagaDataAggregate = LoadAggregate <SagaDataAggregate <SoftwareProgrammingSagaData> >(sagaId); }