Exemple #1
0
        public async Task Resolve_ShouldUse_DnsClients_DnsServers()
        {
            // Arrange
            var nameServers = new[]
            {
                new IPEndPoint(IPAddress.Parse("15.46.251.79"), 53),
                new IPEndPoint(IPAddress.Parse("8.8.8.8"), 53),
                new IPEndPoint(IPAddress.Parse("10.3.15.47"), 66)
            };

            _dnsClients.NameServers().Returns(nameServers.ToList());

            _dnsClients.DnsClient(Arg.Any <IReadOnlyCollection <IPEndPoint> >()).Returns(args =>
            {
                var dnsClient = Substitute.For <IDnsClient>();
                dnsClient.NameServers.Returns(args.ArgAt <IReadOnlyCollection <IPEndPoint> >(0));
                return(dnsClient);
            });

            var client = new Core.OS.Net.Dns.DnsClient(_dnsClients, _networkInterfaces);

            // Act
            await client.Resolve("some.host", CancellationToken.None);

            // Assert
            client.NameServers.Should().BeEquivalentTo(nameServers);
        }
Exemple #2
0
        private void RefreshDnsClient()
        {
            if (!_addressChanged)
            {
                return;
            }

            _addressChanged = false;

            var dnsServers = _dnsClients.NameServers();

            if (_dnsClient.NameServers.ToHashSet().SetEquals(dnsServers))
            {
                return;
            }

            _dnsClient = _dnsClients.DnsClient(dnsServers);
        }