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")); }
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); }
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.")); }