Пример #1
0
        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);
        }
Пример #2
0
        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();
        }
Пример #3
0
        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();
        }