public void UpdateEntry_EntryUpdated()
        {
            var entry = new AodvTableEntry();

            entry.DestinationAddress = destination;
            entry.Valid = true;

            _uut.AddEntry(entry);

            entry.DestinationAddress                 = destination;
            entry.DestinationSequenceNumber          = 1337;
            entry.ValidDestinationSequenceNumberFlag = true;
            entry.HopCount       = 10;
            entry.Valid          = true;
            entry.NextHop        = destination;
            entry.ExpirationTime = DateTime.MaxValue;

            _uut.UpdateEntry(entry);

            var updEntry = _uut.GetEntry(destination);

            Assert.AreEqual(entry.DestinationAddress, updEntry.DestinationAddress);
            Assert.AreEqual(entry.DestinationSequenceNumber, updEntry.DestinationSequenceNumber);
            Assert.AreEqual(entry.ValidDestinationSequenceNumberFlag, updEntry.ValidDestinationSequenceNumberFlag);
            Assert.AreEqual(entry.HopCount, updEntry.HopCount);
            Assert.AreEqual(entry.Valid, updEntry.Valid);
            Assert.AreEqual(entry.NextHop, updEntry.NextHop);
            Assert.AreEqual(DateTime.MaxValue, updEntry.ExpirationTime);
        }
        public void ActiveRouteExists_RouteDontExist()
        {
            var entry = new AodvTableEntry();

            entry.DestinationAddress = destination;
            entry.Valid = false;
            _uut.AddEntry(entry);

            Assert.IsFalse(_uut.ActiveRouteExists("unknownDestination"));
        }
        public void ActiveRouteExists_RouteIsInvalid()
        {
            var entry = new AodvTableEntry();

            entry.DestinationAddress = destination;
            entry.Valid = false;
            _uut.AddEntry(entry);

            Assert.IsFalse(_uut.ActiveRouteExists(destination));
        }
        public void AddEntry_EntryAdded()
        {
            var entry = new AodvTableEntry();

            entry.DestinationAddress = "destination";

            _uut.AddEntry(entry);

            var res = _uut.RouteExists("destination");

            Assert.IsTrue(res);
        }
        public void AddPrecursor_PrecursorAdded()
        {
            var entry = new AodvTableEntry();

            entry.DestinationAddress = "destination";
            _uut.AddEntry(entry);

            _uut.AddPrecursorToEntry("destination", "precursor");

            var precursorEntry = _uut.GetEntry("destination");

            Assert.True(precursorEntry.Precursors.Contains("precursor"));
        }
        public void UpdateDestinationSequenceNumber_DsnUpdated()
        {
            var entry = new AodvTableEntry();

            entry.DestinationAddress = destination;
            entry.Valid = true;
            _uut.AddEntry(entry);

            _uut.UpdateDestinationSequenceNumber(destination, 1337);

            var route = _uut.GetEntry(destination);

            Assert.AreEqual(1337, route.DestinationSequenceNumber);
        }
        public void InvalidateEntry_EntryInvalidated()
        {
            var entry = new AodvTableEntry();

            entry.DestinationAddress = destination;
            entry.Valid = true;
            _uut.AddEntry(entry);

            Assert.IsTrue(_uut.ActiveRouteExists(destination));

            _uut.InvalidateEntry(destination);

            Assert.IsFalse(_uut.ActiveRouteExists(destination));
        }
        public void SetRouteActive_RouteActivated()
        {
            var entry = new AodvTableEntry();

            entry.DestinationAddress = destination;
            entry.Valid = false;
            _uut.AddEntry(entry);

            _uut.SetRouteActive(destination);

            var route = _uut.GetEntry(destination);

            Assert.True(route.Valid);
        }
        public void UpdateExpirationTime_TimeUpdated()
        {
            var lifetime = DateTime.MaxValue;

            var entry = new AodvTableEntry();

            entry.DestinationAddress = destination;
            _uut.AddEntry(entry);

            _uut.UpdateExpirationTime(destination, lifetime);

            var lifetimeEntry = _uut.GetEntry(destination);

            Assert.AreEqual(lifetime, lifetimeEntry.ExpirationTime);
        }
        public void SetUp()
        {
            _uut = new AodvTableEntry()
            {
                DestinationAddress        = destination,
                DestinationSequenceNumber = dsn,
                ExpirationTime            = DateTime.MaxValue,
                HopCount   = hops,
                NextHop    = nexthop,
                Precursors = new List <string>(),
                Valid      = valid,
                ValidDestinationSequenceNumberFlag = validDsn
            };

            conf.Initialize();
        }