public void EventNotification_OnFailureOfTaskCompletion_NoeventHasRaised() { var id = Guid.NewGuid().ToString(); var eventData = new ApplicationEvent { Id = id, Name = "test event", TimeStamp = DateTime.Now }; var configStoreMock = new Mock <IConfigurationStore>(); var sensitiveDataProviderMock = new Mock <ISensitiveDataProvider>(); var mock = new Mock <IApplicationEventBus>(); mock.Setup(x => x.Notify(It.Is <ApplicationEvent>(e => e.Name.Equals("in-memory-consul-cache-refresh", StringComparison.OrdinalIgnoreCase) && e.Id.Equals(id)))); configStoreMock.Setup(cs => cs.GetAllAsync()).ThrowsAsync(new Exception()); var eventHandler = new ConfigurationUpdateEventHandler(configStoreMock.Object, mock.Object, sensitiveDataProviderMock.Object); var configUpdateObserver = new ConfigurationObserver(eventHandler); configUpdateObserver.Process(eventData); Thread.Sleep(5000); mock.Verify(x => x.Notify(It.Is <ApplicationEvent>(e => e.Name.Equals("in-memory-consul-cache-refresh", StringComparison.OrdinalIgnoreCase) && e.Id.Equals(id))), Times.Never); }
public void VerifyEventNotification_OnSuccessfulCompletionOfCahceRefresh() { var eventData = new ApplicationEvent { Id = Guid.NewGuid().ToString(), Name = "test event", TimeStamp = DateTime.Now }; var configStoreMock = new Mock <IConfigurationStore>(); var sensitiveDataProviderMock = new Mock <ISensitiveDataProvider>(); var mock = new Mock <IApplicationEventBus>(); mock.Setup(x => x.Notify(It.Is <ApplicationEvent>(e => e.Name.Equals("in-memory-consul-cache-refresh", StringComparison.OrdinalIgnoreCase)))); var dataSet = new Dictionary <string, string>(); dataSet.Add("key", "value"); configStoreMock.Setup(cs => cs.GetAllAsync()).ReturnsAsync(dataSet); var eventHandler = new ConfigurationUpdateEventHandler(configStoreMock.Object, mock.Object, sensitiveDataProviderMock.Object); var configUpdateObserver = new ConfigurationObserver(eventHandler); configUpdateObserver.Process(eventData); Thread.Sleep(5000); configUpdateObserver.Process(eventData); Thread.Sleep(5000); mock.Verify(x => x.Notify(It.Is <ApplicationEvent>(e => e.Name.Equals("in-memory-consul-cache-refresh", StringComparison.OrdinalIgnoreCase))), Times.Exactly(2)); }
public async Task ConfigUpdateEvent_VerifyEventInvokation_OnSuccessfulCompletion() { var bus = new RXEventChannel(); var configStoreMock = new Mock <IConfigurationStore>(); var sensitiveDataProviderMock = new Mock <ISensitiveDataProvider>(); var mock = new Mock <IApplicationEventBus>(); mock.Setup(x => x.Notify(It.Is <ApplicationEvent>(e => e.Name.Equals("in-memory-consul-cache-refresh", StringComparison.OrdinalIgnoreCase)))); var dataSet = new Dictionary <string, string>(); dataSet.Add("key", "value"); configStoreMock.Setup(cs => cs.GetAllAsync()).ReturnsAsync(dataSet); var eventHandler = new ConfigurationUpdateEventHandler(configStoreMock.Object, mock.Object, sensitiveDataProviderMock.Object); var confifUpdateObserver = new ConfigurationObserver(eventHandler); var applicationEvent = new ApplicationEvent() { Context = "config-update", Name = "config-update", Id = Guid.NewGuid().ToString(), Publisher = "Tushar", TimeStamp = DateTime.UtcNow }; var eventObserver = bus.GetChannel("config-update"); eventObserver.Subscribe(confifUpdateObserver); var provider = new SignalREventChannel(bus, new Tavisca.Common.Plugins.Configuration.JsonSerializer()); Thread.Sleep(2000); provider.Notify(applicationEvent); Thread.Sleep(6000); Assert.IsTrue(LocalConfigurationRepository.IsKeyPresent("key")); //verify if the event has been raised on completion of config update mock.Verify(x => x.Notify(It.Is <ApplicationEvent>(e => e.Name.Equals("in-memory-consul-cache-refresh", StringComparison.OrdinalIgnoreCase)))); }
public async Task ConfigUpdateEvent_ObserverCall_ValidCase() { var bus = new RXEventChannel(); var configStoreMock = new Mock <IConfigurationStore>(); var sensitiveDataProviderMock = new Mock <ISensitiveDataProvider>(); var mock = new Mock <IApplicationEventBus>(); mock.Setup(x => x.Notify(It.IsAny <ApplicationEvent>())); var dataSet = new Dictionary <string, string>(); dataSet.Add("key", "value"); configStoreMock.Setup(cs => cs.GetAllAsync()).ReturnsAsync(dataSet); var eventHandler = new ConfigurationUpdateEventHandler(configStoreMock.Object, mock.Object, sensitiveDataProviderMock.Object); var confifUpdateObserver = new ConfigurationObserver(eventHandler); var applicationEvent = new ApplicationEvent() { Context = "config-update", Name = "config-update", Id = Guid.NewGuid().ToString(), Publisher = "Tushar", TimeStamp = DateTime.UtcNow }; var eventObserver = bus.GetChannel("config-update"); eventObserver.Subscribe(confifUpdateObserver); var provider = new SignalREventChannel(bus, new Tavisca.Common.Plugins.Configuration.JsonSerializer()); Thread.Sleep(2000); provider.Notify(applicationEvent); Thread.Sleep(5000); Assert.IsTrue(LocalConfigurationRepository.IsKeyPresent("key")); }
public void EventExecutionVerification_OnSuccessfulCompletionOfCahceRefresh() { var localBus = new InstanceEventBus(); localBus.Register("in-memory-consul-cache-refresh", new MockCacheRefreshObserver()); var eventData = new ApplicationEvent { Id = Guid.NewGuid().ToString(), Name = "test event", TimeStamp = DateTime.Now }; var configStoreMock = new Mock <IConfigurationStore>(); var sensitiveDataProviderMock = new Mock <ISensitiveDataProvider>(); var dataSet = new Dictionary <string, string>(); dataSet.Add("key", "value"); configStoreMock.Setup(cs => cs.GetAllAsync()).ReturnsAsync(dataSet); var eventHandler = new ConfigurationUpdateEventHandler(configStoreMock.Object, localBus, sensitiveDataProviderMock.Object); var configUpdateObserver = new ConfigurationObserver(eventHandler); configUpdateObserver.Process(eventData); Thread.Sleep(5000); Assert.Equal(1, MockCacheRefreshObserver.Count); configUpdateObserver.Process(eventData); Thread.Sleep(5000); Assert.Equal(2, MockCacheRefreshObserver.Count); }
/// <summary> /// Attach an observer for Configuration updates /// </summary> /// <param name="observer"></param> public void AttachObserver(ConfigurationObserver observer) { this.ConfigurationChangedEvent += observer.ConfigurationUpdate; }
/// <summary> /// Attach a ConfigurationObserver /// </summary> /// <param name="observer"></param> public void AttachObserver(ConfigurationObserver observer) { NewConfigUpdateAvail += observer.ConfigurationUpdate; }
/// <summary> /// Attach a ConfigurationObserver to this objectS /// </summary> /// <param name="o"></param> public void AttachObserver(ConfigurationObserver o) { ConfigChangeEvent += o.ConfigurationUpdate; }