public void HasUniqueIdentiifer() { DHCPv6RemoteIdentifierEnterpriseNumberResolver resolver = new DHCPv6RemoteIdentifierEnterpriseNumberResolver( Mock.Of <ILogger <DHCPv6RemoteIdentifierEnterpriseNumberResolver> >()); Assert.False(resolver.HasUniqueIdentifier); }
public void GetUniqueIdentifier() { DHCPv6RemoteIdentifierEnterpriseNumberResolver resolver = new DHCPv6RemoteIdentifierEnterpriseNumberResolver( Mock.Of <ILogger <DHCPv6RemoteIdentifierEnterpriseNumberResolver> >()); Assert.ThrowsAny <Exception>(() => resolver.GetUniqueIdentifier(null)); }
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(); }
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()); }
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(); }
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); } }
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(); }
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); }