public void ConnectedRobot_UnitTest_7()
        {
            SpecialRobot_2 robot = new SpecialRobot_2(theAddress: localAddress);

            Assert.IsNotNull(robot);
            Assert.AreEqual(localAddress, robot.IPAddress);
            Assert.AreEqual(false, robot.IsServerRunning);

            Assert.AreEqual(false, robot.okIHaveReceivedAMessage);

            // Starts the server and checks
            IPEndPoint remoteEP = new IPEndPoint(localAddress, 11000);

            robot.Start();
            Thread.Sleep(100);
            Assert.AreEqual(true, robot.IsServerRunning);

            // Connects to the server and check
            Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

            client.Connect(remoteEP);
            Assert.AreEqual(client.Connected, true);

            // Create a message to send
            RobotMessage sentMessage = new RobotMessage();

            sentMessage.Sender = Sender.FromClient;
            string encodedMessage = RobotMessage.Serialize(theMessage: sentMessage);

            // Send the message
            int bytesSent = client.Send(Encoding.ASCII.GetBytes(encodedMessage));

            Assert.AreNotEqual(0, bytesSent);

            // Wait for answer
            byte[] buffer = new byte[4096];
            client.Receive(buffer);
            string         receivedString  = Encoding.ASCII.GetString(buffer);
            SpecialMessage receivedMessage = (SpecialMessage)RobotMessage.DeSerialize(receivedString, typeof(SpecialMessage));

            Assert.AreEqual(Sender.FromRobot, receivedMessage.Sender);
            Assert.AreEqual(150, receivedMessage.testField);

            // Checks message received
            Thread.Sleep(100);
            Assert.AreEqual(true, robot.okIHaveReceivedAMessage);

            // Disconnects from the server and check
            client.Disconnect(false);
            Assert.AreEqual(client.Connected, false);

            // Stops the server and checks
            robot.Stop();
            Thread.Sleep(100);
            Assert.AreEqual(false, robot.IsServerRunning);
        }
Esempio n. 2
0
        public void Ev3TCPServer_UnitTest_13()
        {
            // Server Ip Address and server initialization
            Ev3TCPServer server   = new Ev3TCPServer(withIPAddress: localAddress);
            IPEndPoint   remoteEP = new IPEndPoint(localAddress, 11000);

            bool propertyChangedEventFired = false;

            server.PropertyChanged += (object sender, System.ComponentModel.PropertyChangedEventArgs e) =>
            {
                propertyChangedEventFired = true;
            };

            // Starts the server and checks
            server.Start();
            Thread.Sleep(100);
            Assert.AreEqual(server.IsRunning, true);

            // Connects to the server and check
            Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

            client.Connect(remoteEP);
            Assert.AreEqual(client.Connected, true);

            // Create a message to send
            RobotMessage sentMessage = new RobotMessage();

            sentMessage.Sender = Sender.FromClient;
            string encodedMessage = RobotMessage.Serialize(theMessage: sentMessage);
            // Send the message
            int bytesSent = client.Send(Encoding.ASCII.GetBytes(encodedMessage));

            Assert.AreNotEqual(0, bytesSent);

            // Checks message received
            Thread.Sleep(100);
            Assert.IsNotNull(server.LastMessage);
            Assert.AreNotEqual(string.Empty, server.LastMessage);
            Assert.AreEqual(sentMessage.Sender, RobotMessage.DeSerialize(server.LastMessage, typeof(RobotMessage)).Sender);

            // Checks event fired
            Assert.AreEqual(true, propertyChangedEventFired);

            // Disconnects from the server and check
            client.Disconnect(false);
            Assert.AreEqual(client.Connected, false);

            // Stops the server and checks
            server.Stop();
            Thread.Sleep(100);
            Assert.AreEqual(server.IsRunning, false);
        }
Esempio n. 3
0
        public void Ev3TCPServer_UnitTest_10()
        {
            RobotMessage sentMessage = new RobotMessage();

            sentMessage.Sender = Sender.Undefined;

            string messageSerialized = RobotMessage.Serialize(theMessage: sentMessage);

            Assert.IsNotNull(messageSerialized);
            Assert.AreNotEqual(string.Empty, messageSerialized);

            RobotMessage receivedMessage = RobotMessage.DeSerialize(data: messageSerialized, type: typeof(RobotMessage));

            Assert.AreEqual(sentMessage.Sender, receivedMessage.Sender);
        }
            protected override void ProcessLastReceivedMessage()
            {
                base.ProcessLastReceivedMessage();
                okIHaveReceivedAMessage = true;

                // Sends a message back
                SpecialMessage message = new SpecialMessage();

                message.Sender    = Sender.FromRobot;
                message.testField = 150;

                string encodedMessage = RobotMessage.Serialize(theMessage: message);

                // Send the message
                Ev3TCPServer.Send(encodedMessage);
            }
Esempio n. 5
0
        public void Ev3TCPServer_UnitTest_11()
        {
            OtherRobotMessage sentMessage = new OtherRobotMessage();

            sentMessage.Sender    = Sender.FromRobot;
            sentMessage.testField = 58;

            string messageSerialized = RobotMessage.Serialize(theMessage: sentMessage);

            Assert.IsNotNull(messageSerialized);
            Assert.AreNotEqual(string.Empty, messageSerialized);

            OtherRobotMessage receivedMessage = (OtherRobotMessage)RobotMessage.DeSerialize(data: messageSerialized, type: typeof(OtherRobotMessage));

            Assert.AreEqual(sentMessage.Sender, receivedMessage.Sender);
            Assert.AreEqual(sentMessage.testField, receivedMessage.testField);
        }
Esempio n. 6
0
        public void Ev3TCPServer_UnitTest_12()
        {
            // Server Ip Address and server initialization
            // IPAddress ipTest = new IPAddress(new byte[4] { 192, 168, 1, 170 });
            Ev3TCPServer server   = new Ev3TCPServer(withIPAddress: localAddress);
            IPEndPoint   remoteEP = new IPEndPoint(localAddress, 11000);

            // Starts the server and checks
            server.Start();
            Thread.Sleep(100);
            Assert.AreEqual(server.IsRunning, true);

            // Connects to the server and check
            Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

            client.Connect(remoteEP);
            Assert.AreEqual(client.Connected, true);

            // Create a message to send
            RobotMessage sentMessage = new RobotMessage();

            sentMessage.Sender = Sender.FromClient;
            string encodedMessage = RobotMessage.Serialize(theMessage: sentMessage);
            // Send the message
            int bytesSent = client.Send(Encoding.ASCII.GetBytes(encodedMessage));

            Assert.AreNotEqual(0, bytesSent);

            // Checks message received
            Thread.Sleep(100);
            Assert.IsNotNull(server.LastMessage);
            Assert.AreNotEqual(string.Empty, server.LastMessage);
            Assert.AreEqual(sentMessage.Sender, RobotMessage.DeSerialize(server.LastMessage, typeof(RobotMessage)).Sender);

            // Disconnects from the server and check
            client.Disconnect(false);
            Assert.AreEqual(client.Connected, false);

            // Stops the server and checks
            server.Stop();
            Thread.Sleep(100);
            Assert.AreEqual(server.IsRunning, false);
        }