コード例 #1
0
        public void Test_Connect_ReceivedWaitMessage()
        {
            var mockConnection = Substitute.For <IMessageSender>();
            var client         = new ChatClient.Client(mockConnection);

            client.Connect("127.0.0.1", 5050);

            mockConnection.Received().WaitMessage();
        }
コード例 #2
0
        public void Test_Connect_ReceivedConnect()
        {
            var mockConnection = Substitute.For <IMessageSender>();
            var client         = new ChatClient.Client(mockConnection);
            var port           = 5050;
            var ipAddress      = "127.0.0.1";

            client.Connect(ipAddress, port);

            mockConnection.Received().Connect(IPAddress.Parse(ipAddress), port);
        }
コード例 #3
0
        public void Test_Connect_GoodConnect()
        {
            // В NUnit есть методы инициализации, которые вызываются перед каждым
            // вызовом теста [SetUp], и после каждого вызова теста [TearDown]
            // и то что соответствует  Arrange и общее для всех тестов, можно было вынести туда.
            // Но для удобочитаемости, оставлено здесь. Хоть это и дублирование кода в тестах, зато не
            // приходиться бегать от метода к методу, чтобы понять, что откуда взялось

            // Arrange
            var stubSender = Substitute.For <IMessageSender>();
            var client     = new ChatClient.Client(stubSender);

            stubSender.IsConnected.Returns(true);

            // Act
            client.Connect("127.0.0.1", 5050);

            // Assert
            Assert.IsTrue(client.IsConnected);
        }
コード例 #4
0
        static void Main()
        {
            Client = new Client("127.0.0.1", 13000);
            StartMessageHandleThread();

            while (IsApplicationExecuting)
            {
                Console.WriteLine("Do you want to login (l) or to register (r)?");
                var loginRegisterInput = Console.ReadKey();

                if (loginRegisterInput.Key == ConsoleKey.L)
                {
                    Console.Clear();

                    Console.WriteLine("Login");

                    Console.WriteLine("Username: "******"Password: "******"Connecting to server.");
                    Client.Connect(username, password);

                    while (Client.IsConnecting)
                    {
                    }

                    while (Client.IsConnected)
                    {
                        Console.WriteLine("Nachricht eingeben:");
                        var input = Console.ReadLine();

                        switch (input)
                        {
                        case "/disconnect":
                            Client.Disconnect();
                            break;

                        case "/exit":
                            Client.Disconnect();
                            IsApplicationExecuting = false;
                            break;

                        default:
                            Client.SendChatMessage(input);
                            break;
                        }
                    }
                }

                if (loginRegisterInput.Key == ConsoleKey.R)
                {
                    Console.Clear();

                    Console.WriteLine("Register");

                    Console.WriteLine("Username: "******"Password: ");
                    var password = Console.ReadLine();

                    Client.Register(username, password);
                }
            }
        }
コード例 #5
0
 private void btnConnect_Click(object sender, EventArgs e)
 {
     m_ServerUrl = new Uri("ws://" + edtServerIp.Text + ":" + edtServerPort.Text + "/chat", UriKind.Absolute);
     m_ChatClient.Connect(edtServerIp.Text, Convert.ToInt32(edtServerPort.Text));
 }
コード例 #6
0
        private static void DecodeCommand(string message)
        {
            var list     = message.Split(':');
            var commando = list[1].ToLower();

            if (commando == "quit")
            {
                StatusMessage("Exiting program...");
                running = false;
                return;
            }

            if (commando == "sethost")
            {
                remoteName = list[2];
                StatusMessage($"Setting target to {list[2]}");
            }
            else if (commando == "setname")
            {
                client.Name = list[2];
                StatusMessage($"Setting name to {list[2]}");
            }
            else if (commando == "cls")
            {
                window.Messages.Clear();
            }
            else if (commando == "connect")
            {
                if (client.Connect(remoteName, remotePort))
                {
                    StatusMessage("Starting receiving from server...");
                    client.StartReceiving((data) =>
                    {
                        try
                        {
                            while (!data.EOF)
                            {
                                string name        = data.GetString();
                                string messageData = data.GetString();

                                window.Add(new WebMessage(name, messageData));
                            }
                        }
                        catch (Exception e)
                        {
                        }
                    });
                }
                else
                {
                    StatusMessage("Connection failed...");
                }
            }
            else if (list[1] == "help")
            {
                ShowHelp();
            }
            else
            {
                StatusMessage($"Unknown command {list[1]}");
            }
        }