public void TestTeardown() { this.logReader.StopLogging(); this.logReader.Clear(); this.listner.Dispose(); this.listner = null; }
/// <summary> /// Constructor /// </summary> /// <param name="msgListner">The event listner object that receives events</param> /// <param name="msgStore">The object that stores the messages</param> /// <param name="eventBehavior">The behavior object that interacts with incoming events</param> /// <param name="stateMachine">The state machine that interprets the events</param> /// <param name="timer">The periodic timer</param> public SpStateMachineEngine(ISpEventListner msgListner, ISpEventStore msgStore, ISpBehaviorOnEvent eventBehavior, ISpStateMachine stateMachine, ISpPeriodicTimer timer) { WrapErr.ChkParam(msgListner, "msgListner", 50050); WrapErr.ChkParam(msgStore, "msgStore", 50051); WrapErr.ChkParam(eventBehavior, "eventBehavior", 50052); WrapErr.ChkParam(stateMachine, "stateMachine", 50053); WrapErr.ChkParam(timer, "timer", 50054); WrapErr.ToErrorReportException(50055, () => { this.wakeUpAction = new Action(timer_OnWakeup); this.msgReceivedAction = new Action <ISpEventMessage>(this.eventListner_MsgReceived); this.msgListner = msgListner; this.msgStore = msgStore; this.eventBehavior = eventBehavior; this.stateMachine = stateMachine; this.timer = timer; this.driverThread = new Thread(new ThreadStart(this.DriverThread)); this.driverThread.Start(); this.msgListner.MsgReceived += this.msgReceivedAction; this.timer.OnWakeup += this.wakeUpAction; }); }
/// <summary> /// Constructor /// </summary> /// <param name="msgListner">The event listner object that receives events</param> /// <param name="msgStore">The object that stores the messages</param> /// <param name="eventBehavior">The behavior object that interacts with incoming events</param> /// <param name="stateMachine">The state machine that interprets the events</param> /// <param name="timer">The periodic timer</param> public SpStateMachineEngine(ISpEventListner msgListner, ISpEventStore msgStore, ISpBehaviorOnEvent eventBehavior, ISpStateMachine stateMachine, ISpPeriodicTimer timer) { WrapErr.ChkParam(msgListner, "msgListner", 50050); WrapErr.ChkParam(msgStore, "msgStore", 50051); WrapErr.ChkParam(eventBehavior, "eventBehavior", 50052); WrapErr.ChkParam(stateMachine, "stateMachine", 50053); WrapErr.ChkParam(timer, "timer", 50054); WrapErr.ToErrorReportException(50055, () => { this.wakeUpAction = new Action(timer_OnWakeup); this.msgReceivedAction = new Action<ISpEventMessage>(this.eventListner_MsgReceived); this.msgListner = msgListner; this.msgStore = msgStore; this.eventBehavior = eventBehavior; this.stateMachine = stateMachine; this.timer = timer; this.driverThread = new Thread(new ThreadStart(this.DriverThread)); this.driverThread.Start(); this.msgListner.MsgReceived += this.msgReceivedAction; this.timer.OnWakeup += this.wakeUpAction; }); }
private void DoTick(ISpEventListner listner, ISpState <MyMsgId> st, string expected, bool assertOnFail = true) { listner.PostMessage(new MyBaseMsg(MyMsgType.SimpleMsg, MyMsgId.Tick)); Thread.Sleep(600); //Log.Warning(9, () => string.Format("State:{0}", st.CurrentStateName)); Log.Warning(0, () => string.Format(" -*-*- Current state: {0} -*-*-", st.CurrentStateName)); if (assertOnFail) { Assert.AreEqual(expected, st.CurrentStateName); } }
/// <summary> /// Dispose managed resources (those with Dispose methods) /// </summary> private void DisposeManagedResources() { Log.DebugEntry(this.className, "DisposeManagedResources"); this.DisposeObject(this.timer, "timer"); this.DisposeObject(this.eventBehavior, "eventBehavior"); this.DisposeObject(this.stateMachine, "stateMachine"); this.DisposeObject(this.msgStore, "msgStore"); this.DisposeObject(this.msgListner, "msgListner"); this.timer = null; this.eventBehavior = null; this.stateMachine = null; this.msgStore = null; this.msgListner = null; }
private SpStateMachineEngine GetEngine(out ISpEventListner listner, MyDataClass dataClass, ISpState <MyMsgId> firstState) { ISpStateMachine sm = new MyStateMachine(dataClass, firstState); ISpEventStore store = new SimpleDequeEventStore(new MyTickMsg()); ISpBehaviorOnEvent behavior = new SpPeriodicWakeupOnly(); ISpPeriodicTimer timer = new WinSimpleTimer(new TimeSpan(0, 0, 0, 0, 500)); //ISpEventListner listner = new SimpleEventListner(); listner = new SimpleEventListner(); // To avoid log errors if no subscribers listner.ResponseReceived += new EventHandler((o, e) => { }); // Simulates DI return(new SpStateMachineEngine(listner, store, behavior, sm, timer)); }
/// <summary> /// Dispose managed resources (those with Dispose methods) /// </summary> private void DisposeManagedResources() { Log.DebugEntry(this.className, "DisposeManagedResources"); this.DisposeObject(this.timer, "timer"); this.DisposeObject(this.eventBehavior, "eventBehavior"); this.DisposeObject(this.stateMachine, "stateMachine"); this.DisposeObject(this.msgStore, "msgStore"); this.DisposeObject(this.msgListner, "msgListner"); this.timer = null; this.eventBehavior = null; this.stateMachine = null; this.msgStore = null; this.msgListner = null; }
private SpStateMachineEngine GetEngine(out ISpEventListner listner, MyDataClass dataClass, ISpState firstState) { ISpStateMachine sm = new MyStateMachine(dataClass, firstState); ISpEventStore store = new SimpleDequeEventStore(new MyTickMsg()); ISpBehaviorOnEvent behavior = new SpPeriodicWakeupOnly(); ISpPeriodicTimer timer = new WinSimpleTimer(new TimeSpan(0, 0, 0, 0, 500)); //ISpEventListner listner = new SimpleEventListner(); listner = new SimpleEventListner(); listner.ResponseReceived += new Action<ISpEventMessage>((msg) => { }); // Simulates DI return new SpStateMachineEngine(listner, store, behavior, sm, timer); }
public void TestSetup() { this.logReader.StartLogging(); this.listner = new SimpleEventListner(); }