Esempio n. 1
0
        public void ApplyValues()
        {
            String duidBytes = "000300015CA62DD98800";

            LinkLayerAddressDUID duid = new LinkLayerAddressDUID(
                LinkLayerAddressDUID.DUIDLinkLayerTypes.Ethernet,
                new Byte[] { 0x5c, 0xa6, 0x2d, 0xd9, 0x88, 0x00 });

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

            serializerMock.Setup(x => x.Deserialze <String>(duidBytes)).Returns(duidBytes).Verifiable();

            var resolver = new DHCPv6ClientDUIDResolver();

            resolver.ApplyValues(new Dictionary <String, String> {
                { "ClientDuid", duidBytes },
            }, serializerMock.Object);


            Assert.Equal(duid, resolver.ClientDuid);
            serializerMock.Verify();

            var values = resolver.GetValues();

            Dictionary <String, String> expectedValues = new Dictionary <string, string>
            {
                { "ClientDuid", duidBytes }
            };

            Assert.Equal(expectedValues.ToArray(), values.ToArray());
        }
Esempio n. 2
0
        public void PacketMeetsCondition(Boolean shouldMeetCondition)
        {
            Random random = new Random();

            String duidBytes = "000300015CA62DD98800";

            LinkLayerAddressDUID duid = new LinkLayerAddressDUID(
                LinkLayerAddressDUID.DUIDLinkLayerTypes.Ethernet,
                new Byte[] { 0x5c, 0xa6, 0x2d, 0xd9, 0x88, 0x00 });

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

            serializerMock.Setup(x => x.Deserialze <String>(duidBytes)).Returns(duidBytes).Verifiable();

            var resolver = new DHCPv6ClientDUIDResolver();

            resolver.ApplyValues(new Dictionary <String, String> {
                { "ClientDuid", duidBytes },
            }, serializerMock.Object);

            var packet = DHCPv6RelayPacket.AsOuterRelay(new IPv6HeaderInformation(IPv6Address.FromString("fe80::1"), IPv6Address.FromString("fe80::2")),
                                                        true, 1, random.GetIPv6Address(), random.GetIPv6Address(), Array.Empty <DHCPv6PacketOption>(), DHCPv6RelayPacket.AsInnerRelay(
                                                            true, 0, IPv6Address.FromString("2004::1"), IPv6Address.FromString("fe80::1"), new DHCPv6PacketOption[]
            {
            }, DHCPv6Packet.AsInner(random.NextUInt16(), DHCPv6PacketTypes.Solicit, new[] { new DHCPv6PacketIdentifierOption(DHCPv6PacketOptionTypes.ClientIdentifier, shouldMeetCondition == true ? (DUID)duid : new UUIDDUID(random.NextGuid())) })));

            Boolean result = resolver.PacketMeetsCondition(packet);

            Assert.Equal(shouldMeetCondition, result);

            serializerMock.Verify();
        }
Esempio n. 3
0
        public void Constructor()
        {
            Random random = new Random();

            Byte[] macAddress = random.NextBytes(6);

            LinkLayerAddressDUID duid =
                new LinkLayerAddressDUID(LinkLayerAddressDUID.DUIDLinkLayerTypes.Ethernet, macAddress);

            Assert.Equal(LinkLayerAddressDUID.DUIDLinkLayerTypes.Ethernet, duid.AddressType);
            Assert.Equal(DUIDTypes.LinkLayer, duid.Type);
            Assert.Equal(macAddress, duid.LinkLayerAddress);
        }
Esempio n. 4
0
        public void FromByteArray()
        {
            String rawInput = "00:03:00:01:f8:7b:20:06:ab:70";

            Byte[] input      = ByteConverter.FromString(rawInput, ':');
            Byte[] macAddress = ByteConverter.FromString("f8:7b:20:06:ab:70", ':');

            LinkLayerAddressDUID duid = LinkLayerAddressDUID.FromByteArray(input, 0);

            Assert.Equal(LinkLayerAddressDUID.DUIDLinkLayerTypes.Ethernet, duid.AddressType);
            Assert.Equal(DUIDTypes.LinkLayer, duid.Type);
            Assert.Equal(macAddress, duid.LinkLayerAddress);

            Byte[] asByteStream = duid.GetAsByteStream();
            Assert.Equal(input, asByteStream);
        }
Esempio n. 5
0
        public void GetUniqueIdentifier()
        {
            LinkLayerAddressDUID duid = new LinkLayerAddressDUID(
                LinkLayerAddressDUID.DUIDLinkLayerTypes.Ethernet,
                new Byte[] { 0x5c, 0xa6, 0x2d, 0xd9, 0x88, 0x00 });

            Random random = new Random();

            var packet = DHCPv6RelayPacket.AsOuterRelay(new IPv6HeaderInformation(IPv6Address.FromString("fe80::1"), IPv6Address.FromString("fe80::2")),
                                                        true, 1, random.GetIPv6Address(), random.GetIPv6Address(), Array.Empty <DHCPv6PacketOption>(), DHCPv6RelayPacket.AsInnerRelay(
                                                            true, 0, IPv6Address.FromString("2004::1"), IPv6Address.FromString("fe80::1"), new DHCPv6PacketOption[]
            {
            }, DHCPv6Packet.AsInner(random.NextUInt16(), DHCPv6PacketTypes.Solicit, new[] { new DHCPv6PacketIdentifierOption(DHCPv6PacketOptionTypes.ClientIdentifier, duid) })));

            var resolver = new DeviceBasedDHCPv6ClientDUIDResolver(Mock.Of <IDeviceService>(MockBehavior.Strict));

            Assert.Equal(duid.GetAsByteStream(), resolver.GetUniqueIdentifier(packet));
        }
Esempio n. 6
0
        public void GetUniqueIdentifier()
        {
            String duidBytes = "000300015CA62DD98800";

            LinkLayerAddressDUID duid = new LinkLayerAddressDUID(
                LinkLayerAddressDUID.DUIDLinkLayerTypes.Ethernet,
                new Byte[] { 0x5c, 0xa6, 0x2d, 0xd9, 0x88, 0x00 });

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

            serializerMock.Setup(x => x.Deserialze <String>(duidBytes)).Returns(duidBytes).Verifiable();

            var resolver = new DHCPv6ClientDUIDResolver();

            resolver.ApplyValues(new Dictionary <String, String> {
                { "ClientDuid", duidBytes },
            }, serializerMock.Object);

            Assert.Equal(duid.GetAsByteStream(), resolver.GetUniqueIdentifier(null));
        }