Beispiel #1
0
        public void NewGameMustReturnGameIdInRepo()
        {
            // Given
            long mockedGameId = 1;

            playerMock.SetupSequence(m => m.GetPlayerById(It.IsAny <long>()))
            .Returns(new Player(""))
            .Returns(new Player(""));
            gameMock.Setup(m => m.AddGame(It.IsAny <TicTacToeImpl>()))
            .Returns(mockedGameId);

            // When
            IBoringToeService service = new BoringToeService(gameMock.Object, playerMock.Object);
            long resp = service.NewGame(new BoringToeNewGameRequest(10, 20));

            // Then
            Assert.AreEqual(mockedGameId, resp, "Added game Id must be mocked one");
            playerMock.Verify(m => m.GetPlayerById(It.IsAny <long>()), Times.Exactly(2), "Must call 2 times to player repository get");
            gameMock.Verify(m => m.AddGame(It.IsAny <TicTacToeImpl>()), Times.Once, "Must call game repository add game once");
        }
Beispiel #2
0
        public void NewGameExceptionMustBeThrownWhenPlayerBNotExistsInDatabase()
        {
            // Given
            playerMock.SetupSequence(m => m.GetPlayerById(It.IsAny <long>()))
            .Returns(new Player(""))
            .Throws(new NotExistingValueException("", ErrorCode.VALUE_NOT_EXISTING_IN_DATABASE));

            // When
            IBoringToeService service = new BoringToeService(gameMock.Object, playerMock.Object);

            // Then
            NotValidValueException resp = Assert.Throws <NotValidValueException>(() => service.NewGame(new BoringToeNewGameRequest(10, 20)), "New game must raise an exception");

            Assert.AreEqual(ErrorCode.PLAYER_B_NOT_EXISTING, resp.ErrorCode, "Exception's error code must be PLAYER_B_NOT_EXISTING");
            playerMock.Verify(m => m.GetPlayerById(It.IsAny <long>()), Times.Exactly(2), "Must call 2 times to player repository get");
        }