Ejemplo n.º 1
0
        public void DHCPv4RelayAgentResolver_AreValuesValid_MissingKeys()
        {
            Random random         = new Random();
            String emptyListValue = random.GetAlphanumericString(30);

            var mock = new Mock <ISerializer>(MockBehavior.Strict);

            mock.Setup(x => x.Deserialze <IEnumerable <IPv4Address> >(emptyListValue)).Returns(new List <IPv4Address>());

            DHCPv4RelayAgentResolver resolver = new DHCPv4RelayAgentResolver();

            List <Dictionary <String, String> > invalidInputs = new List <Dictionary <string, string> >
            {
                null,
                new Dictionary <string, string>(),
                new Dictionary <string, string>()
                {
                    { random.GetAlphanumericString(10), random.GetAlphanumericString(10) }
                },
                new Dictionary <string, string>()
                {
                    { nameof(DHCPv4RelayAgentResolver.AgentAddresses), "" },
                },
                new Dictionary <string, string>()
                {
                    { nameof(DHCPv4RelayAgentResolver.AgentAddresses), emptyListValue },
                }
            };

            foreach (var item in invalidInputs)
            {
                Boolean result = resolver.ArePropertiesAndValuesValid(item, mock.Object);
                Assert.False(result);
            }
        }
Ejemplo n.º 2
0
        public void DHCPv4RelayAgentResolver_PacketMeetsConditions()
        {
            Random             random    = new Random();
            List <IPv4Address> addresses = random.GetIPv4Addresses();

            String serializedValues = System.Text.Json.JsonSerializer.Serialize(addresses.Select(x => x.ToString()));

            Mock <ISerializer> serializer = new Mock <ISerializer>(MockBehavior.Strict);

            serializer.Setup(x => x.Deserialze <IEnumerable <String> >(serializedValues)).Returns(addresses.Select(x => x.ToString()));

            DHCPv4RelayAgentResolver    resolver = new DHCPv4RelayAgentResolver();
            Dictionary <String, String> values   = new Dictionary <String, String>()
            {
                { nameof(DHCPv4RelayAgentResolver.AgentAddresses), serializedValues }
            };

            resolver.ApplyValues(values, serializer.Object);

            foreach (IPv4Address item in addresses)
            {
                Boolean shouldPass = false;

                IPv4Address gwAddress = IPv4Address.Empty;
                if (random.NextDouble() > 0.5)
                {
                    gwAddress  = item;
                    shouldPass = true;
                }
                else
                {
                    if (random.NextDouble() > 0.5)
                    {
                        gwAddress = random.GetIPv4Address();
                    }
                }

                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);
            }
        }
Ejemplo n.º 3
0
        public void DHCPv4RelayAgentResolver_GetDescription()
        {
            DHCPv4RelayAgentResolver resolver = new DHCPv4RelayAgentResolver();

            ScopeResolverDescription description = resolver.GetDescription();

            Assert.NotNull(description);

            Assert.Equal(nameof(DHCPv4RelayAgentResolver), description.TypeName);

            Assert.NotNull(description.Properties);
            Assert.Single(description.Properties);

            ScopeResolverPropertyDescription propertyDescription = description.Properties.First();

            Assert.Equal(nameof(DHCPv4RelayAgentResolver.AgentAddresses), propertyDescription.PropertyName);
            Assert.Equal(ScopeResolverPropertyValueTypes.IPv4AddressList, propertyDescription.PropertyValueType);
        }
Ejemplo n.º 4
0
        public void DHCPv4RelayAgentResolver_ApplyValues()
        {
            Random             random           = new Random();
            List <IPv4Address> agentAddresses   = random.GetIPv4Addresses();
            String             serializedValues = System.Text.Json.JsonSerializer.Serialize(agentAddresses.Select(x => x.ToString()));

            var mock = new Mock <ISerializer>(MockBehavior.Strict);

            mock.Setup(x => x.Deserialze <IEnumerable <String> >(serializedValues)).Returns(agentAddresses.Select(x => x.ToString()));

            DHCPv4RelayAgentResolver resolver = new DHCPv4RelayAgentResolver();

            var input = new Dictionary <string, string>()
            {
                { nameof(DHCPv4RelayAgentResolver.AgentAddresses), serializedValues },
            };

            resolver.ApplyValues(input, mock.Object);
            Assert.Equal(agentAddresses, resolver.AgentAddresses);
        }