public void Constructor_ValuesInitialized()
        {
            var uut = new Rerr(destinations);

            Assert.AreEqual(NumberOfDestinations, uut.DestinationCount);
            Assert.AreEqual(12 + NumberOfDestinations * 8, uut.Size);
            Assert.AreEqual(MessageType.Rerr, uut.Type);
        }
        public void CopyConstructor_ValuesInitialized()
        {
            var rerr = new Rerr(destinations);
            var uut  = new Rerr(rerr);

            Assert.AreEqual(rerr.Size, uut.Size);
            Assert.AreEqual(rerr.Type, uut.Type);
            Assert.AreEqual(rerr.N, uut.N);
            Assert.AreEqual(rerr.DestinationCount, uut.DestinationCount);

            for (int i = 0; i < rerr.DestinationCount; i++)
            {
                Assert.AreEqual(rerr.UnreachableDestinations[i].UnreachableDestinationAddress, uut.UnreachableDestinations[i].UnreachableDestinationAddress);
                Assert.AreEqual(rerr.UnreachableDestinations[i].UnreachableDestinationSequenceNumber, uut.UnreachableDestinations[i].UnreachableDestinationSequenceNumber);
            }
        }
예제 #3
0
        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;
        }