public void Execute_doesnt_change_state_if_condition_not_met() { const SaleState startState = SaleState.Open; const SaleState endState = SaleState.Complete; var sale = new Sale(saleID: 66) { State = startState }; var sut = new StateTransitionAutoFallback <Sale, SaleState, SaleEvent>( GetStateMachine() , startState , toState: endState , condition: (_) => false , triggerState: startState , name: "test" , priority: 1); sut.Execute(new ExecutionParameters <Sale, SaleEvent>(SaleEvent.Pay, sale), GetDummyResult()); Assert.Equal(startState, sale.State); }
public void Execute_changes_state_if_condition_met() { const SaleState startState = SaleState.Open; const SaleState endState = SaleState.Complete; var sale = new Sale(saleId: 66) { State = startState }; var sut = new StateTransitionAutoFallback <Sale, SaleState, SaleEvent>( GetStateMachine() , startState , toState: endState , condition: _ => true , triggerState: startState , name: "test" , priority: 1); var result = sut.Execute(new ExecutionParameters <Sale, SaleEvent>(SaleEvent.Pay, sale), GetDummyResult()); Assert.True(result.WasTransitioned); Assert.Equal(endState, sale.State); }