public AutoDiscoverySenderTests() { rendezvousCluster = new Mock <IRendezvousCluster>(); rendezvousEndpoint = new RendezvousEndpoint("tcp://*:8080", "tcp://*:9009"); rendezvousCluster.Setup(m => m.GetCurrentRendezvousServer()).Returns(rendezvousEndpoint); socketFactory = new Mock <ISocketFactory>(); socket = new Mock <ISocket>(); socketFactory.Setup(m => m.CreateDealerSocket()).Returns(socket.Object); performanceCounterManager = new Mock <IPerformanceCounterManager <KinoPerformanceCounters> >(); var perfCounter = new Mock <IPerformanceCounter>(); performanceCounterManager.Setup(m => m.GetCounter(It.IsAny <KinoPerformanceCounters>())).Returns(perfCounter.Object); logger = new Mock <ILogger>(); config = new ClusterMembershipConfiguration { RouteDiscovery = new RouteDiscoveryConfiguration { MaxAutoDiscoverySenderQueueLength = 100 } }; autoDiscoverSender = new AutoDiscoverySender(rendezvousCluster.Object, socketFactory.Object, config, performanceCounterManager.Object, logger.Object); }
private bool RendezvousNotLeader(IMessage message) { var shouldHandle = IsRendezvousNotLeader(message); if (shouldHandle) { var payload = message.GetPayload <RendezvousNotLeaderMessage>(); var newLeader = new RendezvousEndpoint(payload.NewLeader.UnicastUri, payload.NewLeader.BroadcastUri); var currentLeader = rendezvousCluster.GetCurrentRendezvousServer(); if (!currentLeader.Equals(newLeader)) { logger.Info($"New Rendezvous leader: {newLeader.BroadcastUri.AbsoluteUri}. " + $"Disconnecting {currentLeader.BroadcastUri.AbsoluteUri}"); if (!rendezvousCluster.SetCurrentRendezvousServer(newLeader)) { logger.Error($"New Rendezvous leader {newLeader.BroadcastUri.AbsoluteUri} " + $"was not found within configured Rendezvous cluster: [{string.Join(",", rendezvousCluster.Nodes.Select(n => n.BroadcastUri.AbsoluteUri))}]"); } newRendezvousConfiguration.Set(); } } return(shouldHandle); }
public void IfNewRendezvousServerDoesntBelongToCluster_ItIsNotSetAsCurrentRendezvousServer() { var otherEndpoint = new RendezvousEndpoint("tcp://*:5555", "tcp://*:4444"); Assert.DoesNotContain(otherEndpoint, cluster.Cluster); // rendezvousCluster.SetCurrentRendezvousServer(otherEndpoint); // Assert.NotEqual(otherEndpoint, rendezvousCluster.GetCurrentRendezvousServer()); }
public void TwoRendezvousEndpointsAreNotEqual_IfTheirUnicastUriPropertiesAreNotEqual() { const string broadcastUri = "tcp://*:9090"; var first = new RendezvousEndpoint("tcp://*:8081", broadcastUri); var second = new RendezvousEndpoint("tcp://*:8082", broadcastUri); // Assert.AreNotEqual(first, second); Assert.IsFalse(first.Equals(second)); Assert.IsFalse(first.Equals((object)second)); Assert.IsFalse(first == second); Assert.IsTrue(first != second); }
public void TwoRendezvousEndpointsAreNotEqual_IfTheirBroadsastUriPropertiesAreNotEqual() { const string unicastUri = "tcp://*:8080"; var first = new RendezvousEndpoint(unicastUri, "tcp://*:9090"); var second = new RendezvousEndpoint(unicastUri, "tcp://*:9091"); // Assert.NotEqual(first, second); Assert.False(first.Equals(second)); Assert.False(first.Equals((object)second)); Assert.False(first == second); Assert.True(first != second); }
public void SetCurrentRendezvousServer(RendezvousEndpoint currentRendezvousServer) { lock (@lock) { for (var i = 0; i < config.Count; i++) { var server = config[i]; if (server.Equals(currentRendezvousServer)) { config.Remove(server); config.InsertFirst(server); } } } }
public void Setup() { rendezvousCluster = new Mock <IRendezvousCluster>(); rendezvousEndpoint = new RendezvousEndpoint("tcp://*:8080", "tcp://*:9009"); rendezvousCluster.Setup(m => m.GetCurrentRendezvousServer()).Returns(rendezvousEndpoint); socketFactory = new Mock <ISocketFactory>(); socket = new Mock <ISocket>(); socketFactory.Setup(m => m.CreateDealerSocket()).Returns(socket.Object); performanceCounterManager = new Mock <IPerformanceCounterManager <KinoPerformanceCounters> >(); var perfCounter = new Mock <IPerformanceCounter>(); performanceCounterManager.Setup(m => m.GetCounter(It.IsAny <KinoPerformanceCounters>())).Returns(perfCounter.Object); logger = new Mock <ILogger>(); autoDiscoverSender = new AutoDiscoverySender(rendezvousCluster.Object, socketFactory.Object, performanceCounterManager.Object, logger.Object); }
public bool SetCurrentRendezvousServer(RendezvousEndpoint newRendezvousServer) { lock (@lock) { for (var i = 0; i < config.Count; i++) { var server = config[i]; server.RefreshUri(); if (server.Equals(newRendezvousServer)) { config.Remove(server); config.InsertFirst(server); return(true); } } return(false); } }
private bool RendezvousNotLeader(IMessage message) { var shouldHandle = IsRendezvousNotLeader(message); if (shouldHandle) { var payload = message.GetPayload <RendezvousNotLeaderMessage>(); var newLeader = new RendezvousEndpoint(new Uri(payload.NewLeader.UnicastUri), new Uri(payload.NewLeader.BroadcastUri)); var currentLeader = rendezvousCluster.GetCurrentRendezvousServer(); if (!currentLeader.Equals(newLeader)) { logger.Info($"New Rendezvous leader: {newLeader.BroadcastUri.AbsoluteUri}. " + $"Disconnecting {currentLeader.BroadcastUri.AbsoluteUri}"); rendezvousCluster.SetCurrentRendezvousServer(newLeader); newRendezvousConfiguration.Set(); } } return(shouldHandle); }
private bool RendezvousNotLeader(IMessage message) { var shouldHandle = IsRendezvousNotLeader(message); if (shouldHandle) { var payload = message.GetPayload<RendezvousNotLeaderMessage>(); var newLeader = new RendezvousEndpoint { MulticastUri = new Uri(payload.NewLeader.MulticastUri), UnicastUri = new Uri(payload.NewLeader.UnicastUri) }; if (!rendezvousCluster.GetCurrentRendezvousServer().Equals(newLeader)) { rendezvousCluster.SetCurrentRendezvousServer(newLeader); newRendezvousConfiguration.Set(); } } return shouldHandle; }