Example #1
0
        public void Throw_An_Exception_If_User_Tries_To_Iterate_Over_Behaviours_With_A_Null_Delegate()
        {
            var fsm = new HierarchicalStateMachine <int, int>();

            Assert.Throws <ArgumentNullException>(() => fsm.ForeachBehaviour(null));
            Assert.Throws <ArgumentNullException>(() => fsm.ForeachBehaviourOn(1, null));
        }
Example #2
0
        public void Iterate_Over_All_Behaviours()
        {
            var fsm = new HierarchicalStateMachine <int, int>();

            var stateBehaviour1 = Substitute.For <IStateBehaviour>();
            var stateBehaviour2 = Substitute.For <IStateBehaviour>();

            fsm.AddWithBehaviours(1, stateBehaviour1, stateBehaviour2);

            var behaviours = new List <IStateBehaviour>();

            behaviours.Add(stateBehaviour1);
            behaviours.Add(stateBehaviour2);

            fsm.ForeachBehaviour(behaviour =>
            {
                behaviours.Remove(behaviour);
                return(false);
            });

            Assert.IsTrue(behaviours.Count == 0);
        }