using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using HttpClientStudy.Core.Utilities;

namespace HttpClientStudy.UnitTest
{
    /// <summary>
    /// 临时测试
    /// </summary>
    public class TempTest
    {
        private readonly ITestOutputHelper _output;
        public TempTest(ITestOutputHelper output)
        {
            _output = output;
        }

        [Fact]
        public async Task TestAsync()
        {
            var ips = await Dns.GetHostAddressesAsync("localhost");
            string firstIp = ips?.FirstOrDefault()?.ToString() ?? string.Empty;

            //自定义行为
            var socketsHandler = new SocketsHttpHandler
            {
                PooledConnectionLifetime = TimeSpan.FromSeconds(1),
                PooledConnectionIdleTimeout = TimeSpan.FromSeconds(1),
                MaxConnectionsPerServer = 10
            };

            var client = new HttpClient(socketsHandler);

            for (var i = 0; i < 3; i++)
            {
                if (i > 0)
                {
                    await Task.Delay(2000);
                }
                await client.GetAsync("http://localhost");
            }

            var queryNetwork = CmdUtility.RunCmd($"netstat -ano | findstr {firstIp}");

            _output.WriteLine(queryNetwork);
        }
    }
}