Пример #1
0
        public void PositionShipOnGrid_ShouldUseServiceToPositionTheShip()
        {
            //Arrange
            Guid gameId = Guid.NewGuid();
            ShipPositioningModel model = new ShipPositioningModelBuilder().Build();

            Result expectedResult = Result.CreateSuccessResult();

            _gameServiceMock.Setup(service => service.PositionShipOnGrid(It.IsAny <Guid>(), It.IsAny <Guid>(),
                                                                         It.IsAny <ShipKind>(), It.IsAny <GridCoordinate[]>()))
            .Returns(expectedResult);

            //Act
            var result = _controller.PositionShipOnGrid(gameId, model).Result as OkObjectResult;

            //Assert
            Assert.That(result, Is.Not.Null, "An instance of 'OkObjectResult' should be returned.");

            _userManagerMock.Verify(manager => manager.GetUserAsync(It.IsAny <ClaimsPrincipal>()), Times.Once,
                                    "The 'GetUserAsync' of the UserManager is not called");
            _gameServiceMock.Verify(service =>
                                    service.PositionShipOnGrid(gameId, _loggedInUser.Id,
                                                               It.Is <ShipKind>(kind => kind.Code == model.ShipCode),
                                                               It.Is <GridCoordinate[]>(ca => ca.Length == model.SegmentCoordinates.Length &&
                                                                                        ca.All(c => model.SegmentCoordinates.Any(mc =>
                                                                                                                                 c.Row == mc.Row && c.Column == mc.Column)))),
                                    Times.Once, "The 'PositionShipOnGrid' of the IGameService is not called correctly.");

            Assert.That(result.Value, Is.SameAs(expectedResult));
        }
Пример #2
0
        public void PositionShipOnGrid_ShouldReturnBadRequestWhenAnApplicationExceptionOccurs()
        {
            //Arrange
            Guid gameId = Guid.NewGuid();
            ShipPositioningModel model = new ShipPositioningModelBuilder().Build();

            _gameServiceMock.Setup(service =>
                                   service.PositionShipOnGrid(It.IsAny <Guid>(), It.IsAny <Guid>(), It.IsAny <ShipKind>(), It.IsAny <GridCoordinate[]>()))
            .Throws <ApplicationException>();

            ActAndAssertPositionShipOnGridShouldReturnBadRequest(gameId, model);
        }