public void Selector_RunTillEnd() { var state = new State(); var test = 0; var selector = new Selector( new Conditional(_ => { test++; return(false); }), new Conditional(_ => { test++; return(false); }), new Conditional(_ => { test++; return(false); }), new Conditional(_ => { test++; return(false); }), new Conditional(_ => { test++; return(false); }) ); Assert.Equal(RoutineStatus.Running, selector.Act(state)); Assert.Equal(1, test); Assert.Equal(RoutineStatus.Running, selector.Act(state)); Assert.Equal(2, test); Assert.Equal(RoutineStatus.Running, selector.Act(state)); Assert.Equal(3, test); Assert.Equal(RoutineStatus.Running, selector.Act(state)); Assert.Equal(4, test); Assert.Equal(RoutineStatus.Failure, selector.Act(state)); Assert.Equal(5, test); Assert.Equal(RoutineStatus.Failure, selector.Act(state)); Assert.Equal(5, test); }