public async Task PingStatsSource_EnsureAllServers() { var servers = await PingStatsSource.LoadInternalServerListAsync(); var p = new Ping(); var failedServers = new List <Tuple <IPAddress, object> >(); foreach (var s in servers) { // Make 5 attempts to successfully ping each server. for (int i = 0; i < 5; i++) { try { var result = await p.SendPingAsync(s, 5000); if (result.Status == IPStatus.Success) { break; } if (i == 4) { failedServers.Add(Tuple.Create(s, (object)result.Status)); } else { await Task.Delay(1000); } } catch (Exception ex) { failedServers.Add(Tuple.Create(s, (object)ex)); break; } } } if (failedServers.Any()) { throw new Exception("Servers failed to ping:\n" + String.Join("\n", failedServers.Select(x => x.Item1.ToString() + " - " + x.Item2.ToString()))); } }
public void PingStatsSource_PingsPerSample() { var source = new PingStatsSource(TimeSpan.FromMinutes(1), null, 1000, 20); Assert.AreEqual(source.PingsPerSample, 1000); }
public void PingStatsSource_ConfigPeriod() { var source = new PingStatsSource(TimeSpan.FromMinutes(100)); Assert.AreEqual(source.PeriodNormalPriority.TotalMinutes, 100.0); }