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); }
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); }
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); }
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); }
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); }