public void allow_ignoring_messages_by_common_ancestor() { var fsm = new VNodeFSMBuilder(() => VNodeState.Master) .InAnyState() .When <P>().Ignore() .WhenOther().Do(x => Assert.Fail("{0} slipped through", x.GetType().Name)) .Build(); fsm.Handle(new A()); fsm.Handle(new B()); }
public void allow_ignoring_messages_by_common_ancestor() { var fsm = new VNodeFSMBuilder(() => VNodeState.Master) .InAnyState() .When<P>().Ignore() .WhenOther().Do(x => Assert.Fail("{0} slipped through", x.GetType().Name)) .Build(); fsm.Handle(new A()); fsm.Handle(new B()); }
public void handle_specific_message_even_if_base_message_is_ignored() { bool aHandled = false; var fsm = new VNodeFSMBuilder(() => VNodeState.Master) .InAnyState() .When <P>().Ignore() .When <A>().Do(x => aHandled = true) .WhenOther().Do(x => Assert.Fail("{0} slipped through", x.GetType().Name)) .Build(); fsm.Handle(new A()); fsm.Handle(new B()); Assert.IsTrue(aHandled); }
public void handle_specific_message_even_if_base_message_is_ignored() { bool aHandled = false; var fsm = new VNodeFSMBuilder(() => VNodeState.Master) .InAnyState() .When<P>().Ignore() .When<A>().Do(x => aHandled = true) .WhenOther().Do(x => Assert.Fail("{0} slipped through", x.GetType().Name)) .Build(); fsm.Handle(new A()); fsm.Handle(new B()); Assert.IsTrue(aHandled); }