public void ShouldNotifyPathFinishedIfPathDone() { DetermineStepState state = new DetermineStepState(playerMock.Object); state.OnEntry(); state.OnDuring(); playerMock.Verify(f => f.NotifyPathFinished(), Times.Once); }
public void ShouldRequestToLookAtNextPos() { playerMock.Setup(f => f.HasNextStep()).Returns(true); playerMock.Setup(f => f.GetNextStep()).Returns(new Vector2Int(15, 13)); DetermineStepState state = new DetermineStepState(playerMock.Object); state.OnEntry(); state.OnDuring(); playerMock.Verify(f => f.RequestLookAt(It.Is <Vector2Int>(v2 => v2 == new Vector2Int(15, 13))), Times.Once); }
public void GoToTargetStateIfNotCombatStarted() { playerMock.Setup(f => f.HasNextStep()).Returns(true); playerMock.Setup(f => f.GetNextStep()).Returns(new Vector2Int(15, 13)); playerMock.Setup(f => f.GridPosition).Returns(new Vector2Int(15, 13)); combatManagerMock.Setup(f => f.PlayerEntersTile(It.Is <Vector2Int>(v2 => v2 == new Vector2Int(15, 13)))).Returns(false); DetermineStepState state = new DetermineStepState(playerMock.Object); state.OnEntry(); state.HandleEvent(new DetermineStepState.TurningFinishedEvent()); Assert.IsTrue(state.OnDuring() is GoToTargetState); }
public void ShouldBeAbleToThrowEventStraightAway() { playerMock.Setup(f => f.HasNextStep()).Returns(true); playerMock.Setup(f => f.GetNextStep()).Returns(new Vector2Int(15, 13)); playerMock.Setup(f => f.GridPosition).Returns(new Vector2Int(15, 13)); combatManagerMock.Setup(f => f.PlayerEntersTile(It.Is <Vector2Int>(v2 => v2 == new Vector2Int(15, 13)))).Returns(false); DetermineStepState state = new DetermineStepState(playerMock.Object); playerMock.Setup(f => f.RequestLookAt(It.IsAny <Vector2Int>())).Callback <Vector2Int>(v2 => state.HandleEvent(new DetermineStepState.TurningFinishedEvent())); state.OnEntry(); Assert.IsTrue(state.OnDuring() is GoToTargetState); }
public void ShouldProgressOnEvent() { playerMock.Setup(f => f.HasNextStep()).Returns(true); playerMock.Setup(f => f.GetNextStep()).Returns(new Vector2Int(15, 13)); DetermineStepState state = new DetermineStepState(playerMock.Object); state.OnEntry(); Assert.IsNull(state.OnDuring()); for (int i = 0; i < 10; i++) { // spin to show we're not changing Assert.IsNull(state.OnDuring()); } state.HandleEvent(new DetermineStepState.TurningFinishedEvent()); Assert.IsNotNull(state.OnDuring()); }