Exemple #1
0
        public void DHCPv4ScopeAddressProperties_NextAddress()
        {
            Random random = new Random();

            Int32 addressRange = random.Next(0, 255);

            IPv4Address start = random.GetIPv4Address();
            IPv4Address end   = start + addressRange;

            Int32 usedAddreessAmount             = random.Next(0, addressRange - 1);
            List <IPv4Address> usedAddress       = new List <IPv4Address>();
            List <IPv4Address> excludedAddresses = new List <IPv4Address>();

            for (int i = 0; i < usedAddreessAmount; i++)
            {
                IPv4Address nextAddress = start + i;
                if (random.NextBoolean() == true)
                {
                    usedAddress.Add(nextAddress);
                }
                else
                {
                    excludedAddresses.Add(nextAddress);
                }
            }

            DHCPv4ScopeAddressProperties properties = new DHCPv4ScopeAddressProperties(start, end, excludedAddresses,
                                                                                       addressAllocationStrategy: DHCPv4ScopeAddressProperties.AddressAllocationStrategies.Next);

            IPv4Address next            = properties.GetValidAddresses(usedAddress);
            IPv4Address expectedAddress = start + usedAddreessAmount;

            Assert.Equal(expectedAddress, next);
        }
Exemple #2
0
        public void DHCPv4ScopeAddressProperties_RandomAddress()
        {
            Random random = new Random();

            Int32 addressRange = random.Next(0, 255);

            IPv4Address start = random.GetIPv4Address();
            IPv4Address end   = start + addressRange;

            Int32 usedAddreessAmount             = random.Next(0, addressRange - 1);
            List <IPv4Address> usedAddress       = new List <IPv4Address>();
            List <IPv4Address> excludedAddresses = new List <IPv4Address>();

            for (int i = 0; i < usedAddreessAmount; i++)
            {
                IPv4Address nextAddress = start + i;
                if (random.NextBoolean() == true)
                {
                    usedAddress.Add(nextAddress);
                }
                else
                {
                    excludedAddresses.Add(nextAddress);
                }
            }

            DHCPv4ScopeAddressProperties properties = new DHCPv4ScopeAddressProperties(start, end, excludedAddresses,
                                                                                       addressAllocationStrategy: DHCPv4ScopeAddressProperties.AddressAllocationStrategies.Random);

            Int32 checkAmount = random.Next(100, 200);

            for (int i = 0; i < checkAmount; i++)
            {
                IPv4Address next = properties.GetValidAddresses(usedAddress);

                Assert.DoesNotContain(next, usedAddress);
                Assert.DoesNotContain(next, excludedAddresses);
                Assert.True(start <= next);
                Assert.True(end >= next);
            }
        }
Exemple #3
0
        public void DHCPv4ScopeAddressProperties_PoolExhausted()
        {
            Random random = new Random();

            Int32 addressRange = random.Next(0, 255);

            IPv4Address start = random.GetIPv4Address();
            IPv4Address end   = start + addressRange;

            List <IPv4Address> usedAddress       = new List <IPv4Address>();
            List <IPv4Address> excludedAddresses = new List <IPv4Address>();

            for (int i = 0; i < addressRange + 1; i++)
            {
                IPv4Address nextAddress = start + i;
                if (random.NextBoolean() == true)
                {
                    usedAddress.Add(nextAddress);
                }
                else
                {
                    excludedAddresses.Add(nextAddress);
                }
            }

            List <DHCPv4ScopeAddressProperties.AddressAllocationStrategies> strategies = new List <DHCPv4ScopeAddressProperties.AddressAllocationStrategies> {
                DHCPv4ScopeAddressProperties.AddressAllocationStrategies.Next,
                DHCPv4ScopeAddressProperties.AddressAllocationStrategies.Random,
            };

            foreach (var item in strategies)
            {
                DHCPv4ScopeAddressProperties properties = new DHCPv4ScopeAddressProperties(start, end, excludedAddresses,
                                                                                           addressAllocationStrategy: item);

                IPv4Address next = properties.GetValidAddresses(usedAddress);
                Assert.Equal(IPv4Address.Empty, next);
            }
        }
Exemple #4
0
        public void DHCPv4ScopeAddressProperties_SingleAddressRange()
        {
            Random random = new Random();

            List <DHCPv4ScopeAddressProperties.AddressAllocationStrategies> strategies = new List <DHCPv4ScopeAddressProperties.AddressAllocationStrategies> {
                DHCPv4ScopeAddressProperties.AddressAllocationStrategies.Next,
                DHCPv4ScopeAddressProperties.AddressAllocationStrategies.Random,
            };

            IPv4Address start = random.GetIPv4Address();
            IPv4Address end   = start;

            foreach (var item in strategies)
            {
                DHCPv4ScopeAddressProperties properties = new DHCPv4ScopeAddressProperties(start, end, Array.Empty <IPv4Address>(),
                                                                                           addressAllocationStrategy: item);

                IPv4Address next = properties.GetValidAddresses(Array.Empty <IPv4Address>());

                Assert.Equal(start, next);
            }
        }