public void AddEvent_Missing_Title_Should_Return_False() { var scheduler = new EventScheduler(); var result = scheduler.AddEvent("", DateTime.Now, DateTime.Now.AddHours(10)); Assert.IsFalse(result); Assert.IsFalse(scheduler.Events.Any()); }
public void AddEvent_StartDate_GreaterThan_End_Should_Return_False() { var scheduler = new EventScheduler(); var result = scheduler.AddEvent("Test Title", DateTime.Now.AddHours(10), DateTime.Now); Assert.IsFalse(result); Assert.IsFalse(scheduler.Events.Any()); }
public void AddEvent_StartDate_LessThan_End_Should_Return_True() { var scheduler = new EventScheduler(); var result = scheduler.AddEvent("Test Title", DateTime.Now, DateTime.Now.AddHours(10)); Assert.IsTrue(result); Assert.IsTrue(scheduler.Events.Count == 1); }
public void FindConflicts_OneEvent_Should_Return_EmptyList() { var scheduler = new EventScheduler(); scheduler.AddEvent("Test Title", DateTime.Now, DateTime.Now.AddHours(10)); var conflicts = scheduler.FindConflicts(); Assert.IsFalse(conflicts.Any()); }
public void FindConflicts_MultipleEvents_NoConflicts_Should_Return_EmptyList() { var scheduler = new EventScheduler(); scheduler.AddEvent("Testing1", DateTime.Now.AddHours(0), DateTime.Now.AddHours(10)); scheduler.AddEvent("Testing2", DateTime.Now.AddHours(10), DateTime.Now.AddHours(20)); scheduler.AddEvent("Testing3", DateTime.Now.AddHours(20), DateTime.Now.AddHours(29)); scheduler.AddEvent("Testing4", DateTime.Now.AddHours(30), DateTime.Now.AddHours(40)); scheduler.AddEvent("Testing5", DateTime.Now.AddHours(40), DateTime.Now.AddHours(50)); scheduler.AddEvent("Testing6", DateTime.Now.AddHours(50), DateTime.Now.AddHours(60)); scheduler.AddEvent("Testing7", DateTime.Now.AddHours(60), DateTime.Now.AddHours(70)); scheduler.AddEvent("Testing8", DateTime.Now.AddHours(70), DateTime.Now.AddHours(80)); scheduler.AddEvent("Testing9", DateTime.Now.AddHours(80), DateTime.Now.AddHours(90)); scheduler.AddEvent("Testing10", DateTime.Now.AddHours(90), DateTime.Now.AddHours(90)); var conflicts = scheduler.FindConflicts(); Assert.IsFalse(conflicts.Any()); }
public Game() : base() { _mapLayer = new LayerInfo("Map", 1, EngineConsts.SIDEBAR_WIDTH + 2, 1, EngineConsts.MAPVIEW_WIDTH, EngineConsts.MAPVIEW_HEIGHT); _infoLayer = new LayerInfo("Info", 1, 1, 1, EngineConsts.SIDEBAR_WIDTH, EngineConsts.SCREEN_HEIGHT); _radarLayer = new LayerInfo("Radar", 1, EngineConsts.SIDEBAR_WIDTH + EngineConsts.MAPVIEW_WIDTH + 3, 1, EngineConsts.SIDEBAR_R_WIDTH, EngineConsts.SCREEN_HEIGHT - EngineConsts.SIDEBAR_R_WIDTH - 1); _objectiveLayer = new LayerInfo("Objective", 1, EngineConsts.SIDEBAR_WIDTH + EngineConsts.MAPVIEW_WIDTH + 3, EngineConsts.SCREEN_HEIGHT - EngineConsts.SIDEBAR_R_WIDTH + 1, EngineConsts.SIDEBAR_R_WIDTH, EngineConsts.SIDEBAR_R_WIDTH); _messageLayer = new LayerInfo("Message", 1, EngineConsts.SIDEBAR_WIDTH + 2, EngineConsts.MAPVIEW_HEIGHT + 2, EngineConsts.MAPVIEW_WIDTH, EngineConsts.MESSAGE_HEIGHT); _mainLayer = new LayerInfo("Main", 11, 0, 0, EngineConsts.SCREEN_WIDTH + 2, EngineConsts.SCREEN_HEIGHT + 2); StateHandler = new StateHandler(MenuState.Instance, new Dictionary <Type, LayerInfo> { [typeof(MissionEndState)] = _mapLayer, [typeof(NormalState)] = _mapLayer, [typeof(TargettingState)] = _mapLayer, [typeof(MenuState)] = _mainLayer, [typeof(IntermissionFrameState)] = _mainLayer, }); AnimationHandler = new AnimationHandler(); MessagePanel = new MessagePanel(EngineConsts.MESSAGE_HISTORY_COUNT); EventScheduler = new EventScheduler(typeof(Player)); // attach event handlers EventScheduler.Subscribe <MoveCommand>(c => ((MoveCommand)c).Execute()); EventScheduler.Subscribe <TurnCommand>(c => ((TurnCommand)c).Execute()); EventScheduler.Subscribe <AttackCommand>(c => ((AttackCommand)c).Execute()); EventScheduler.Subscribe <AttackCommand>(c => { var ac = (AttackCommand)c; ac.Animation.MatchSome(anim => AnimationHandler.Add(ac.Source.Id, anim)); }); EventScheduler.Subscribe <DelayAttackCommand>(c => { var dc = (DelayAttackCommand)c; EventScheduler.AddEvent(new DelayAttack(dc.Delay, dc.Attack), dc.Delay); }); EventScheduler.Subscribe <MechDeathEvent>(c => { var mde = (MechDeathEvent)c; Mech mech = mde.Source; MapHandler.RemoveActor(mech); if (MapHandler.Field[mech.Pos].IsVisible) { MessagePanel.Add($"[color=info]Info[/color]: {mech.Name} destroyed"); MapHandler.Refresh(); } }); Reset(); ConfigureTerminal(); }
public void FindConflicts_MultipleEvents_WithConflicts_Should_Return_ConflictList() { var scheduler = new EventScheduler(); scheduler.AddEvent("Testing1", DateTime.Now.AddHours(0), DateTime.Now.AddHours(5)); scheduler.AddEvent("Testing2", DateTime.Now.AddHours(0), DateTime.Now.AddHours(10)); scheduler.AddEvent("Testing3", DateTime.Now.AddHours(2), DateTime.Now.AddHours(10)); scheduler.AddEvent("Testing4", DateTime.Now.AddHours(30), DateTime.Now.AddHours(50)); scheduler.AddEvent("Testing5", DateTime.Now.AddHours(50), DateTime.Now.AddHours(70)); scheduler.AddEvent("Testing6", DateTime.Now.AddHours(70), DateTime.Now.AddHours(90)); scheduler.AddEvent("Testing7", DateTime.Now.AddHours(90), DateTime.Now.AddHours(90)); scheduler.AddEvent("Testing8", DateTime.Now.AddHours(10), DateTime.Now.AddHours(20)); scheduler.AddEvent("Testing9", DateTime.Now.AddHours(91), DateTime.Now.AddHours(91)); scheduler.AddEvent("Testing10", DateTime.Now.AddHours(100), DateTime.Now.AddHours(105)); scheduler.AddEvent("Testing11", DateTime.Now.AddHours(100), DateTime.Now.AddHours(104)); var actualConflicts = scheduler.FindConflicts(); var expectedConflicts = new List <string> { "Testing1", "Testing2", "Testing3", "Testing10", "Testing11" }; Assert.IsTrue(actualConflicts.Select(i => i.Title).SequenceEqual(expectedConflicts)); }