Beispiel #1
0
        public async Task IfHeartBeatDoesntArriveWithinHeartBeatSilenceBeforeRendezvousFailoverTime_ListenerRestartsConnectingToNextRendezvous()
        {
            var numberOfTimeouts   = 3;
            var cancellatioSource  = new CancellationTokenSource(membershipConfiguration.HeartBeatSilenceBeforeRendezvousFailover.MultiplyBy(numberOfTimeouts));
            var previousRendezvous = GetCurrentRendezvous();

            //
            await Start(() => autoDiscoveryListener.StartBlockingListenMessages(restartRequestHandler.Object, cancellatioSource.Token, gateway));

            //
            var restartTimes = numberOfTimeouts - 1;

            restartRequestHandler.Verify(m => m(), Times.AtLeast(restartTimes));
            rendezvousCluster.Verify(m => m.RotateRendezvousServers(), Times.AtLeast(restartTimes));
            subscriptionSocket.Verify(m => m.Connect(previousRendezvous.BroadcastUri, true), Times.Once);
            subscriptionSocket.Verify(m => m.Connect(GetCurrentRendezvous().BroadcastUri, true), Times.Once);
        }