public void Parse_RegisterResponseMessage_XMLString()
        {
            string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"xml_samples\RegisterResponse.xml");

            ulong id = 9;
            uint timeout = 11111;
            BackupCommunicationServer[] backupServers= 
            {
                new BackupCommunicationServer("192.168.1.10", 80),
                new BackupCommunicationServer("192.168.1.11", 80),
            };

            RegisterResponseMessage message = new RegisterResponseMessage(id, timeout, backupServers);

            //message.ToXmlFile(path);

            string actualXmlStr = message.ToXmlString();

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

            Assert.AreEqual(expectedXmlStr, actualXmlStr);
        }
        public void Parse_XMLString_RegisterResponseMessage()
        {
            /*********** Actual message ***********/
            string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"xml_samples\RegisterResponse.xml");

            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load(path);
            string xmlStr = xmlDoc.OuterXml;

            string name = Message.GetMessageName(xmlStr);
            RegisterResponseMessage actualMessage = null;

            if (name == RegisterResponseMessage.ELEMENT_NAME)
                actualMessage = RegisterResponseMessage.Construct(xmlStr);

            /*********** Expected message ***********/
            ulong id = 9;
            uint timeout = 11111;
            BackupCommunicationServer[] backupServers = 
            {
                new BackupCommunicationServer("192.168.1.10", 80),
                new BackupCommunicationServer("192.168.1.11", 80),
            };

            RegisterResponseMessage expectedMessage = new RegisterResponseMessage(id, timeout, backupServers);

            Assert.AreEqual(expectedMessage, actualMessage);
        }
Пример #3
0
 private void handleRegisterResponsenMessage(RegisterResponseMessage message)
 {
     systemTracker.Node.Id = message.Id;
     systemTracker.Node.Timeout = message.Timeout;
     systemTracker.Node.BackupServers = message.BackupCommunicationServers;
 }
        /// <summary>
        ///     Register new node - Primary server job
        /// </summary>
        private void registerNewNode(RegisterMessage message, Socket socket) 
        {
            // Place holder, have to fetch info from the System.
            ulong id = systemTracker.GetNextClientID();
            uint timeout = (uint)systemTracker.Timeout;

            SmartConsole.PrintLine("Adding new Node", SmartConsole.DebugLevel.Advanced);

            NetworkNode node = new NetworkNode(message.Type, id, timeout, message.ParallelThreads, message.SolvableProblems,
                                                  clientTracker.BackupServers);
            node.LastSeen = DateTime.Now;

            // Backup Server
            if (node.Type == RegisterType.CommunicationServer)
            {
                // update Node
                IPAddress address = (socket.RemoteEndPoint as IPEndPoint).Address;
                int port = (ushort)Server.PRIMARY_PORT;
                node.Address = address;

                // TODO hack
                if(clientTracker.BackupServers.Length == 1)
                    port = (ushort)Server.PRIMARY_PORT2;

                node.Port = (ushort)port;
            }

            // Add the node to system
            clientTracker.AddNode(node);

            RegisterResponseMessage response = new RegisterResponseMessage(id, timeout, clientTracker.BackupServers);

            server.Send(socket, response);

            RegisterMessage backUpmessage = new RegisterMessage(message.Type, message.ParallelThreads, message.SolvableProblems);
            backUpmessage.Id = id;

            InformBackup(backUpmessage);
        }
Пример #5
0
        public static RegisterResponseMessage CreateRegisterResponseMessage()
        {
            ulong id = 9;
            uint timeout = 11111;
            BackupCommunicationServer[] backupServers = 
            {
                new BackupCommunicationServer("192.168.1.10", 80),
                new BackupCommunicationServer("192.168.1.11", 80),
            };

            RegisterResponseMessage expectedMessage = new RegisterResponseMessage(id, timeout, backupServers);
            return expectedMessage;
        }
Пример #6
0
        public override bool Equals(object obj)
        {
            RegisterResponseMessage message = obj as RegisterResponseMessage;

            return(Id == message.Id && Enumerable.SequenceEqual(BackupCommunicationServers, message.BackupCommunicationServers));
        }