public async Task SentinelSentinelsAsyncTest() { var sentinels = await SentinelServerA.SentinelSentinelsAsync(ServiceName).ForAwait(); var expected = new List <string> { SentinelServerB.EndPoint.ToString(), SentinelServerC.EndPoint.ToString() }; var actual = new List <string>(); foreach (var kv in sentinels) { var data = kv.ToDictionary(); actual.Add(data["ip"] + ":" + data["port"]); } Assert.All(expected, ep => Assert.NotEqual(ep, SentinelServerA.EndPoint.ToString())); Assert.True(sentinels.Length == 2); Assert.All(expected, ep => Assert.Contains(ep, actual, _ipComparer)); sentinels = await SentinelServerB.SentinelSentinelsAsync(ServiceName).ForAwait(); expected = new List <string> { SentinelServerA.EndPoint.ToString(), SentinelServerC.EndPoint.ToString() }; actual = new List <string>(); foreach (var kv in sentinels) { var data = kv.ToDictionary(); actual.Add(data["ip"] + ":" + data["port"]); } Assert.All(expected, ep => Assert.NotEqual(ep, SentinelServerB.EndPoint.ToString())); Assert.True(sentinels.Length == 2); Assert.All(expected, ep => Assert.Contains(ep, actual, _ipComparer)); sentinels = await SentinelServerC.SentinelSentinelsAsync(ServiceName).ForAwait(); expected = new List <string> { SentinelServerA.EndPoint.ToString(), SentinelServerB.EndPoint.ToString() }; actual = new List <string>(); foreach (var kv in sentinels) { var data = kv.ToDictionary(); actual.Add(data["ip"] + ":" + data["port"]); } Assert.All(expected, ep => Assert.NotEqual(ep, SentinelServerC.EndPoint.ToString())); Assert.True(sentinels.Length == 2); Assert.All(expected, ep => Assert.Contains(ep, actual, _ipComparer)); }