예제 #1
0
        public async Task PublicIPResolverOverHttp_ResolveIPv4_ReturnsAResolvedIPAdresses()
        {
            // Given
            var ipv4Url = "https://ipv4";
            var ipv6Url = "https://ipv6";
            var options = new PublicIPResolverOverHttpOptions(ipv4Url, ipv6Url);
            var logger  = _mockLogger.Object;

            _mockHttp
            .Expect(ipv4Url)
            .Respond(HttpStatusCode.OK, "text/plain", "10.0.0.1");

            // _mockHttp
            //     .Expect(ipv6Url)
            //     .Respond(HttpStatusCode.OK, "text/plain", "2001:0db8:85a3:0000:0000:8a2e:0370:7334");

            var client = _mockHttp.ToHttpClient();

            // When
            var ipResolver = new PublicIPResolverOverHttp(client, logger, options);
            var ipv4       = await ipResolver.ResolveIPv4();

            // Then
            ipv4.Should().BeEquivalentTo(IPAddress.Parse("10.0.0.1"));
        }
예제 #2
0
        public async Task PublicIPResolverOverHttp_ResolveIPv6_ReturnsNullWhenTheRequestFails()
        {
            // Given
            var ipv4Url = "https://ipv4";
            var ipv6Url = "https://ipv6";
            var options = new PublicIPResolverOverHttpOptions(ipv4Url, ipv6Url);
            var logger  = _mockLogger.Object;

            var client = _mockHttp.ToHttpClient();

            // When
            var ipResolver = new PublicIPResolverOverHttp(client, logger, options);
            var ip         = await ipResolver.ResolveIPv6();

            // Then
            Assert.Null(ip);
        }
예제 #3
0
        public async Task PublicIPResolverOverHttp_ResolveIPv6_ReturnsNullWhenAnInvalidIpIsReturned()
        {
            // Given
            var ipv4Url = "https://ipv4";
            var ipv6Url = "https://ipv6";
            var options = new PublicIPResolverOverHttpOptions(ipv4Url, ipv6Url);
            var logger  = _mockLogger.Object;

            _mockHttp
            .Expect(ipv6Url)
            .Respond(HttpStatusCode.OK, "text/plain", "");

            var client = _mockHttp.ToHttpClient();

            // When
            var ipResolver = new PublicIPResolverOverHttp(client, logger, options);
            var ips        = await ipResolver.ResolveIPv6();

            // Then
            Assert.Null(ips);
            _mockLogger.Verify(l => l.Verbose("Can't resolve {type} from {endpoint}: {message}", "ipv6", "https://ipv6", "An invalid IP address was specified."));
        }