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());
        }
示例#2
0
        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);
        }
示例#4
0
        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);
        }