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()));
        }
Пример #2
0
        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);
        }
Пример #3
0
        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();
        }
Пример #4
0
        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();
        }