Beispiel #1
0
 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)));
         // 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));
     });
 }