public void GetEnumerator_ChangeWhileEnumerating_GetsOriginalList() { // Arrange var node1 = CreateMockNode(CreateEndpoint(1)).Object; var node2 = CreateMockNode(CreateEndpoint(2)).Object; var nodes = new ClusterNodeCollection { node1, node2 }; Assert.Equal(2, nodes.Count); // Act using var enumerator = nodes.GetEnumerator(); Assert.True(enumerator.MoveNext()); Assert.True(nodes.Remove(CreateEndpoint(1), out _)); // Assert Assert.True(enumerator.MoveNext()); Assert.False(enumerator.MoveNext()); }
public void Clear_ReturnsRemovedNodes() { // Arrange var node1 = CreateMockNode(CreateEndpoint(1)).Object; var node2 = CreateMockNode(CreateEndpoint(2)).Object; var nodes = new ClusterNodeCollection { node1, node2 }; Assert.Equal(2, nodes.Count); // Act var result = nodes.Clear(); // Assert Assert.Equal(2, result.Count); Assert.Contains(node1, result); Assert.Contains(node2, result); }
public void RemoveKeyEndPoint_RemovesFromLookup() { // Arrange var node = CreateMockNode(CreateEndpoint(1), CreateEndpoint(2)); var nodes = new ClusterNodeCollection { node.Object }; var args = new NotifyCollectionChangedEventArgs( NotifyCollectionChangedAction.Remove, new List <IPEndPoint> { CreateEndpoint(2) }, 1); // Act node.Raise(m => m.KeyEndPointsChanged += null, args); // Assert Assert.False(nodes.TryGet(CreateEndpoint(2), out _)); }
public void Remove_NotInCollection_ReturnsFalse() { // Arrange var nodes = new ClusterNodeCollection(); // Act var result = nodes.Remove(CreateEndpoint(1), out _); // Assert Assert.False(result); }
public void Start() { if (textes.Count < 3) { return; } ClusteringTreeModel clusteringModel = new ClusteringTreeModel(dataSets, parsedRegions, textes, files); ClusterNodeCollection clusters = clusteringModel.ExecuteClustering(ActiveStratege, 1); Items = new List <Node> { BuildRootNode(clusters.FirstOrDefault()) }; }
public async Task Should_Continue_After_Failures() { var clusterOptions = new ClusterOptions() .WithConnectionString($"couchbases://NOSUCHHOST{nameof(Should_Continue_After_Failures)}") .WithCredentials("UnitTestUser", "PasswordDoesn'tMatter"); var messageHandler = new ThrowsEveryTimeMessageHandler(); var httpClientFactory = new MockHttpClientFactory(() => new HttpClient(messageHandler, false)); var configHandler = new Mock <IConfigHandler>(MockBehavior.Loose).Object; var mockLogger = new Mock <ILogger <HttpStreamingConfigListener> >(MockBehavior.Loose).Object; var mockBucket = new Mock <BucketBase>(); var clusterNodeCollection = new ClusterNodeCollection(); var clusterNode = new Mock <IClusterNode>(); clusterNode.Setup(x => x.KeyEndPoints).Returns(new ReadOnlyObservableCollection <HostEndpointWithPort>(new ObservableCollection <HostEndpointWithPort>())); clusterNode.Setup(x => x.ManagementUri).Returns(new Uri($"http://NOSUCHHOST{nameof(Should_Continue_After_Failures)}:8091")); clusterNode.Setup(x => x.EndPoint).Returns(new HostEndpointWithPort($"NOSUCHHOST{nameof(Should_Continue_After_Failures)}", 11210)); clusterNodeCollection.Add(clusterNode.Object); mockBucket.Object.Nodes.Add(clusterNode.Object); using var configListener = new HttpStreamingConfigListener(mockBucket.Object, clusterOptions, httpClientFactory, configHandler, mockLogger); configListener.StartListening(); var exitedSpinBeforeTimeout = SpinWait.SpinUntil(() => messageHandler.CallCount > 0, TimeSpan.FromSeconds(10)); if (!exitedSpinBeforeTimeout) { throw new TimeoutException($"{nameof(HttpStreamingConfigListener)} didn't start in time."); } await Task.Delay(500); Assert.NotInRange(messageHandler.CallCount, 0, 2); configListener.Dispose(); // give it a little time to finish up. await Task.Delay(500); var callCountAfterDispose = messageHandler.CallCount; // a little more time to generate more calls if it was still running. await Task.Delay(500); Assert.Equal(callCountAfterDispose, messageHandler.CallCount); await configListener.DisposeAsync(); }
public void Add_NotInCollection_RegistersForEvents() { // Arrange var node = CreateMockNode(CreateEndpoint(1)); var nodes = new ClusterNodeCollection(); // Act nodes.Add(node.Object); // Assert node.VerifyAdd(m => m.KeyEndPointsChanged += It.IsAny <NotifyCollectionChangedEventHandler>(), Times.Once); }
public void Add_NotInCollection_ReturnsTrue() { // Arrange var node = CreateMockNode(CreateEndpoint(1)).Object; var nodes = new ClusterNodeCollection(); // Act var result = nodes.Add(node); // Assert Assert.True(result); }
public void Remove_InCollection_UnregistersForEvents() { // Arrange var node = CreateMockNode(CreateEndpoint(1)); var nodes = new ClusterNodeCollection { node.Object }; // Act nodes.Remove(CreateEndpoint(1), out _); // Assert node.VerifyRemove(m => m.KeyEndPointsChanged -= It.IsAny <NotifyCollectionChangedEventHandler>(), Times.AtLeastOnce); }
public void Add_NotInCollection_RegistersAllEndpoints() { // Arrange var node = CreateMockNode(CreateEndpoint(1), CreateEndpoint(2)).Object; var nodes = new ClusterNodeCollection(); // Act nodes.Add(node); // Assert Assert.True(nodes.TryGet(CreateEndpoint(1), out var resultNode)); Assert.Equal(node, resultNode); Assert.True(nodes.TryGet(CreateEndpoint(2), out resultNode)); Assert.Equal(node, resultNode); }
public void Add_InCollection_ReturnsFalse() { // Arrange var node = CreateMockNode(CreateEndpoint(1)).Object; var nodes = new ClusterNodeCollection { node }; // Act var result = nodes.Add(node); // Assert Assert.False(result); Assert.Equal(1, nodes.Count); }
public void Remove_InCollection_UnregistersAllEndpoints() { // Arrange var node = CreateMockNode(CreateEndpoint(1), CreateEndpoint(2)).Object; var nodes = new ClusterNodeCollection() { node }; // Act nodes.Remove(CreateEndpoint(1), out _); // Assert Assert.False(nodes.TryGet(CreateEndpoint(1), out _)); Assert.False(nodes.TryGet(CreateEndpoint(2), out _)); }
public void Remove_InCollection_ReturnsTrue() { // Arrange var node = CreateMockNode(CreateEndpoint(1)).Object; var nodes = new ClusterNodeCollection { node }; // Act var result = nodes.Remove(CreateEndpoint(1), out var removedNode); // Assert Assert.True(result); Assert.Equal(node, removedNode); }
public void Remove_InCollection_ReducesCount() { // Arrange var node = CreateMockNode(CreateEndpoint(1)).Object; var nodes = new ClusterNodeCollection { node }; Assert.Equal(1, nodes.Count); // Act var result = nodes.Remove(CreateEndpoint(1), out _); // Assert Assert.Equal(0, nodes.Count); }
public void Clear_UnregistersEvents() { // Arrange var node1 = CreateMockNode(CreateEndpoint(1)); var node2 = CreateMockNode(CreateEndpoint(2)); var nodes = new ClusterNodeCollection { node1.Object, node2.Object }; Assert.Equal(2, nodes.Count); // Act nodes.Clear(); // Assert node1.VerifyRemove(m => m.KeyEndPointsChanged -= It.IsAny <NotifyCollectionChangedEventHandler>(), Times.AtLeastOnce); node2.VerifyRemove(m => m.KeyEndPointsChanged -= It.IsAny <NotifyCollectionChangedEventHandler>(), Times.AtLeastOnce); }
public void Clear_RemovesFromLookup() { // Arrange var node1 = CreateMockNode(CreateEndpoint(1)).Object; var node2 = CreateMockNode(CreateEndpoint(2)).Object; var nodes = new ClusterNodeCollection { node1, node2 }; Assert.Equal(2, nodes.Count); // Act nodes.Clear(); // Assert Assert.False(nodes.TryGet(CreateEndpoint(1), out _)); Assert.False(nodes.TryGet(CreateEndpoint(2), out _)); }