public void GetCurrentTask_BlockedNodeSelectedAsAlternate_NoExceptions() { // ARRANGE _factActorNode = _map.Nodes.OfType <HexNode>().SelectBy(1, 1); _map.HoldNode(_factActorNode, _actor); var blockedNode = _map.Nodes.OfType <HexNode>().SelectBy(2, 1); var blockerMock = new Mock <IPassMapBlocker>(); var blocker = blockerMock.Object; _map.HoldNode(blockedNode, blocker); var decisionSourceMock = new Mock <IDecisionSource>(); decisionSourceMock.Setup(x => x.SelectIdleDuration(It.IsAny <int>(), It.IsAny <int>())) .Returns(ExpectedIdleDuration); decisionSourceMock.Setup(x => x.SelectTargetRoamingNode(It.IsAny <IEnumerable <IMapNode> >())) .Returns(blockedNode); var decisionSource = decisionSourceMock.Object; var actors = new List <IActor> { _actor }; var actorListMock = new Mock <IActorManager>(); actorListMock.SetupGet(x => x.Items).Returns(actors); var actorList = actorListMock.Object; var tacticalActUsageService = CreateTacticalActUsageService(); var logic = new RoamingLogic(_actor, _map, actorList, decisionSource, tacticalActUsageService); // ACT Action act = () => { var task = logic.GetCurrentTask(); task.Execute(); }; // ASSERT act.Should().NotThrow(); }
public void GetCurrentTask_IntruderNear_ActorWalkToIntruder() { // ARRANGE var expectedActorNode = _map.Nodes.OfType <HexNode>().SelectBy(2, 1); _factActorNode = _map.Nodes.OfType <HexNode>().SelectBy(1, 1); _map.HoldNode(_factActorNode, _actor); _factIntruderNode = _map.Nodes.OfType <HexNode>().SelectBy(3, 1); _map.HoldNode(_factIntruderNode, _intruder); var tacticalActUsageService = CreateTacticalActUsageService(); var logic = new RoamingLogic(_actor, _map, _actorList, _decisionSource, tacticalActUsageService); // ACT var task = logic.GetCurrentTask(); task.Execute(); // ASSERT _factActorNode.Should().Be(expectedActorNode); }