public void DHCPv4RelayAgentSubnetResolver_ApplyValues() { Random random = new Random(); String validMaskValue = ((Byte)random.Next(1, 32)).ToString(); String validNetworkAddressValue = random.GetIPv4Address().ToString(); IPv4SubnetMask subnetMask = new IPv4SubnetMask(new IPv4SubnetMaskIdentifier(Convert.ToInt32(validMaskValue))); IPv4Address address = IPv4Address.FromString(validNetworkAddressValue); var mock = new Mock <ISerializer>(MockBehavior.Strict); mock.Setup(x => x.Deserialze <String>(validMaskValue)).Returns(subnetMask.GetSlashNotation().ToString()); mock.Setup(x => x.Deserialze <String>(validNetworkAddressValue)).Returns(address.ToString()); DHCPv4RelayAgentSubnetResolver resolver = new DHCPv4RelayAgentSubnetResolver(); var input = new Dictionary <string, string>() { { nameof(DHCPv4RelayAgentSubnetResolver.Mask), validMaskValue }, { nameof(DHCPv4RelayAgentSubnetResolver.NetworkAddress), validNetworkAddressValue }, }; resolver.ApplyValues(input, mock.Object); Assert.Equal(subnetMask, resolver.Mask); Assert.Equal(address, resolver.NetworkAddress); }
public void DHCPv4RelayAgentSubnetResolver_PacketMeetsConditions() { Random random = new Random(); Int32 maskIdentifier = random.Next(20, 24); IPv4SubnetMask mask = new IPv4SubnetMask(new IPv4SubnetMaskIdentifier(maskIdentifier)); IPv4Address addresses = random.GetIPv4NetworkAddress(mask); Mock <ISerializer> serializer = new Mock <ISerializer>(MockBehavior.Strict); serializer.Setup(x => x.Deserialze <String>(mask.GetSlashNotation().ToString())).Returns(mask.GetSlashNotation().ToString()); serializer.Setup(x => x.Deserialze <String>(addresses.ToString())).Returns(addresses.ToString()); DHCPv4RelayAgentSubnetResolver resolver = new DHCPv4RelayAgentSubnetResolver(); Dictionary <String, String> values = new Dictionary <String, String>() { { nameof(DHCPv4RelayAgentSubnetResolver.NetworkAddress), addresses.ToString() }, { nameof(DHCPv4RelayAgentSubnetResolver.Mask), mask.GetSlashNotation().ToString() }, }; resolver.ApplyValues(values, serializer.Object); Int32 trys = random.Next(20, 30); for (int i = 0; i < trys; i++) { Boolean shouldPass = false; IPv4Address gwAddress = IPv4Address.Empty; if (random.NextDouble() > 0.5) { gwAddress = random.GetIPv4AddressWithinSubnet(mask, addresses); shouldPass = true; } else { if (random.NextDouble() > 0.5) { gwAddress = random.GetIPv4AddressOutWithSubnet(mask, addresses); } } DHCPv4Packet packet = new DHCPv4Packet( new IPv4HeaderInformation(random.GetIPv4Address(), random.GetIPv4Address()), random.NextBytes(6), (UInt32)random.Next(), IPv4Address.Empty, gwAddress, IPv4Address.Empty ); Boolean actual = resolver.PacketMeetsCondition(packet); Assert.Equal(shouldPass, actual); } }
public void DHCPv4RelayAgentSubnetResolver_PacketMeetsConditions2( String networkAddressInput, String maskInput, String relayAgentAddressInput, Boolean shouldPass ) { Random random = new Random(); IPv4SubnetMask mask = IPv4SubnetMask.FromString(maskInput); IPv4Address networkAddress = IPv4Address.FromString(networkAddressInput); String inputAddressValue = random.GetAlphanumericString(10); String inputMaskValue = random.GetAlphanumericString(10); Mock <ISerializer> serializer = new Mock <ISerializer>(MockBehavior.Strict); serializer.Setup(x => x.Deserialze <String>(mask.GetSlashNotation().ToString())).Returns(mask.GetSlashNotation().ToString()); serializer.Setup(x => x.Deserialze <String>(networkAddress.ToString())).Returns(networkAddress.ToString()); DHCPv4RelayAgentSubnetResolver resolver = new DHCPv4RelayAgentSubnetResolver(); Dictionary <String, String> values = new Dictionary <String, String>() { { nameof(DHCPv4RelayAgentSubnetResolver.NetworkAddress), networkAddress.ToString() }, { nameof(DHCPv4RelayAgentSubnetResolver.Mask), mask.GetSlashNotation().ToString() }, }; resolver.ApplyValues(values, serializer.Object); IPv4Address gwAddress = IPv4Address.FromString(relayAgentAddressInput); DHCPv4Packet packet = new DHCPv4Packet( new IPv4HeaderInformation(random.GetIPv4Address(), random.GetIPv4Address()), random.NextBytes(6), (UInt32)random.Next(), IPv4Address.Empty, gwAddress, IPv4Address.Empty ); Boolean actual = resolver.PacketMeetsCondition(packet); Assert.Equal(shouldPass, actual); }