public void CopyConstructor_ValuesInitialized()
        {
            var rrep = new Rrep
            {
                R                         = false,
                A                         = false,
                PrefixSize                = 10,
                HopCount                  = 11,
                DestinationAddress        = "Destination",
                DestinationSequenceNumber = 12,
                OriginatorAddress         = "Originator",
                Lifetime                  = DateTime.MaxValue
            };

            var uut = new Rrep(rrep);

            Assert.AreEqual(rrep.R, uut.R);
            Assert.AreEqual(rrep.A, uut.A);
            Assert.AreEqual(rrep.PrefixSize, uut.PrefixSize);
            Assert.AreEqual(rrep.HopCount, uut.HopCount);
            Assert.AreEqual(rrep.DestinationAddress, uut.DestinationAddress);
            Assert.AreEqual(rrep.DestinationSequenceNumber, uut.DestinationSequenceNumber);
            Assert.AreEqual(rrep.OriginatorAddress, uut.OriginatorAddress);
            Assert.AreEqual(rrep.Lifetime, uut.Lifetime);
        }
        public void Constructor_ValuesInitialized()
        {
            var uut = new Rrep();

            Assert.AreEqual(MessageType.Rrep, uut.Type);
            Assert.IsFalse(uut.R);
            Assert.IsFalse(uut.A);
            Assert.AreEqual(0, uut.PrefixSize);
            Assert.AreEqual(0, uut.HopCount);
            Assert.AreEqual(20, uut.Size);
        }
        public Message(Message msg) //Copy constructor
        {
            DestinationAddress = msg.DestinationAddress;
            PreviousHop        = msg.PreviousHop;
            SourceAddress      = msg.SourceAddress;
            Ttl      = msg.Ttl;
            HopCount = msg.HopCount;

            switch (msg.Type)
            {
            case MessageType.Rreq:
                var rreq = (Rreq)msg.Payload;
                Payload = new Rreq(rreq);
                break;

            case MessageType.Rrep:
                var rrep = (Rrep)msg.Payload;
                Payload = new Rrep(rrep);
                break;

            case MessageType.Rerr:
                var rerr = (Rerr)msg.Payload;
                Payload = new Rerr(rerr);
                break;

            case MessageType.Rrepack:
                var rrepack = (Rrepack)msg.Payload;
                Payload = new Rrepack(rrepack);
                break;

            case MessageType.Data:
                var data = (DataMsg)msg.Payload;
                Payload = new DataMsg(data);
                break;

            case MessageType.Hello:
                var hello = (Hello)msg.Payload;
                Payload = new Hello(hello);
                break;
            }

            TotalPropagationDelay = msg.TotalPropagationDelay;
        }