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"); }
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"); }