public void AwaitMembersUp( int numbersOfMembers, ImmutableHashSet <Address> canNotBePartOfMemberRing = null, TimeSpan?timeout = null) { if (canNotBePartOfMemberRing == null) { canNotBePartOfMemberRing = ImmutableHashSet.Create <Address>(); } if (timeout == null) { timeout = TimeSpan.FromSeconds(25); } Within(timeout.Value, () => { if (canNotBePartOfMemberRing.Any()) // don't run this on an empty set { AwaitAssert(() => { foreach (var a in canNotBePartOfMemberRing) { _assertions.AssertFalse(ClusterView.Members.Select(m => m.Address).Contains(a)); } }); } AwaitAssert(() => _assertions.AssertEqual(numbersOfMembers, ClusterView.Members.Count)); AwaitAssert(() => _assertions.AssertTrue(ClusterView.Members.All(m => m.Status == MemberStatus.Up), "All members should be up")); // clusterView.leader is updated by LeaderChanged, await that to be updated also var firstMember = ClusterView.Members.FirstOrDefault(); var expectedLeader = firstMember == null ? null : firstMember.Address; AwaitAssert(() => _assertions.AssertEqual(expectedLeader, ClusterView.Leader)); }); }
public void AwaitAllReachable() { AwaitAssert(() => _assertions.AssertFalse(ClusterView.UnreachableMembers.Any())); }