public void ClusterSingletonManager_in_chaotic_cluster_should_startup_6_node_cluster()
{
Within(TimeSpan.FromSeconds(60), () =>
{
var memberProbe = CreateTestProbe();
Cluster.Subscribe(memberProbe.Ref, new[] { typeof(ClusterEvent.MemberUp) });
memberProbe.ExpectMsg<ClusterEvent.CurrentClusterState>();
Join(_config.First, _config.First);
AwaitMemberUp(memberProbe, _config.First);
RunOn(() =>
{
ExpectMsg<EchoStarted>();
}, _config.First);
EnterBarrier("_config.First-started");
Join(_config.Second, _config.First);
AwaitMemberUp(memberProbe, _config.Second, _config.First);
Join(_config.Third, _config.First);
AwaitMemberUp(memberProbe, _config.Third, _config.Second, _config.First);
Join(_config.Fourth, _config.First);
AwaitMemberUp(memberProbe, _config.Fourth, _config.Third, _config.Second, _config.First);
Join(_config.Fifth, _config.First);
AwaitMemberUp(memberProbe, _config.Fifth, _config.Fourth, _config.Third, _config.Second, _config.First);
Join(_config.Sixth, _config.First);
AwaitMemberUp(memberProbe, _config.Sixth, _config.Fifth, _config.Fourth, _config.Third, _config.Second, _config.First);
RunOn(() =>
{
Echo(_config.First).Tell("hello");
ExpectMsg<IActorRef>(TimeSpan.FromSeconds(3)).Path.Address
.Should()
.Be(GetAddress(_config.First));
}, _config.Controller);
EnterBarrier("_config.First-verified");
});
}