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);
        }
Exemplo n.º 6
0
 /// <summary>
 /// Attach an observer for Configuration updates
 /// </summary>
 /// <param name="observer"></param>
 public void AttachObserver(ConfigurationObserver observer)
 {
     this.ConfigurationChangedEvent += observer.ConfigurationUpdate;
 }
Exemplo n.º 7
0
 /// <summary>
 /// Attach a ConfigurationObserver
 /// </summary>
 /// <param name="observer"></param>
 public void AttachObserver(ConfigurationObserver observer)
 {
     NewConfigUpdateAvail += observer.ConfigurationUpdate;
 }
Exemplo n.º 8
0
 /// <summary>
 /// Attach a ConfigurationObserver to this objectS
 /// </summary>
 /// <param name="o"></param>
 public void AttachObserver(ConfigurationObserver o)
 {
     ConfigChangeEvent += o.ConfigurationUpdate;
 }