static bool TestErrorFlow() { try { StateMachineWithoutValueImplementation sm = new StateMachineWithoutValueImplementation(); sm.Execute(StateMachineWithoutValue.EventTypes.BeginTest); sm.Execute(StateMachineWithoutValue.EventTypes.Advance); try { sm.Execute(StateMachineWithoutValue.EventTypes.CauseError); Console.WriteLine("TestErrorFlow failed"); return(true); } catch (EnteredErrorStateException) { // This was supposed to happen } return(false); } catch (Exception e) { Console.WriteLine("TestErrorFlow raised " + e.Message); return(true); } }
static bool TestInvalidTransition() { try { StateMachineWithoutValueImplementation sm = new StateMachineWithoutValueImplementation(); sm.Execute(StateMachineWithoutValue.EventTypes.BeginTest); sm.Execute(StateMachineWithoutValue.EventTypes.Advance); try { sm.Execute(StateMachineWithoutValue.EventTypes.Advance); } catch (UnexpectedEventException) { return(false); } Console.WriteLine("TestInvalidTransition failed"); return(true); } catch (Exception e) { Console.WriteLine("TestInvalidTransition raised " + e.Message); return(true); } }
static bool TestEventAfterActionException() { try { StateMachineWithoutValueImplementation sm = new StateMachineWithoutValueImplementation(); sm.Execute(StateMachineWithoutValue.EventTypes.BeginTest); sm.Execute(StateMachineWithoutValue.EventTypes.Advance); try { sm.Execute(StateMachineWithoutValue.EventTypes.CauseActionError); Console.WriteLine("TestErrorFlow failed"); return(true); } catch (ActionRaisedException) { try { sm.Execute(StateMachineWithoutValue.EventTypes.Finish); Console.WriteLine("TestEventAfterActionException failed"); return(true); } catch (EnteredErrorStateException) { } } return(false); } catch (Exception e) { Console.WriteLine("TestEventAfterActionException raised " + e.Message); return(true); } }
static bool TestNormalFlow() { try { StateMachineWithoutValueImplementation sm = new StateMachineWithoutValueImplementation(); sm.Execute(StateMachineWithoutValue.EventTypes.BeginTest); sm.Execute(StateMachineWithoutValue.EventTypes.Advance); sm.Execute(StateMachineWithoutValue.EventTypes.Finish); return(false); } catch (Exception e) { Console.WriteLine("TestNormalFlow raised " + e.Message); return(true); } }