예제 #1
0
        public async void CleanupExpiredLease_Expect_NoExpiredLeases()
        {
            var leaseRepo    = new LeaseRepo(DbConfig);
            var leaseManager = new LeaseManager(DhcpFakes.FakeDhcpConfiguration(), leaseRepo);

            var expiredLease = ModelFakes.GetFakeLease();

            expiredLease.Expiration = DateTime.UtcNow.AddMinutes(-2);

            var validLease = ModelFakes.GetFakeLease();

            validLease.IpAddress       = "10.10.10.11";
            validLease.PhysicalAddress = "332211556677";
            validLease.HostName        = "boot22.local";

            await leaseRepo.Insert(expiredLease).ConfigureAwait(false);

            await leaseRepo.Insert(validLease).ConfigureAwait(false);

            await leaseManager.CleanExpiredLeases();

            var expiredEntity = await leaseRepo.GetByIpAddress(expiredLease.IpAddress).ConfigureAwait(false);

            var validEntity = await leaseRepo.GetByIpAddress(validLease.IpAddress).ConfigureAwait(false);

            Assert.Null(expiredEntity);
            Assert.NotNull(validEntity);
        }
예제 #2
0
        public async void InsertLease_Expect_NextLeaseToBeNextIpAddress()
        {
            var config       = DhcpFakes.FakeDhcpConfiguration();
            var nextIp       = config.StartIpAddress.ToNextIpAddress();
            var leaseRepo    = new LeaseRepo(DbConfig);
            var leaseManager = new LeaseManager(DhcpFakes.FakeDhcpConfiguration(), leaseRepo);

            var lease = ModelFakes.GetFakeLease(config.StartIpAddress.ToString());
            await leaseRepo.Insert(lease).ConfigureAwait(false);

            var nextLease = await leaseManager.GetNextLease();

            Assert.Equal(nextIp, nextLease);
        }
예제 #3
0
        public async void UpdateLease_Expect_UpdatedValueInDb()
        {
            var newHostName        = "myhost22.local";
            var newIpAddress       = "192.168.8.11";
            var newPhysicalAddress = "0012345678";

            var repo  = new LeaseRepo(DbConfig);
            var lease = ModelFakes.GetFakeLease();
            var id    = await repo.Insert(lease).ConfigureAwait(false);

            var entity = await repo.Get(id).ConfigureAwait(false);

            entity.HostName        = newHostName;
            entity.IpAddress       = newIpAddress;
            entity.PhysicalAddress = newPhysicalAddress;

            await repo.Update(entity).ConfigureAwait(false);

            entity = await repo.Get(id).ConfigureAwait(false);

            Assert.Equal(newIpAddress, entity.IpAddress);
            Assert.Equal(newHostName, entity.HostName);
            Assert.Equal(newPhysicalAddress, entity.PhysicalAddress);
        }