PageRenderTime 40ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/Source/Bifrost.Specs/Sagas/for_SagaState/when_in_a_state_of_concluded.cs

#
C# | 36 lines | 30 code | 6 blank | 0 comment | 0 complexity | 1b0a209c1cf9d0d248da47375db28349 MD5 | raw file
Possible License(s): CC-BY-SA-3.0
  1. using System;
  2. using Bifrost.Sagas;
  3. using Bifrost.Sagas.Exceptions;
  4. using Machine.Specifications;
  5. namespace Bifrost.Specs.Sagas.for_SagaState
  6. {
  7. [Subject(typeof(SagaState))]
  8. public class when_in_a_state_of_concluded : given.a_state_of_concluded
  9. {
  10. static Exception exception_when_transitioning_to_an_invalid_state;
  11. static bool can_transition_to_new;
  12. static bool can_transition_to_begun;
  13. static bool can_transition_to_continuing;
  14. static bool can_transition_to_concluded;
  15. Because of = () =>
  16. {
  17. can_transition_to_new = state.CanTransitionTo(SagaState.NEW);
  18. can_transition_to_begun = state.CanTransitionTo(SagaState.BEGUN);
  19. can_transition_to_continuing = state.CanTransitionTo(SagaState.CONTINUING);
  20. can_transition_to_concluded = state.CanTransitionTo(SagaState.CONCLUDED);
  21. exception_when_transitioning_to_an_invalid_state = exception_when_transitioning_to_an_invalid_state = Catch.Exception(() => state.TransitionTo(SagaState.BEGUN));
  22. };
  23. It should_not_support_transitioning_to_new = () => can_transition_to_new.ShouldBeFalse();
  24. It should_not_support_transitioning_to_begun = () => can_transition_to_begun.ShouldBeFalse();
  25. It should_not_support_transitioning_to_continuing = () => can_transition_to_continuing.ShouldBeFalse();
  26. It should_support_transitioning_to_concluded = () => can_transition_to_concluded.ShouldBeFalse();
  27. It should_throw_an_invalid_saga_state_transition_exception_when_transitioning_to_an_invalid_state =
  28. () => exception_when_transitioning_to_an_invalid_state.ShouldBeOfType<InvalidSagaStateTransitionException>();
  29. }
  30. }