Exemple #1
0
        public void HasUniqueIdentiifer()
        {
            DHCPv6RemoteIdentifierEnterpriseNumberResolver resolver = new DHCPv6RemoteIdentifierEnterpriseNumberResolver(
                Mock.Of <ILogger <DHCPv6RemoteIdentifierEnterpriseNumberResolver> >());

            Assert.False(resolver.HasUniqueIdentifier);
        }
Exemple #2
0
        public void GetUniqueIdentifier()
        {
            DHCPv6RemoteIdentifierEnterpriseNumberResolver resolver = new DHCPv6RemoteIdentifierEnterpriseNumberResolver(
                Mock.Of <ILogger <DHCPv6RemoteIdentifierEnterpriseNumberResolver> >());

            Assert.ThrowsAny <Exception>(() => resolver.GetUniqueIdentifier(null));
        }
Exemple #3
0
        public void PacketMeetsCondition_False_WrongPacketType()
        {
            Random random = new Random();

            UInt32 enterpriseNumber = random.NextUInt32();
            Int32  agentIndex       = 2;

            DHCPv6RemoteIdentifierEnterpriseNumberResolver resolver = new DHCPv6RemoteIdentifierEnterpriseNumberResolver(
                Mock.Of <ILogger <DHCPv6RemoteIdentifierEnterpriseNumberResolver> >());

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

            serializerMock.Setup(x => x.Deserialze <UInt32>(enterpriseNumber.ToString())).Returns(enterpriseNumber).Verifiable();
            serializerMock.Setup(x => x.Deserialze <Int32?>(agentIndex.ToString())).Returns(agentIndex).Verifiable();

            resolver.ApplyValues(new Dictionary <String, String>
            {
                { "EnterpriseNumber", enterpriseNumber.ToString() },
                { "RelayAgentIndex", agentIndex.ToString() },
            }, serializerMock.Object);
            DHCPv6Packet packet = DHCPv6Packet.AsInner(random.NextUInt16(), DHCPv6PacketTypes.Solicit, Array.Empty <DHCPv6PacketOption>());

            Boolean result = resolver.PacketMeetsCondition(packet);

            Assert.False(result);

            serializerMock.Verify();
        }
Exemple #4
0
        public void ApplyValues(Int32?agentIndex)
        {
            Random random = new Random();

            UInt32 enterpriseNumber = random.NextUInt32();

            DHCPv6RemoteIdentifierEnterpriseNumberResolver resolver = new DHCPv6RemoteIdentifierEnterpriseNumberResolver(
                Mock.Of <ILogger <DHCPv6RemoteIdentifierEnterpriseNumberResolver> >());

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

            serializerMock.Setup(x => x.Deserialze <UInt32>(enterpriseNumber.ToString())).Returns(enterpriseNumber).Verifiable();
            serializerMock.Setup(x => x.Deserialze <Int32?>(agentIndex.ToString())).Returns(agentIndex).Verifiable();

            resolver.ApplyValues(new Dictionary <String, String>
            {
                { "EnterpriseNumber", enterpriseNumber.ToString() },
                { "RelayAgentIndex", agentIndex.ToString() },
            }, serializerMock.Object);

            Assert.Equal(enterpriseNumber, resolver.EnterpriseNumber);
            Assert.Equal(agentIndex, resolver.RelayAgentIndex);

            serializerMock.Verify();

            var expectedValues = new Dictionary <String, String>
            {
                { "EnterpriseNumber", enterpriseNumber.ToString() },
                { "RelayAgentIndex", agentIndex.ToString() },
            };

            Assert.Equal(expectedValues.ToArray(), resolver.GetValues().ToArray());
        }
Exemple #5
0
        public void PacketMeetsCondition_DifferentEnterpriseId(Int32?agentIndex)
        {
            Random random = new Random();

            UInt32 enterpriseNumber         = random.NextUInt32();
            UInt32 differenEnterpriseNumber = random.NextUInt32();

            DHCPv6RemoteIdentifierEnterpriseNumberResolver resolver = new DHCPv6RemoteIdentifierEnterpriseNumberResolver(
                Mock.Of <ILogger <DHCPv6RemoteIdentifierEnterpriseNumberResolver> >());

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

            serializerMock.Setup(x => x.Deserialze <UInt32>(differenEnterpriseNumber.ToString())).Returns(differenEnterpriseNumber).Verifiable();
            serializerMock.Setup(x => x.Deserialze <Int32?>(agentIndex.ToString())).Returns(agentIndex).Verifiable();

            resolver.ApplyValues(new Dictionary <String, String>
            {
                { "EnterpriseNumber", differenEnterpriseNumber.ToString() },
                { "RelayAgentIndex", agentIndex.ToString() },
            }, serializerMock.Object);
            DHCPv6RelayPacket packet = GeneratePacket(random, enterpriseNumber);

            Boolean result = resolver.PacketMeetsCondition(packet);

            Assert.False(result);

            serializerMock.Verify();
        }
Exemple #6
0
        public void ArePropertiesAndValuesValid_Failed_PropertiesAreNotSeralizble()
        {
            Random random = new Random();

            UInt32 enterpriseNumber = random.NextUInt32();

            DHCPv6RemoteIdentifierEnterpriseNumberResolver resolver = new DHCPv6RemoteIdentifierEnterpriseNumberResolver(
                Mock.Of <ILogger <DHCPv6RemoteIdentifierEnterpriseNumberResolver> >());

            List <Dictionary <String, String> > inputs = new List <Dictionary <string, string> >
            {
                new Dictionary <String, String>
                {
                    { "EnterpriseNumber", enterpriseNumber.ToString() },
                    { "RelayAgentIndex", 4.ToString() },
                },
                new Dictionary <String, String>
                {
                    { "EnterpriseNumber", enterpriseNumber.ToString() },
                    { "RelayAgentIndex", 4.ToString() },
                }
            };

            foreach (var item in inputs)
            {
                Boolean result = resolver.ArePropertiesAndValuesValid(item, Mock.Of <ISerializer>(MockBehavior.Strict));
                Assert.False(result);
            }
        }
Exemple #7
0
        public void ArePropertiesAndValuesValid(Int32?agentIndex)
        {
            Random random = new Random();

            UInt32 enterpriseNumber = random.NextUInt32();

            DHCPv6RemoteIdentifierEnterpriseNumberResolver resolver = new DHCPv6RemoteIdentifierEnterpriseNumberResolver(
                Mock.Of <ILogger <DHCPv6RemoteIdentifierEnterpriseNumberResolver> >());

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

            serializerMock.Setup(x => x.Deserialze <UInt32>(enterpriseNumber.ToString())).Returns(enterpriseNumber).Verifiable();
            serializerMock.Setup(x => x.Deserialze <Int32?>(agentIndex.ToString())).Returns(agentIndex).Verifiable();

            Boolean actual = resolver.ArePropertiesAndValuesValid(new Dictionary <String, String>
            {
                { "EnterpriseNumber", enterpriseNumber.ToString() },
                { "RelayAgentIndex", agentIndex.ToString() },
            }, serializerMock.Object);

            Assert.True(actual);

            serializerMock.Verify();
        }
Exemple #8
0
        public void InitializeResolver_NotMocked()
        {
            Random random          = new Random();
            UInt32 enterpriseId    = random.NextUInt32();
            Int32  relayAgentIndex = random.Next();

            CreateScopeResolverInformation createScopeResolverInformation = new CreateScopeResolverInformation
            {
                Typename            = nameof(DHCPv6AndResolver),
                PropertiesAndValues = new Dictionary <String, String>
                {
                    { "InnerResolvers", JsonConvert.SerializeObject(new CreateScopeResolverInformation[]
                        {
                            new CreateScopeResolverInformation {
                                Typename            = nameof(DHCPv6AndResolver),
                                PropertiesAndValues = new Dictionary <String, String>
                                {
                                    { "InnerResolvers", JsonConvert.SerializeObject(new CreateScopeResolverInformation[]
                                        {
                                            new CreateScopeResolverInformation {
                                                Typename            = nameof(DHCPv6RemoteIdentifierEnterpriseNumberResolver),
                                                PropertiesAndValues = new Dictionary <String, String>
                                                {
                                                    { nameof(DHCPv6RemoteIdentifierEnterpriseNumberResolver.EnterpriseNumber), enterpriseId.ToString() },
                                                    { nameof(DHCPv6RemoteIdentifierEnterpriseNumberResolver.RelayAgentIndex), relayAgentIndex.ToString() },
                                                }
                                            }
                                        }) }
                                }
                            }
                        }) }
                }
            };

            DHCPv6ScopeResolverManager scopeManager = new DHCPv6ScopeResolverManager(
                new JSONBasedSerializer(), Mock.Of <IDeviceService>(MockBehavior.Strict), Mock.Of <ILogger <DHCPv6ScopeResolverManager> >());

            scopeManager.AddOrUpdateScopeResolver(nameof(DHCPv6AndResolver), () => new DHCPv6AndResolver());
            scopeManager.AddOrUpdateScopeResolver(nameof(DHCPv6RemoteIdentifierEnterpriseNumberResolver), () => new DHCPv6RemoteIdentifierEnterpriseNumberResolver(Mock.Of <ILogger <DHCPv6RemoteIdentifierEnterpriseNumberResolver> >()));

            var firstLevelResolver = scopeManager.InitializeResolver(createScopeResolverInformation);

            Assert.NotNull(firstLevelResolver);

            Assert.IsAssignableFrom <DHCPv6AndResolver>(firstLevelResolver);

            DHCPv6AndResolver firstLevelAndResolver = (DHCPv6AndResolver)firstLevelResolver;

            Assert.Single(firstLevelAndResolver.GetScopeResolvers());

            var secondLevelResolver = firstLevelAndResolver.GetScopeResolvers().First();

            Assert.IsAssignableFrom <DHCPv6AndResolver>(secondLevelResolver);

            DHCPv6AndResolver secondLevelAndResolver = (DHCPv6AndResolver)secondLevelResolver;

            Assert.Single(secondLevelAndResolver.GetScopeResolvers());

            var innerResolver = secondLevelAndResolver.GetScopeResolvers().First();

            Assert.IsAssignableFrom <DHCPv6RemoteIdentifierEnterpriseNumberResolver>(innerResolver);

            DHCPv6RemoteIdentifierEnterpriseNumberResolver innerCasedResolver = (DHCPv6RemoteIdentifierEnterpriseNumberResolver)innerResolver;

            Assert.Equal(enterpriseId, innerCasedResolver.EnterpriseNumber);
            Assert.Equal(relayAgentIndex, innerCasedResolver.RelayAgentIndex);
        }