Ejemplo n.º 1
0
        public void PacketMeetsCondition_False_OptionNotPresented()
        {
            Random random = new Random();

            String value = random.GetAlphanumericString();

            Byte[] remoteIdentifierAsBytes = ASCIIEncoding.ASCII.GetBytes(value);

            DHCPv6Packet packet = GetPacket(random, remoteIdentifierAsBytes, false);

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

            serializerMock.Setup(x => x.Deserialze <String>(value)).Returns(value).Verifiable();
            serializerMock.Setup(x => x.Deserialze <UInt16>("0")).Returns(0).Verifiable();
            serializerMock.Setup(x => x.Deserialze <Boolean>("true")).Returns(true).Verifiable();

            var resolver = new DHCPv6MilegateResolver();

            resolver.ApplyValues(new Dictionary <String, String> {
                { "Value", value },
                { "Index", "0" },
                { "IsCaseSenstiveMatch", "true" },
            }, serializerMock.Object);

            Boolean result = resolver.PacketMeetsCondition(packet);

            Assert.False(result);

            serializerMock.Verify();
        }
Ejemplo n.º 2
0
        public void PacketMeetsCondition_CaseInenstive(Boolean shouldMeetCondition)
        {
            Random random = new Random();

            String value = random.GetAlphanumericString();

            Byte[] remoteIdentifierAsBytes;
            if (shouldMeetCondition == true)
            {
                String valueToInsert = random.RandomizeUpperAndLowerChars(value);
                remoteIdentifierAsBytes = ASCIIEncoding.ASCII.GetBytes(valueToInsert);
            }
            else
            {
                remoteIdentifierAsBytes = random.NextBytes(10);
            }

            DHCPv6Packet packet = GetPacket(random, remoteIdentifierAsBytes);

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

            serializerMock.Setup(x => x.Deserialze <String>(value)).Returns(value).Verifiable();
            serializerMock.Setup(x => x.Deserialze <UInt16>("0")).Returns(0).Verifiable();
            serializerMock.Setup(x => x.Deserialze <Boolean>("false")).Returns(false).Verifiable();

            var resolver = new DHCPv6MilegateResolver();

            resolver.ApplyValues(new Dictionary <String, String> {
                { "Value", value },
                { "Index", "0" },
                { "IsCaseSenstiveMatch", "false" },
            }, serializerMock.Object);

            Boolean result = resolver.PacketMeetsCondition(packet);

            Assert.Equal(shouldMeetCondition, result);

            serializerMock.Verify();
        }
Ejemplo n.º 3
0
        public void PacketMeetsCondition_False_NotRelay()
        {
            Random random = new Random();
            String value  = random.GetAlphanumericString();

            IPv6HeaderInformation headerInformation =
                new IPv6HeaderInformation(IPv6Address.FromString("fe80::1"), IPv6Address.FromString("fe80::2"));

            var packetOptions = new List <DHCPv6PacketOption>
            {
                new DHCPv6PacketTrueOption(DHCPv6PacketOptionTypes.RapitCommit),
            };

            DHCPv6Packet packet = DHCPv6Packet.AsOuter(headerInformation, random.NextUInt16(),
                                                       DHCPv6PacketTypes.Solicit, packetOptions);

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

            serializerMock.Setup(x => x.Deserialze <String>(value)).Returns(value).Verifiable();
            serializerMock.Setup(x => x.Deserialze <UInt16>("0")).Returns(0).Verifiable();
            serializerMock.Setup(x => x.Deserialze <Boolean>("true")).Returns(true).Verifiable();

            var resolver = new DHCPv6MilegateResolver();

            resolver.ApplyValues(new Dictionary <String, String> {
                { "Value", value },
                { "Index", "0" },
                { "IsCaseSenstiveMatch", "true" },
            }, serializerMock.Object);

            Boolean result = resolver.PacketMeetsCondition(packet);

            Assert.False(result);

            serializerMock.Verify();
        }
Ejemplo n.º 4
0
        public void ApplyValues()
        {
            Random random = new Random();

            String  value = random.GetAlphanumericString();
            UInt16  index = (UInt16)random.Next(0, 10);
            Boolean caseInsensitveMatch = random.NextBoolean();

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

            serializerMock.Setup(x => x.Deserialze <String>(value)).Returns(value).Verifiable();
            serializerMock.Setup(x => x.Deserialze <UInt16>(index.ToString())).Returns(index).Verifiable();
            serializerMock.Setup(x => x.Deserialze <Boolean>(caseInsensitveMatch == true ? "true" : "false")).Returns(caseInsensitveMatch).Verifiable();

            var resolver = new DHCPv6MilegateResolver();

            resolver.ApplyValues(new Dictionary <String, String> {
                { "Value", value },
                { "Index", index.ToString() },
                { "IsCaseSenstiveMatch", caseInsensitveMatch == true ? "true" : "false" },
            }, serializerMock.Object);

            Assert.Equal(value, resolver.Value);
            Assert.Equal(index, resolver.Index);

            serializerMock.Verify();

            Dictionary <String, String> expectedValues = new Dictionary <string, string>
            {
                { "Value", value },
                { "IsCaseSenstiveMatch", caseInsensitveMatch == true ? "true" : "false" },
                { "Index", index.ToString() },
            };

            Assert.Equal(expectedValues.ToArray(), resolver.GetValues().ToArray());
        }