public void BlockingAPlayerAfterSendingThemAFriendRequestRemovesTheFriendRequest()
        {
            authHelper.loginToAccount("userOne");

            SendFriendRequestRequest request = new SendFriendRequestRequest()
            {
                FriendId = authHelper.getAccountId("userTwo")
            };

            SendFriendRequestResponse response = client.SendFriendRequest(request);

            Assert.AreEqual(response.Status.IsSuccess, true);

            BlockPlayerRequest blockRequest = new BlockPlayerRequest()
            {
                UserIdToBlock = authHelper.getAccountId("userTwo")
            };

            client.BlockPlayer(blockRequest);
            authHelper.loginToAccount("userTwo");

            // Make sure the players are not friends.
            ViewFriendRequestsResponse blockFriendListResponse = client.ViewFriendRequests(new ViewFriendRequestsRequest());

            Assert.AreEqual(blockFriendListResponse.Status.IsSuccess, true);
            Assert.AreEqual(0, blockFriendListResponse.IncomingFriends.Count);
        }
        public void PlayerCanUnblockAPlayerAfterBlockingThem()
        {
            BlockPlayerRequest request = new BlockPlayerRequest()
            {
                UserIdToBlock = authHelper.getAccountId("userTwo")
            };

            BlockPlayerResponse response = client.BlockPlayer(request);

            Assert.AreEqual(response.Status.IsSuccess, true);

            ViewBlockedPlayersResponse blockResponse = client.ViewBlockedPlayers(new ViewBlockedPlayersRequest());

            Assert.AreEqual(blockResponse.Status.IsSuccess, true);
            Assert.AreEqual(1, blockResponse.BlockedUsers.Count);
            Assert.IsTrue(blockResponse.BlockedUsers.Any(it => it.Id == authHelper.getAccountId("userTwo")));

            UnblockPlayerRequest unblockRequest = new UnblockPlayerRequest()
            {
                UserIdToBlock = authHelper.getAccountId("userTwo")
            };

            UnblockPlayerResponse unblockResponse = client.UnblockPlayer(unblockRequest);

            Assert.AreEqual(unblockResponse.Status.IsSuccess, true);

            ViewBlockedPlayersResponse blockedUserResponse = client.ViewBlockedPlayers(new ViewBlockedPlayersRequest());

            Assert.AreEqual(blockedUserResponse.Status.IsSuccess, true);
            Assert.AreEqual(0, blockedUserResponse.BlockedUsers.Count);
        }
        public void PlayerCannotGetAFriendRequestFromABlockedPlayer()
        {
            authHelper.loginToAccount("userOne");

            BlockPlayerRequest blockPlayerRequest = new BlockPlayerRequest()
            {
                UserIdToBlock = authHelper.getAccountId("userTwo")
            };

            client.BlockPlayer(blockPlayerRequest);
            authHelper.loginToAccount("userTwo");

            SendFriendRequestRequest request = new SendFriendRequestRequest()
            {
                FriendId = authHelper.getAccountId("userOne")
            };

            var exception = client.SendFriendRequest(request);

            Assert.AreEqual(exception.Status.IsSuccess, false);
            Assert.AreEqual(exception.Status.Detail, ResponseType.PLAYER_IS_BLOCKED.ToString());

            authHelper.loginToAccount("userOne");

            var friendResponse = client.ViewFriendRequests(new ViewFriendRequestsRequest());

            Assert.AreEqual(friendResponse.Status.IsSuccess, true);
            Assert.AreEqual(0, friendResponse.IncomingFriends.Count);
        }
        public void PlayerCanBlockAnotherPlayer()
        {
            BlockPlayerRequest request = new BlockPlayerRequest()
            {
                UserIdToBlock = authHelper.getAccountId("userTwo")
            };

            BlockPlayerResponse response = client.BlockPlayer(request);

            Assert.AreEqual(response.Status.IsSuccess, true);
        }
        public void PlayerCannotBlockInvalidPlayerId()
        {
            BlockPlayerRequest request = new BlockPlayerRequest()
            {
                UserIdToBlock = "asdfasdfasdf"
            };

            var response = client.BlockPlayer(request);

            Assert.AreEqual(response.Status.IsSuccess, false);
            Assert.AreEqual(response.Status.Detail, ResponseType.PLAYER_DOES_NOT_EXIST.ToString());
        }
        public void BlockingAPlayerRemovesThemAsAFriend()
        {
            authHelper.loginToAccount("userOne");

            SendFriendRequestRequest request = new SendFriendRequestRequest()
            {
                FriendId = authHelper.getAccountId("userTwo")
            };

            SendFriendRequestResponse response = client.SendFriendRequest(request);

            Assert.AreEqual(response.Status.IsSuccess, true);

            authHelper.loginToAccount("userTwo");

            AcceptFriendRequestRequest friendRequest = new AcceptFriendRequestRequest()
            {
                FriendId = authHelper.getAccountId("userOne"),
            };

            AcceptFriendRequestResponse acceptResponse = client.AcceptFriendRequest(friendRequest);

            Assert.AreEqual(acceptResponse.Status.IsSuccess, true);

            ViewFriendsResponse friendResponse = client.ViewFriends(new ViewFriendsRequest());

            Assert.AreEqual(friendResponse.Status.IsSuccess, true);
            Assert.AreEqual(1, friendResponse.Friends.Count);
            Assert.IsTrue(friendResponse.Friends.Any((friend) => friend.Id == authHelper.getAccountId("userOne")));

            BlockPlayerRequest blockRequest = new BlockPlayerRequest()
            {
                UserIdToBlock = authHelper.getAccountId("userOne")
            };

            BlockPlayerResponse blockResponse = client.BlockPlayer(blockRequest);

            Assert.AreEqual(blockResponse.Status.IsSuccess, true);

            // Make sure the players are not friends.
            ViewFriendsResponse blockFriendListResponse = client.ViewFriends(new ViewFriendsRequest());

            Assert.AreEqual(blockFriendListResponse.Status.IsSuccess, true);
            Assert.AreEqual(0, blockFriendListResponse.Friends.Count);

            authHelper.loginToAccount("userOne");

            // Make sure the players are not friends.
            ViewFriendsResponse blockFriendListResponseUserOne = client.ViewFriends(new ViewFriendsRequest());

            Assert.AreEqual(blockFriendListResponseUserOne.Status.IsSuccess, true);
            Assert.AreEqual(0, blockFriendListResponseUserOne.Friends.Count);
        }
        public void PlayerCannotBlockTheSamePlayerTwice()
        {
            BlockPlayerRequest request = new BlockPlayerRequest()
            {
                UserIdToBlock = authHelper.getAccountId("userTwo")
            };

            BlockPlayerResponse response = client.BlockPlayer(request);

            Assert.IsTrue(response != null);

            var errorResonse = client.BlockPlayer(request);

            Assert.AreEqual(errorResonse.Status.IsSuccess, false);
            Assert.AreEqual(errorResonse.Status.Detail, ResponseType.DUPLICATE.ToString());
        }
        public void AfterBlockingAPlayerTheyAppearOnTheBlockList()
        {
            BlockPlayerRequest request = new BlockPlayerRequest()
            {
                UserIdToBlock = authHelper.getAccountId("userTwo")
            };

            BlockPlayerResponse response = client.BlockPlayer(request);

            Assert.AreEqual(response.Status.IsSuccess, true);

            ViewBlockedPlayersResponse blockResponse = client.ViewBlockedPlayers(new ViewBlockedPlayersRequest());

            Assert.AreEqual(blockResponse.Status.IsSuccess, true);
            Assert.AreEqual(1, blockResponse.BlockedUsers.Count);
            Assert.IsTrue(blockResponse.BlockedUsers.Any(it => it.Id == authHelper.getAccountId("userTwo")));
        }
        public void PlayerCannotSendAFriendRequestToABlockedPlayer()
        {
            authHelper.loginToAccount("userOne");

            BlockPlayerRequest blockPlayerRequest = new BlockPlayerRequest()
            {
                UserIdToBlock = authHelper.getAccountId("userTwo")
            };

            client.BlockPlayer(blockPlayerRequest);

            SendFriendRequestRequest request = new SendFriendRequestRequest()
            {
                FriendId = authHelper.getAccountId("userTwo")
            };

            var exception = client.SendFriendRequest(request);

            Assert.AreEqual(exception.Status.IsSuccess, false);
            Assert.AreEqual(exception.Status.Detail, ResponseType.PLAYER_IS_BLOCKED.ToString());
        }
        public override async Task <BlockPlayerResponse> BlockPlayer(BlockPlayerRequest request, ServerCallContext context)
        {
            DbUserModel dbUserModel = context.UserState["user"] as DbUserModel;

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

            DbUserModel friend = await DbUserModel.GetUserFromGuid(request.UserIdToBlock);

            if (friend == null)
            {
                return new BlockPlayerResponse()
                       {
                           Status = ResponseFactory.createResponse(ResponseType.PLAYER_DOES_NOT_EXIST)
                       }
            }
            ;

            if (await dbUserModel.IsBlocked(friend))
            {
                return new BlockPlayerResponse()
                       {
                           Status = ResponseFactory.createResponse(ResponseType.DUPLICATE)
                       }
            }
            ;

            await dbUserModel.BlockUser(friend);

            return(new BlockPlayerResponse()
            {
                Status = ResponseFactory.createResponse(ResponseType.SUCCESS)
            });
        }
Example #11
0
 public override void BlockPlayer(IRpcController controller, BlockPlayerRequest request, Action <BlockPlayerResponse> done)
 {
     ProtoOutputBuffer.Write(request.GetType(), request.ToString());
 }
Example #12
0
 public override void BlockPlayer(IRpcController controller, BlockPlayerRequest request, Action<BlockPlayerResponse> done)
 {
     throw new NotImplementedException();
 }
Example #13
0
 public override void BlockPlayer(IRpcController controller, BlockPlayerRequest request, Action<BlockPlayerResponse> done)
 {
     ProtoOutputBuffer.Write(request.GetType(), request.ToString());
 }
        public override void CallServerMethod(uint token, uint methodId, CodedInputStream stream)
        {
            switch (methodId)
            {
            case 1:
            {
                SubscribeRequest request = new SubscribeRequest();
                request.MergeFrom(stream);

                SubscribeResponse     response = new SubscribeResponse();
                BattlenetRpcErrorCode status   = HandleSubscribe(request, response);
                Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method UserManagerService.Subscribe(bgs.protocol.user_manager.v1.SubscribeRequest: {1}) returned bgs.protocol.user_manager.v1.SubscribeResponse: {2} status: {3}.",
                             GetCallerInfo(), request.ToString(), response.ToString(), status);
                if (status == 0)
                {
                    SendResponse(token, response);
                }
                else
                {
                    SendResponse(token, status);
                }
                break;
            }

            case 10:
            {
                AddRecentPlayersRequest request = new AddRecentPlayersRequest();
                request.MergeFrom(stream);

                AddRecentPlayersResponse response = new AddRecentPlayersResponse();
                BattlenetRpcErrorCode    status   = HandleAddRecentPlayers(request, response);
                Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method UserManagerService.AddRecentPlayers(bgs.protocol.user_manager.v1.AddRecentPlayersRequest: {1}) returned bgs.protocol.user_manager.v1.AddRecentPlayersResponse: {2} status: {3}.",
                             GetCallerInfo(), request.ToString(), response.ToString(), status);
                if (status == 0)
                {
                    SendResponse(token, response);
                }
                else
                {
                    SendResponse(token, status);
                }
                break;
            }

            case 11:
            {
                ClearRecentPlayersRequest request = new ClearRecentPlayersRequest();
                request.MergeFrom(stream);


                ClearRecentPlayersResponse response = new ClearRecentPlayersResponse();
                BattlenetRpcErrorCode      status   = HandleClearRecentPlayers(request, response);
                Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method UserManagerService.ClearRecentPlayers(bgs.protocol.user_manager.v1.ClearRecentPlayersRequest: {1}) returned bgs.protocol.user_manager.v1.ClearRecentPlayersResponse: {2} status: {3}.",
                             GetCallerInfo(), request.ToString(), response.ToString(), status);
                if (status == 0)
                {
                    SendResponse(token, response);
                }
                else
                {
                    SendResponse(token, status);
                }
                break;
            }

            case 20:
            {
                BlockPlayerRequest request = new BlockPlayerRequest();
                request.MergeFrom(stream);


                NoData response = new NoData();
                BattlenetRpcErrorCode status = HandleBlockPlayer(request, response);
                Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method UserManagerService.BlockPlayer(bgs.protocol.user_manager.v1.BlockPlayerRequest: {1}) returned bgs.protocol.NoData: {2} status: {3}.",
                             GetCallerInfo(), request.ToString(), response.ToString(), status);
                if (status == 0)
                {
                    SendResponse(token, response);
                }
                else
                {
                    SendResponse(token, status);
                }
                break;
            }

            case 21:
            {
                UnblockPlayerRequest request = new UnblockPlayerRequest();
                request.MergeFrom(stream);


                NoData response = new NoData();
                BattlenetRpcErrorCode status = HandleUnblockPlayer(request, response);
                Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method UserManagerService.UnblockPlayer(bgs.protocol.user_manager.v1.UnblockPlayerRequest: {1}) returned bgs.protocol.NoData: {2} status: {3}.",
                             GetCallerInfo(), request.ToString(), response.ToString(), status);
                if (status == 0)
                {
                    SendResponse(token, response);
                }
                else
                {
                    SendResponse(token, status);
                }
                break;
            }

            case 40:
            {
                BlockPlayerRequest request = new BlockPlayerRequest();
                request.MergeFrom(stream);


                NoData response = new NoData();
                BattlenetRpcErrorCode status = HandleBlockPlayerForSession(request, response);
                Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method UserManagerService.BlockPlayerForSession(bgs.protocol.user_manager.v1.BlockPlayerRequest: {1}) returned bgs.protocol.NoData: {2} status: {3}.",
                             GetCallerInfo(), request.ToString(), response.ToString(), status);
                if (status == 0)
                {
                    SendResponse(token, response);
                }
                else
                {
                    SendResponse(token, status);
                }
                break;
            }

            case 50:
            {
                EntityId request = new EntityId();
                request.MergeFrom(stream);


                NoData response = new NoData();
                BattlenetRpcErrorCode status = HandleLoadBlockList(request, response);
                Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method UserManagerService.LoadBlockList(bgs.protocol.EntityId: {1}) returned bgs.protocol.NoData: {2} status: {3}.",
                             GetCallerInfo(), request.ToString(), response.ToString(), status);
                if (status == 0)
                {
                    SendResponse(token, response);
                }
                else
                {
                    SendResponse(token, status);
                }
                break;
            }

            case 51:
            {
                UnsubscribeRequest request = new UnsubscribeRequest();
                request.MergeFrom(stream);


                NoData response = new NoData();
                BattlenetRpcErrorCode status = HandleUnsubscribe(request, response);
                Log.outDebug(LogFilter.ServiceProtobuf, "{0} Client called server method UserManagerService.Unsubscribe(bgs.protocol.user_manager.v1.UnsubscribeRequest: {1}) returned bgs.protocol.NoData: {2} status: {3}.",
                             GetCallerInfo(), request.ToString(), response.ToString(), status);
                if (status == 0)
                {
                    SendResponse(token, response);
                }
                else
                {
                    SendResponse(token, status);
                }
                break;
            }

            default:
                Log.outError(LogFilter.ServiceProtobuf, "Bad method id {0}.", methodId);
                SendResponse(token, BattlenetRpcErrorCode.RpcInvalidMethod);
                break;
            }
        }
 BattlenetRpcErrorCode HandleBlockPlayerForSession(BlockPlayerRequest request, NoData response)
 {
     Log.outError(LogFilter.ServiceProtobuf, "{0} Client tried to call not implemented method UserManagerService.BlockPlayerForSession: {1}",
                  GetCallerInfo(), request.ToString());
     return(BattlenetRpcErrorCode.RpcNotImplemented);
 }
Example #16
0
 public override void BlockPlayer(Google.ProtocolBuffers.IRpcController controller, BlockPlayerRequest request, Action <BlockPlayerResponse> done)
 {
     throw new NotImplementedException();
 }