Пример #1
0
        public async Task GivenChangeNickNameCommandWhenExecutingHandleThanReturnTheCommandExecutionMessage()
        {
            var nickname = "foo";
            var command  = "/changenickname bar";
            var expected = ServerMessageConstants.GetMessage(ServerMessageConstants.SUCCESSFULLY_CHANGED_NICKNAME, "bar");
            Mock <WebSocket>          originSocketMock      = new Mock <WebSocket>();
            Mock <IConnectionManager> connectionManagerMock = new Mock <IConnectionManager>();
            Mock <ISocketHandler>     socketHandlerMock     = new Mock <ISocketHandler>();
            var chatCommandHandler = new ChatCommandHandler(connectionManagerMock.Object, socketHandlerMock.Object);

            var taskResult = await chatCommandHandler.Handle(originSocketMock.Object, nickname, command);

            Assert.Equal(taskResult, expected);
        }
Пример #2
0
        public async Task GivenExitCommandWhenExecutingHandleThanReturnTheCommandExecutionMessage()
        {
            var nickname = "foo";
            var command  = "/exit";
            var expected = ServerMessageConstants.DISCONNECT_MESSAGE;
            Mock <WebSocket>          webSocketMock         = new Mock <WebSocket>();
            Mock <IConnectionManager> connectionManagerMock = new Mock <IConnectionManager>();
            Mock <ISocketHandler>     socketHandlerMock     = new Mock <ISocketHandler>();
            var chatCommandHandler = new ChatCommandHandler(connectionManagerMock.Object, socketHandlerMock.Object);

            var taskResult = await chatCommandHandler.Handle(webSocketMock.Object, nickname, command);

            Assert.Equal(taskResult, expected);
        }
Пример #3
0
        public async Task GivenInvalidCommandWhenExecutingHandleThanReturnTheInvalidCommandErrorMessage()
        {
            var nickname = "foo";
            var command  = "/barbar";
            var expected = ServerMessageConstants.GetMessage(ServerMessageConstants.COMMAND_INVALID, command);

            Mock <WebSocket>          originSocketMock      = new Mock <WebSocket>();
            Mock <IConnectionManager> connectionManagerMock = new Mock <IConnectionManager>();
            Mock <ISocketHandler>     socketHandlerMock     = new Mock <ISocketHandler>();
            var chatCommandHandler = new ChatCommandHandler(connectionManagerMock.Object, socketHandlerMock.Object);

            var taskResult = await chatCommandHandler.Handle(originSocketMock.Object, nickname, command);

            Assert.Equal(taskResult, expected);
        }
Пример #4
0
        public async Task GivenHelpCommandWhenExecutingHandleThanReturnTheCommandExecutionMessage()
        {
            var nickname = "foo";
            var command  = "/help";
            var expected = string.Join("\n", CommandHelper.ValidCommands.Select(p => p.Description));

            Mock <WebSocket>          originSocketMock      = new Mock <WebSocket>();
            Mock <IConnectionManager> connectionManagerMock = new Mock <IConnectionManager>();
            Mock <ISocketHandler>     socketHandlerMock     = new Mock <ISocketHandler>();
            var chatCommandHandler = new ChatCommandHandler(connectionManagerMock.Object, socketHandlerMock.Object);

            var taskResult = await chatCommandHandler.Handle(originSocketMock.Object, nickname, command);

            Assert.Equal(taskResult, expected);
        }
Пример #5
0
        public async Task GivenPrivateMessageCommandWhenExecutingHandleThanReturnTheCommandExecutionMessage()
        {
            var nickname = "foo";
            var command  = "/p bar message";
            var expected = ServerMessageConstants.GetMessage(ServerMessageConstants.PRIVATE_MESSAGE, nickname, "bar", "message");
            Mock <WebSocket>          originSocketMock      = new Mock <WebSocket>();
            Mock <WebSocket>          targetSocketMock      = new Mock <WebSocket>();
            Mock <IConnectionManager> connectionManagerMock = new Mock <IConnectionManager>();

            connectionManagerMock.Setup(p => p.GetSocketByNickName(It.IsAny <string>())).Returns(targetSocketMock.Object);
            Mock <ISocketHandler> socketHandlerMock = new Mock <ISocketHandler>();
            var chatCommandHandler = new ChatCommandHandler(connectionManagerMock.Object, socketHandlerMock.Object);

            var taskResult = await chatCommandHandler.Handle(originSocketMock.Object, nickname, command);

            Assert.Equal(taskResult, expected);
        }
        /// <summary>
        /// Recieves the request
        /// </summary>
        /// <param name="socket"></param>
        /// <param name="result"></param>
        /// <param name="buffer"></param>
        /// <returns></returns>
        public async Task RecieveRequest(WebSocket socket, WebSocketReceiveResult result, byte[] buffer)
        {
            var nickname = _connectionManager.GetNickNameBySocket(socket);

            var rawMessage = buffer.GetBufferedMessage(result.Count);

            if (string.IsNullOrWhiteSpace(nickname))
            {
                await _chatRegistrationHandler.Handle(socket, nickname, rawMessage);
            }
            else if (rawMessage.StartsWith("/"))
            {
                await _chatCommandHandler.Handle(socket, nickname, rawMessage);
            }
            else
            {
                await _chatMessageHandler.Handle(socket, nickname, rawMessage);
            }
        }