public IActionResult CreateGameLobby([FromBody] CreateGameLobby gameLobbyViewModel) { GameLobby gameLobby = new GameLobby { GameLobbyName = gameLobbyViewModel.GameLobbyName, GameMode = gameLobbyViewModel.GameMode, MaxRoomLimit = 4 }; if (HttpContext.User.InGameLobby()) { return(BadRequest()); } gameLobbyService.AddGameLobby(gameLobby, HttpContext.User); return(Ok(gameLobby.ApiGetGameLobby())); }
public void AddGameLobby_ThrowsAUserInLobbyException_WhenUserIsInLobby() { //Arrange int userId = 25; var gameLobby = new GameLobby(); var mock = new Mock <IGameLobbyRepository>(); mock.Setup(m => m.GetLobbyByOwnerId(userId)) .ReturnsAsync(() => gameLobby); var service = new GameLobbyService(mock.Object); //Act var ex = Assert.ThrowsAsync <UserAlreadyHaveALobbyException>( async() => await service.AddGameLobby(userId, gameSettingList)); //Assert Assert.IsNotNull(ex); mock.Verify(m => m.GetLobbyByOwnerId(userId), Times.Once); }
public async Task AddGameLobby_Succeeds_WhenUserIsNotInAnyLobby() { //Arrange int userId = 25; gameSettingList.Add(GameSetting); var mock = new Mock <IGameLobbyRepository>(); mock.Setup(m => m.AddGameLobby(It.IsAny <GameLobby>())); mock.Setup(m => m.GetLobbyByOwnerId(userId)) .ReturnsAsync(() => null); mock.Setup(m => m.GetGameLobbyByLobbyCode(It.IsAny <string>())); var service = new GameLobbyService(mock.Object); //Act await service.AddGameLobby(userId, gameSettingList); //Assert mock.VerifyAll(); }
public async Task AddGameLobby_GenerateLobbyCodeTwice_WhenTheFirstGameCodeHasALobby() { //Arrange int userId = 25; var gameLobby = new GameLobby(); var mock = new Mock <IGameLobbyRepository>(); mock.Setup(m => m.AddGameLobby(It.IsAny <GameLobby>())); mock.Setup(m => m.GetLobbyByOwnerId(userId)) .ReturnsAsync(() => null); mock.SetupSequence(m => m.GetGameLobbyByLobbyCode(It.IsAny <string>())) .ReturnsAsync(() => gameLobby) .ReturnsAsync(() => null); var service = new GameLobbyService(mock.Object); //Act await service.AddGameLobby(userId, gameSettingList); //Assert mock.Verify(m => m.GetGameLobbyByLobbyCode(It.IsAny <string>()), Times.Exactly(2)); mock.VerifyAll(); }