public void WhenCusterMonitorStops_UnregisterNodeMessageIsSent() { Func <Barrier, bool> setBarrier = (b) => { b.SignalAndWait(); return(true); }; autoDiscoveryListener.Setup(m => m.StartBlockingListenMessages(It.IsAny <Action>(), It.IsAny <CancellationToken>(), It.Is <Barrier>(b => setBarrier(b)))); autoDiscoverySender.Setup(m => m.StartBlockingSendMessages(It.IsAny <CancellationToken>(), It.Is <Barrier>(b => setBarrier(b)))); // clusterMonitor.Start(); AsyncOp.Sleep(); clusterMonitor.Stop(); // Func <IMessage, bool> isUnregistrationMessage = msg => { if (msg.Equals(MessageIdentifier.Create <UnregisterNodeMessage>())) { var payload = msg.GetPayload <UnregisterNodeMessage>(); Assert.IsTrue(Unsafe.ArraysEqual(scaleOutAddress.Identity, payload.ReceiverNodeIdentity)); Assert.AreEqual(scaleOutAddress.Uri.ToSocketAddress(), payload.Uri); return(true); } return(false); }; autoDiscoverySender.Verify(m => m.EnqueueMessage(It.Is <IMessage>(msg => isUnregistrationMessage(msg))), Times.Once); }
public bool Stop(HostControl hostControl) { if (_clusterMonitor.Role == NodeRole.StandAlone) { StopFeed(); } else { _clusterMonitor.Stop(); } return(true); }
public void WhenClusterMonitorStarts_ClusterRoutesAreRequested() { Func <Barrier, bool> setBarrier = (b) => { b.SignalAndWait(); return(true); }; autoDiscoveryListener.Setup(m => m.StartBlockingListenMessages(It.IsAny <Action>(), It.IsAny <CancellationToken>(), It.Is <Barrier>(b => setBarrier(b)))); autoDiscoverySender.Setup(m => m.StartBlockingSendMessages(It.IsAny <CancellationToken>(), It.Is <Barrier>(b => setBarrier(b)))); // clusterMonitor.Start(); config.RouteDiscovery .ClusterAutoDiscoveryStartDelay .MultiplyBy(config.RouteDiscovery.ClusterAutoDiscoveryStartDelayMaxMultiplier) .Sleep(); clusterMonitor.Stop(); // Func <Message, bool> isRequestClusterRoutesMessage = (msg) => { if (msg.Equals(MessageIdentifier.Create <RequestClusterMessageRoutesMessage>())) { var payload = msg.GetPayload <RequestClusterMessageRoutesMessage>(); Assert.True(Unsafe.ArraysEqual(scaleOutAddress.Identity, payload.RequestorNodeIdentity)); Assert.Equal(scaleOutAddress.Uri.ToSocketAddress(), payload.RequestorUri); return(true); } return(false); }; autoDiscoverySender.Verify(m => m.EnqueueMessage(It.Is <IMessage>(msg => isRequestClusterRoutesMessage(msg.As <Message>()))), Times.Once); }