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)); }
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); }