Пример #1
0
        public void Test()
        {
            _sagaState = new SoftwareProgrammingSagaState(Guid.NewGuid(), SoftwareProgrammingSaga.States.MakingCoffee);
            _sagaState.RememberPerson(Guid.NewGuid());
            _sagaState.ClearEvents();

            var data = DomainSerializer.Serialize(_sagaState);

            _restoredState = DomainSerializer.Deserialize <SoftwareProgrammingSagaState>(data);
        }
Пример #2
0
        public void Test()
        {
            _sagaState = new SoftwareProgrammingSagaState(Guid.NewGuid(), SoftwareProgrammingSaga.States.MakingCoffee);
            _sagaState.RememberPerson(Guid.NewGuid());
            _sagaState.RememberBadCoffeMachine(Guid.NewGuid());
            _sagaState.ClearEvents();

            var repo = new AggregateSnapshotRepository(AkkaConf.Persistence.JournalConnectionString, GridNode.AggregateFromSnapshotsFactory);

            repo.Add(_sagaState);

            _restoredState = LoadSagaState <SoftwareProgrammingSaga, SoftwareProgrammingSagaState>(_sagaState.Id);
        }
        public async Task When_start_message_has_saga_id()
        {
            _sagaId   = Guid.NewGuid();
            _personId = Guid.NewGuid();

            var sagaStartEvent = new GotTiredEvent(_personId).CloneWithSaga(_sagaId);

            await GridNode.NewDebugWaiter()
            .Expect <MakeCoffeCommand>()
            .Create()
            .Publish(sagaStartEvent);

            _sagaState = LoadSagaState <SoftwareProgrammingSaga, SoftwareProgrammingSagaState>(_sagaId);
        }
Пример #4
0
        public void Given_new_saga_with_state()
        {
            var sagaState = new SoftwareProgrammingSagaState(Guid.NewGuid(), SoftwareProgrammingSaga.States.MakingCoffee);

            Saga = new SoftwareProgrammingSaga(sagaState);


            Messages = new[]
            {
                new CoffeMakeFailedEvent(sagaState.Id, sagaState.CoffeMachineId),
                new CoffeMakeFailedEvent(sagaState.Id, sagaState.CoffeMachineId),
                new CoffeMakeFailedEvent(sagaState.Id, sagaState.CoffeMachineId),
                new CoffeMakeFailedEvent(sagaState.Id, sagaState.CoffeMachineId)
            };
        }
        public void When_remember_message()
        {
            var publisher = GridNode.Container.Resolve <IPublisher>();

            _sagaId = Guid.NewGuid();

            _personId        = Guid.NewGuid();
            _coffeeMachineId = Guid.NewGuid();
            publisher.Publish(new GotTiredEvent(_personId).CloneWithSaga(_sagaId));
            publisher.Publish(new CoffeMakeFailedEvent(_coffeeMachineId, _personId).CloneWithSaga(_sagaId));

            Thread.Sleep(TimeSpan.FromSeconds(1));

            _sagaState = LoadSagaState <SoftwareProgrammingSaga, SoftwareProgrammingSagaState>(_sagaId);
        }
 public Given_State_SoftareProgramming_Saga(SoftwareProgrammingSagaState initialState)
 {
     SagaMachine       = new SoftwareProgrammingSaga(initialState);
     SagaDataAggregate = initialState;
 }
        public void Given_new_saga_with_state(SoftwareProgrammingSaga.States states)
        {
            var sagaState = new SoftwareProgrammingSagaState(Guid.NewGuid(), states);

            SagaInstance = new SoftwareProgrammingSaga(sagaState);
        }