2023-09-20 10:59:34 -04:00
|
|
|
|
using NUnit.Framework;
|
2018-07-21 16:14:26 -04:00
|
|
|
|
|
2023-03-31 11:47:53 -04:00
|
|
|
|
namespace Vanara.Network.Tests;
|
|
|
|
|
|
|
|
|
|
[TestFixture]
|
|
|
|
|
public class NetworkListTests
|
2018-07-21 16:14:26 -04:00
|
|
|
|
{
|
2023-03-31 11:47:53 -04:00
|
|
|
|
[Test]
|
|
|
|
|
public void TestNetworkList()
|
2018-07-21 16:14:26 -04:00
|
|
|
|
{
|
2023-03-31 11:47:53 -04:00
|
|
|
|
TestContext.WriteLine($"Network: {NetworkListManager.IsConnected}");
|
|
|
|
|
TestContext.WriteLine($"Internet: {NetworkListManager.IsConnectedToInternet}");
|
|
|
|
|
TestContext.WriteLine($"State: {NetworkListManager.Connectivity}");
|
|
|
|
|
foreach (var n in NetworkListManager.Networks)
|
|
|
|
|
TestContext.WriteLine(NetInfo(n));
|
|
|
|
|
foreach (var n in NetworkListManager.NetworkConnections)
|
|
|
|
|
TestContext.WriteLine(ConnInfo(n));
|
2018-07-21 16:14:26 -04:00
|
|
|
|
|
2023-03-31 11:47:53 -04:00
|
|
|
|
string ConnInfo(NetworkConnection nc)
|
|
|
|
|
{
|
|
|
|
|
var sb = new StringBuilder();
|
|
|
|
|
sb.AppendLine($"Conn: {nc.ConnectionId}, Adapter:{nc.AdapterId}");
|
|
|
|
|
sb.AppendLine($" Conn:{nc.IsConnected}, Internet:{nc.IsConnectedToInternet}");
|
|
|
|
|
sb.AppendLine($" Cntv:{nc.Connectivity}, Net:{nc.Network.Name}");
|
|
|
|
|
sb.AppendLine($" Type:{nc.DomainType}, Cost:{nc.Cost}, Plan:{DPToString(nc.DataPlanStatus)}");
|
|
|
|
|
return sb.ToString();
|
|
|
|
|
}
|
2018-07-21 16:14:26 -04:00
|
|
|
|
|
2023-03-31 11:47:53 -04:00
|
|
|
|
/// <summary>Returns a <see cref="string"/> that represents this instance.</summary>
|
|
|
|
|
/// <returns>A <see cref="string"/> that represents this instance.</returns>
|
|
|
|
|
string DPToString(PInvoke.NetListMgr.NLM_DATAPLAN_STATUS dp) => string.Format(Formatter.Default().Add<ByteSizeFormatter>(), "Bandwidth:{0:B}/{1:B}; Use:{2:B}", dp.InboundBandwidthInKbps * 1024L, dp.OutboundBandwidthInKbps * 1024L, dp.UsageData.UsageInMegabytes * 1024 * 1024L);
|
2018-07-21 16:14:26 -04:00
|
|
|
|
|
2023-03-31 11:47:53 -04:00
|
|
|
|
string NetInfo(NetworkProfile np)
|
|
|
|
|
{
|
|
|
|
|
var sb = new StringBuilder();
|
|
|
|
|
sb.AppendLine($"Net: {np.Name} ({np.Description})");
|
|
|
|
|
sb.AppendLine($" Conn:{np.IsConnected}, Internet:{np.IsConnectedToInternet}");
|
|
|
|
|
sb.AppendLine($" Created:{np.CreationTime}, Conn:{np.ConnectionTime}");
|
|
|
|
|
sb.AppendLine($" Cat:{np.Category}, Cntv:{np.Connectivity}");
|
|
|
|
|
sb.AppendLine($" Type:{np.DomainType}, Id:{np.Id}");
|
|
|
|
|
return sb.ToString();
|
2018-07-21 16:14:26 -04:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|