public void RefreshFiresProjectAddedWhenANewProjectIsFound() { var watcher = new TestWatcher(); var monitor = InitialiseServer(watcher); mocks.ReplayAll(); var hasFired = false; monitor.ProjectAdded += (o, e) => { hasFired = true; }; monitor.Refresh(); watcher.Snapshot.ProjectStatuses = new ProjectStatus[]{ new ProjectStatus { Name = "Project1" }, new ProjectStatus{ Name = "Project2" }, new ProjectStatus{ Name = "Project3" } }; monitor.Refresh(); Assert.IsTrue(hasFired); }
public void RefreshFiresProjectAddedWhenANewProjectIsFound() { var watcher = new TestWatcher(); var monitor = InitialiseServer(watcher); mocks.ReplayAll(); var hasFired = false; monitor.ProjectAdded += (o, e) => { hasFired = true; }; monitor.Refresh(); watcher.Snapshot.ProjectStatuses = new ProjectStatus[] { new ProjectStatus { Name = "Project1" }, new ProjectStatus { Name = "Project2" }, new ProjectStatus { Name = "Project3" } }; monitor.Refresh(); Assert.IsTrue(hasFired); }
public void RefreshCallsRefreshOnWatcher() { var watcher = new TestWatcher(); var monitor = InitialiseServer(watcher); mocks.ReplayAll(); monitor.Refresh(); Assert.IsTrue(watcher.Refreshed); }
public void RefreshCallsRefreshOnWatcher() { var watcher = new TestWatcher(); var monitor = InitialiseServer(watcher); monitor.Refresh(); Assert.IsTrue(watcher.Refreshed); }
public void Exists_should_add_watch_triggered_by_DataChanged() { var path = "/watch/a"; var watcher = new TestWatcher(); client.Exists(new ExistsRequest(path) { Watcher = watcher }).EnsureSuccess(); client.SetData(new SetDataRequest(path, new byte[] { 1, 2, 3 })).EnsureSuccess(); watcher.ShouldBeTriggeredBy(NodeChangedEventType.DataChanged, path); }
public void Exists_should_add_watch_not_triggered_by_ChildrenChanged() { var path = "/watch/a/b"; var watcher = new TestWatcher(); client.Exists(new ExistsRequest(path) { Watcher = watcher }).EnsureSuccess(); client.Create(new CreateRequest(path + "/f", CreateMode.Persistent)).EnsureSuccess(); watcher.ShouldNotBeTriggered(); }
public void GetChildren_should_add_watch_not_triggered_by_ChildrenChanged_delete_nested_child() { var path = "/watch/a"; var watcher = new TestWatcher(); client.GetChildren(new GetChildrenRequest(path) { Watcher = watcher }).EnsureSuccess(); client.Delete(new DeleteRequest(path + "/b/c")).EnsureSuccess(); watcher.ShouldNotBeTriggered(); }
public void GetChildren_should_add_watch_not_triggered_by_ChildrenChanged_set_data_child() { var path = "/watch/a/b"; var watcher = new TestWatcher(); client.GetChildren(new GetChildrenRequest(path) { Watcher = watcher }).EnsureSuccess(); client.SetData(new SetDataRequest(path + "/c", new byte[] { 1, 2, 3 })).EnsureSuccess(); watcher.ShouldNotBeTriggered(); }
public void Exists_should_add_watch_triggered_by_Created() { var path = "/watch/new"; var watcher = new TestWatcher(); client.Exists(new ExistsRequest(path) { Watcher = watcher }).EnsureSuccess(); client.Create(new CreateRequest(path, CreateMode.Persistent)).EnsureSuccess(); watcher.ShouldBeTriggeredBy(NodeChangedEventType.Created, path); }
public void Exists_should_add_watch_triggered_by_Deleted() { var path = "/watch/a/e"; var watcher = new TestWatcher(); client.Exists(new ExistsRequest(path) { Watcher = watcher }).EnsureSuccess(); client.Delete(new DeleteRequest(path)).EnsureSuccess(); watcher.ShouldBeTriggeredBy(NodeChangedEventType.Deleted, path); }
public void GetChildren_should_add_watch_triggered_by_ChildrenChanged_delete_child() { var path = "/watch/a/b"; var watcher = new TestWatcher(); client.GetChildren(new GetChildrenRequest(path) { Watcher = watcher }).EnsureSuccess(); client.Delete(new DeleteRequest(path + "/c")).EnsureSuccess(); watcher.ShouldBeTriggeredBy(NodeChangedEventType.ChildrenChanged, path); }
public void GetChildren_should_not_add_watch_triggered_by_Created() { var path = "/watch/new"; var watcher = new TestWatcher(); client.GetChildren(new GetChildrenRequest(path) { Watcher = watcher }).Status.Should().Be(ZooKeeperStatus.NodeNotFound); client.Create(new CreateRequest(path, CreateMode.Persistent)).EnsureSuccess(); watcher.ShouldNotBeTriggered(); }
public void Should_not_be_triggered_by_dispose() { var path = "/watch/a"; var watcher = new TestWatcher(); var localClient = GetClient(); localClient.GetData(new GetDataRequest(path) { Watcher = watcher }).EnsureSuccess(); localClient.Dispose(); watcher.ShouldNotBeTriggered(); }
public void Exists_should_not_trigger_by_duplicated_events() { var path = "/watch/a/e"; var watcher = new TestWatcher(); for (var times = 0; times < 5; times++) { client.Exists(new ExistsRequest(path) { Watcher = watcher }).EnsureSuccess(); } client.Delete(new DeleteRequest(path)).EnsureSuccess(); watcher.ShouldBeTriggeredBy(NodeChangedEventType.Deleted, path); }
public void Exists_should_be_trigger_by_duplicated_events_without_cache() { var path = "/watch/a/e"; var watcher = new TestWatcher(); for (var times = 0; times < 5; times++) { client.Exists(new ExistsRequest(path) { Watcher = watcher, IgnoreWatchersCache = true }).EnsureSuccess(); } client.Delete(new DeleteRequest(path)).EnsureSuccess(); watcher.ShouldBeTriggeredBy(Enumerable.Repeat((NodeChangedEventType.Deleted, path), 5).ToArray()); }
public void GetChildren_should_not_trigger_by_duplicated_events() { var path = "/watch/a/b"; var watcher = new TestWatcher(); for (var times = 0; times < 5; times++) { client.GetChildren(new GetChildrenRequest(path) { Watcher = watcher }).EnsureSuccess(); } client.Delete(new DeleteRequest(path + "/c")).EnsureSuccess(); watcher.ShouldBeTriggeredBy(NodeChangedEventType.ChildrenChanged, path); }
public void GetData_should_trigger_by_duplicated_events_without_reattach() { var path = "/watch/a/b"; var watcher = new TestWatcher(); client.GetData(new GetDataRequest(path) { Watcher = watcher }).EnsureSuccess(); client.SetData(new SetDataRequest(path, new byte[] { 1, 2, 3 })).EnsureSuccess(); watcher.ShouldBeTriggeredBy(NodeChangedEventType.DataChanged, path); client.SetData(new SetDataRequest(path, new byte[] { 1, 2, 4 })).EnsureSuccess(); watcher.ShouldBeTriggeredBy(NodeChangedEventType.DataChanged, path); }
public void Exists_should_trigger_by_duplicated_events_without_reattach() { var path = "/watch/new"; var watcher = new TestWatcher(); client.Exists(new ExistsRequest(path) { Watcher = watcher }).EnsureSuccess(); client.Create(new CreateRequest(path, CreateMode.Persistent)).EnsureSuccess(); watcher.ShouldBeTriggeredBy(NodeChangedEventType.Created, path); client.Delete(new DeleteRequest(path)).EnsureSuccess(); watcher.ShouldBeTriggeredBy(NodeChangedEventType.Created, path); }
public void GetChildren_should_trigger_by_duplicated_events_without_reattach() { var path = "/watch/a/b"; var watcher = new TestWatcher(); client.GetChildren(new GetChildrenRequest(path) { Watcher = watcher }).EnsureSuccess(); client.Create(new CreateRequest(path + "/f", CreateMode.Persistent)).EnsureSuccess(); watcher.ShouldBeTriggeredBy(NodeChangedEventType.ChildrenChanged, path); client.Create(new CreateRequest(path + "/g", CreateMode.Persistent)).EnsureSuccess(); watcher.ShouldBeTriggeredBy(NodeChangedEventType.ChildrenChanged, path); }
public void RefreshUpdatesProjectDetails() { var watcher = new TestWatcher(); var monitor = InitialiseServer(watcher); monitor.Refresh(); watcher.Snapshot.ProjectStatuses = new ProjectStatus[] { new ProjectStatus { Name = "Project1", BuildStatus = IntegrationStatus.Success }, new ProjectStatus { Name = "Project2", BuildStatus = IntegrationStatus.Failure } }; monitor.Refresh(); Assert.AreEqual(IntegrationStatus.Success, monitor.FindProject("Project1").BuildStatus); Assert.AreEqual(IntegrationStatus.Failure, monitor.FindProject("Project2").BuildStatus); }
public void RefreshFiresProjectRemovedWhenAProjectIsMissing() { var watcher = new TestWatcher(); var monitor = InitialiseServer(watcher); var hasFired = false; monitor.ProjectRemoved += (o, e) => { hasFired = true; Assert.AreEqual(e.Project.Name, "Project2"); }; monitor.Refresh(); watcher.Snapshot.ProjectStatuses = new ProjectStatus[] { new ProjectStatus { Name = "Project1" } }; monitor.Refresh(); Assert.IsTrue(hasFired); }
public void Should_not_be_triggered_on_client_disconnect(CreateMode createMode) { var path = "/watch/new"; var watcher = new TestWatcher(); var localClient = GetClient(); localClient.Create(new CreateRequest(path, createMode)).EnsureSuccess(); localClient.Exists(new ExistsRequest(path) { Watcher = watcher }); Ensemble.Stop(); WaitForDisconnectedState(localClient); Ensemble.Start(); localClient.Delete(new DeleteRequest(path)).EnsureSuccess(); watcher.ShouldBeTriggeredBy( (NodeChangedEventType.Deleted, path)); }
public void Should_not_be_triggered_on_client_session_expire(CreateMode createMode) { var path = "/watch/new"; var watcher = new TestWatcher(); var localClient = GetClient(); localClient.Create(new CreateRequest(path, createMode)).EnsureSuccess(); localClient.Exists(new ExistsRequest(path) { Watcher = watcher }); KillSession(localClient, Ensemble.ConnectionString).GetAwaiter().GetResult(); var result = localClient.Delete(new DeleteRequest(path)); result.Status.Should().Be(createMode.IsEphemeral() ? ZooKeeperStatus.NodeNotFound : ZooKeeperStatus.Ok); watcher.ShouldNotBeTriggered(); }
public void RefreshFiresProjectRemovedWhenAProjectIsMissing() { var watcher = new TestWatcher(); var monitor = InitialiseServer(watcher); mocks.ReplayAll(); var hasFired = false; monitor.ProjectRemoved += (o, e) => { hasFired = true; Assert.AreEqual(e.Project.Name, "Project2"); }; monitor.Refresh(); watcher.Snapshot.ProjectStatuses = new ProjectStatus[]{ new ProjectStatus { Name = "Project1" } }; monitor.Refresh(); Assert.IsTrue(hasFired); }
public void RefreshUpdatesProjectDetails() { var watcher = new TestWatcher(); var monitor = InitialiseServer(watcher); mocks.ReplayAll(); monitor.Refresh(); watcher.Snapshot.ProjectStatuses = new ProjectStatus[]{ new ProjectStatus { Name = "Project1", BuildStatus = IntegrationStatus.Success }, new ProjectStatus { Name = "Project2", BuildStatus = IntegrationStatus.Failure } }; monitor.Refresh(); Assert.AreEqual(IntegrationStatus.Success, monitor.FindProject("Project1").BuildStatus); Assert.AreEqual(IntegrationStatus.Failure, monitor.FindProject("Project2").BuildStatus); }