コード例 #1
0
        public void AttackOnShip_ShouldBeOkAndHitOutcome()
        {
            var attackRequest = new AttackRequest()
            {
                Coordinate = new Coordinate(3, 5)
            };
            var boardId             = Guid.NewGuid();
            var attackOutcome       = AttackOutcome.Hit;
            var gameplayServiceMock = new Mock <IGameplayService>();

            gameplayServiceMock.Setup(m => m.AttackOpponent(boardId, attackRequest)).Returns(attackOutcome);
            var gameplayController = new GameplayController(gameplayServiceMock.Object);

            var response = gameplayController.AttackOpponent(boardId, attackRequest);

            Assert.IsTrue(response.Result is OkObjectResult);
            var responseAttackOutcome = ((response.Result as OkObjectResult)?.Value as AttackResult).Outcome;

            Assert.AreEqual(attackOutcome, responseAttackOutcome);
            gameplayServiceMock.Verify(mock => mock.AttackOpponent(boardId, attackRequest), Times.Once());
        }