Esempio n. 1
0
        public void PlayersCanSendMessagesToAGroup()
        {
            CreateMessageGroupRequest request = new CreateMessageGroupRequest()
            {
                RoomId = gameId,
            };

            request.UserIdsInGroup.Add(authHelper.getAccountId(playerTwoInGame));
            request.UserIdsInGroup.Add(authHelper.getAccountId(playerOneInGame));

            CreateMessageGroupResponse groupResponse = client.CreateMessageGroup(request);

            Assert.AreEqual(groupResponse.Status.IsSuccess, true);
            Assert.IsTrue(groupResponse.GroupId != null);
            var groupId = groupResponse.GroupId;

            SendMessageResponse response = client.SendMessage(new SendMessageRequest()
            {
                GroupId = groupId,
                Message = "Hello!",
                RoomId  = gameId,
            });

            Assert.AreEqual(response.Status.IsSuccess, true);
        }
Esempio n. 2
0
        public void PlayersCanStartAChatWithAnotherPlayer()
        {
            CreateMessageGroupRequest request = new CreateMessageGroupRequest()
            {
                RoomId = gameId,
            };

            request.UserIdsInGroup.Add(authHelper.getAccountId(playerTwoInGame));
            request.UserIdsInGroup.Add(authHelper.getAccountId(playerOneInGame));

            CreateMessageGroupResponse groupResponse = client.CreateMessageGroup(request);

            Assert.AreEqual(groupResponse.Status.IsSuccess, true);
            Assert.IsTrue(groupResponse.GroupId != null);
        }
Esempio n. 3
0
        public void PlayersCannotStartAChatWithPlayersWhoAreNotInTheGame()
        {
            CreateMessageGroupRequest request = new CreateMessageGroupRequest()
            {
                RoomId = gameId,
            };

            request.UserIdsInGroup.Add(authHelper.getAccountId(playerOutOfGame));
            request.UserIdsInGroup.Add(authHelper.getAccountId(playerTwoInGame));
            request.UserIdsInGroup.Add(authHelper.getAccountId(playerOneInGame));

            CreateMessageGroupResponse groupResponse = client.CreateMessageGroup(request);

            Assert.AreEqual(groupResponse.Status.IsSuccess, false);
        }
Esempio n. 4
0
        public void AllPlayersCanChatInAGroupChatAndMessagesAreOrderedByDate()
        {
            CreateMessageGroupRequest request = new CreateMessageGroupRequest()
            {
                RoomId = gameId,
            };

            request.UserIdsInGroup.Add(authHelper.getAccountId(playerTwoInGame));
            request.UserIdsInGroup.Add(authHelper.getAccountId(playerOneInGame));
            request.UserIdsInGroup.Add(authHelper.getAccountId(playerThreeInGame));

            CreateMessageGroupResponse groupResponse = client.CreateMessageGroup(request);

            Assert.AreEqual(groupResponse.Status.IsSuccess, true);
            Assert.IsTrue(groupResponse.GroupId != null);
            var groupId = groupResponse.GroupId;

            SendMessageRequest messageRequest = new SendMessageRequest()
            {
                GroupId = groupId,
                Message = "Hello!",
                RoomId  = gameId,
            };

            client.SendMessage(messageRequest);

            authHelper.loginToAccount(playerTwoInGame);
            client.SendMessage(messageRequest);

            authHelper.loginToAccount(playerThreeInGame);
            client.SendMessage(messageRequest);

            GetGroupMessagesResponse messageResponse = client.GetGroupMessages(new GetGroupMessagesRequest()
            {
                GroupId    = groupId,
                RoomId     = gameId,
                Pagination = 1,
            });

            Assert.AreEqual(messageResponse.Status.IsSuccess, true);
            Assert.AreEqual(3, messageResponse.Group.Messages.Count);

            // Ensure messages are ordered by the most recently recieved ;)
            Assert.AreEqual(messageResponse.Group.Messages[0].SenderId, authHelper.getAccountId(playerThreeInGame));
            Assert.AreEqual(messageResponse.Group.Messages[1].SenderId, authHelper.getAccountId(playerTwoInGame));
            Assert.AreEqual(messageResponse.Group.Messages[2].SenderId, authHelper.getAccountId(playerOneInGame));
        }
        public override async Task <CreateMessageGroupResponse> CreateMessageGroup(CreateMessageGroupRequest request, ServerCallContext context)
        {
            DbUserModel dbUserModel = context.UserState["user"] as DbUserModel;

            if (dbUserModel == null)
            {
                return new CreateMessageGroupResponse()
                       {
                           Status = ResponseFactory.createResponse(ResponseType.UNAUTHORIZED)
                       }
            }
            ;

            Room room = await Room.GetRoomFromGuid(request.RoomId);

            if (room == null)
            {
                return new CreateMessageGroupResponse()
                       {
                           Status = ResponseFactory.createResponse(ResponseType.ROOM_DOES_NOT_EXIST)
                       }
            }
            ;

            if (room.GameConfiguration.RoomStatus != RoomStatus.Ongoing)
            {
                return new CreateMessageGroupResponse()
                       {
                           Status = ResponseFactory.createResponse(ResponseType.PERMISSION_DENIED),
                       }
            }
            ;

            if (!request.UserIdsInGroup.Contains(dbUserModel.UserModel.Id))
            {
                return new CreateMessageGroupResponse()
                       {
                           Status = ResponseFactory.createResponse(ResponseType.INVALID_REQUEST)
                       }
            }
            ;

            return(await room.CreateMessageGroup(request.UserIdsInGroup.ToList()));
        }
Esempio n. 6
0
        public void PlayerCanViewAnotherUsersMessageInAChat()
        {
            CreateMessageGroupRequest request = new CreateMessageGroupRequest()
            {
                RoomId = gameId,
            };

            request.UserIdsInGroup.Add(authHelper.getAccountId(playerTwoInGame));
            request.UserIdsInGroup.Add(authHelper.getAccountId(playerOneInGame));

            CreateMessageGroupResponse groupResponse = client.CreateMessageGroup(request);

            Assert.AreEqual(groupResponse.Status.IsSuccess, true);
            Assert.IsTrue(groupResponse.GroupId != null);
            var groupId = groupResponse.GroupId;

            SendMessageRequest messageRequest = new SendMessageRequest()
            {
                GroupId = groupId,
                Message = "Hello!",
                RoomId  = gameId,
            };

            client.SendMessage(messageRequest);
            client.SendMessage(messageRequest);
            client.SendMessage(messageRequest);
            client.SendMessage(messageRequest);
            client.SendMessage(messageRequest);
            client.SendMessage(messageRequest);

            authHelper.loginToAccount(playerTwoInGame);

            GetGroupMessagesResponse messageResponse = client.GetGroupMessages(new GetGroupMessagesRequest()
            {
                GroupId    = groupId,
                RoomId     = gameId,
                Pagination = 1,
            });

            Assert.AreEqual(messageResponse.Status.IsSuccess, true);
            Assert.AreEqual(6, messageResponse.Group.Messages.Count);
            Assert.AreEqual(messageResponse.Group.Messages[0].SenderId, authHelper.getAccountId(playerOneInGame));
        }