public void SocketCommunication_ServerSends_ClientReceives()
        {
            IPHostEntry host      = Dns.GetHostEntry(Dns.GetHostName());
            string      localhost = "";

            foreach (IPAddress ip in host.AddressList)
            {
                if (ip.AddressFamily.ToString() == "InterNetwork")
                {
                    localhost = ip.ToString();
                }
            }

            // Create message to send
            RegisterMessage expectedMessage = TestHelper.CreateRegisterMessage();
            string          messageStr      = expectedMessage.ToXmlString();

            // Create server
            IPAddress address = IPAddress.Parse(localhost);
            int       port    = 5555;

            NetworkServer server = new NetworkServer(address, port);

            server.Open();
            server.StartListeningForClients();

            // connect client
            NetworkClient client = new NetworkClient(address, port);

            client.Connect();

            client.Send(expectedMessage);

            ArrayList sockets = new ArrayList();

            while ((sockets = server.SelectForRead()).Count == 0)
            {
                ;
            }

            Socket  socket        = (Socket)sockets[0];
            Message actualMessage = server.Receive(socket);

            server.Close();
            client.Disconnect();

            Assert.AreEqual(expectedMessage, actualMessage);
        }
        public void Parse_RegisterMessage_XMLString()
        {
            string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"xml_samples\Register.xml");

            RegisterType type    = RegisterType.TaskManager;
            byte         threads = 3;

            string[] problems = { "TSP", "GraphColoring" };

            RegisterMessage register = new RegisterMessage(type, threads, problems);

            register.Deregister = true;
            register.Id         = 5;
            string actualXmlStr = register.ToXmlString();

            XmlDocument xmlDoc = new XmlDocument();

            xmlDoc.Load(path);
            string expectedXmlStr = xmlDoc.OuterXml;

            Assert.AreEqual(expectedXmlStr, actualXmlStr);
        }