public async Task Resolve_ShouldCall_DnsClientResolve_WithHostParameter() { // Arrange const string host = "hostname"; const string ip = "125.247.41.7"; _ = _dnsClient.Resolve(host, Arg.Any <CancellationToken>()).Returns(ip); // Act var result = await DnsClientExtensions.Resolve(_dnsClient, host, TimeSpan.Zero); // Assert result.Should().Be(ip); }
public async Task Resolve_ShouldBe_NullOrEmpty_WhenTimedOut() { // Arrange var timeout = TimeSpan.FromMilliseconds(100); _ = _dnsClient.Resolve(Arg.Any <string>(), Arg.Any <CancellationToken>()).Returns(async _ => { await Task.Delay(timeout + TimeSpan.FromMilliseconds(200)); return("success"); }); // Act var result = await DnsClientExtensions.Resolve(_dnsClient, "", timeout); // Assert result.Should().BeNullOrEmpty(); }
public async Task Resolve_ShouldCancel_CancellationToken_AfterTimeout() { // Arrange var timeout = TimeSpan.FromMilliseconds(100); CancellationToken token; _ = _dnsClient.Resolve(Arg.Any <string>(), Arg.Do <CancellationToken>(x => token = x)).Returns(async _ => { await Task.Delay(timeout + TimeSpan.FromMilliseconds(200)); return("success"); }); // Act await DnsClientExtensions.Resolve(_dnsClient, "", timeout); // Assert token.IsCancellationRequested.Should().BeTrue(); }