private void BuildEventLog(ConfigurationOptions config)
 {
     eventsCache   = new InMemorySimpleCache <WrappedEvent>(new BlockingQueue <WrappedEvent>(EventLogSize));
     eventLog      = new SelfUpdatingEventLog(eventSdkApiClient, EventsFirstPushWindow, EventLogRefreshRate, eventsCache);
     eventListener = new AsynchronousListener <WrappedEvent>(LogManager.GetLogger("AsynchronousEventListener"));
     ((IAsynchronousListener <WrappedEvent>)eventListener).AddListener(eventLog);
 }
示例#2
0
        private void BuildEventLog(ConfigurationOptions config)
        {
            var eventLog = new RedisEventLog(eventsCache);

            eventListener = new AsynchronousListener <WrappedEvent>(LogManager.GetLogger("AsynchronousEventListener"));
            ((AsynchronousListener <WrappedEvent>)eventListener).AddListener(eventLog);
        }
 private void BuildTreatmentLog(ConfigurationOptions config)
 {
     impressionsCache   = new InMemorySimpleCache <KeyImpression>(new BlockingQueue <KeyImpression>(TreatmentLogSize));
     treatmentLog       = new SelfUpdatingTreatmentLog(treatmentSdkApiClient, TreatmentLogRefreshRate, impressionsCache);
     impressionListener = new AsynchronousListener <KeyImpression>(LogManager.GetLogger("AsynchronousImpressionListener"));
     ((AsynchronousListener <KeyImpression>)impressionListener).AddListener(treatmentLog);
     if (config.ImpressionListener != null)
     {
         ((AsynchronousListener <KeyImpression>)impressionListener).AddListener(config.ImpressionListener);
     }
 }
示例#4
0
        private void BuildTreatmentLog(ConfigurationOptions config)
        {
            var treatmentLog = new RedisTreatmentLog(impressionsCacheRedis);

            impressionListenerRedis = new AsynchronousListener <IList <KeyImpression> >(LogManager.GetLogger("AsynchronousImpressionListener"));
            ((AsynchronousListener <IList <KeyImpression> >)impressionListenerRedis).AddListener(treatmentLog);

            if (config.ImpressionListener != null)
            {
                impressionListener = new AsynchronousListener <KeyImpression>(LogManager.GetLogger("AsynchronousImpressionListener"));
                ((AsynchronousListener <KeyImpression>)impressionListener).AddListener(config.ImpressionListener);
            }
        }
示例#5
0
        public void AddTwoListenersAndPerformLogSuccessfully()
        {
            //Arrange
            var logger        = new Mock <ILog>();
            var asyncListener = new AsynchronousListener <KeyImpression>(logger.Object);
            var listener1     = new TestListener();
            var listenerMock2 = new Mock <IListener <KeyImpression> >();

            asyncListener.AddListener(listener1);
            asyncListener.AddListener(listenerMock2.Object);


            //Act
            asyncListener.Log(new KeyImpression()
            {
                feature = "test", changeNumber = 100, keyName = "date", label = "testdate", time = 10000000, treatment = "on", bucketingKey = "any"
            });
            Thread.Sleep(1000);

            //Assert
            Assert.AreEqual(listener1.list.Count, 1);
            listenerMock2.Verify(x => x.Log(It.Is <KeyImpression>(p => p.keyName == "date" && p.feature == "test" && p.treatment == "on" && p.time == 10000000 && p.changeNumber == 100 && p.label == "testdate" && p.bucketingKey == "any")), Times.Once());
        }
示例#6
0
        public void AddTwoListenersAndPerformLogSuccessfullyWithOneLongRunningTask()
        {
            //Arrange
            var logger        = new Mock <ILog>();
            var asyncListener = new AsynchronousListener <KeyImpression>(logger.Object);
            var listener1     = new TestListener2();
            var listener2     = new TestListener();

            asyncListener.AddListener(listener1);
            asyncListener.AddListener(listener2);


            //Act
            asyncListener.Log(new KeyImpression()
            {
                feature = "test", changeNumber = 100, keyName = "date", label = "testdate", time = 10000000, treatment = "on", bucketingKey = "any"
            });
            Thread.Sleep(1000);

            //Assert
            Assert.AreEqual(listener2.list.Count, 1);
            Thread.Sleep(10000);
            Assert.AreEqual(listener1.list.Count, 1);
        }
 public void Initialize()
 {
     _logger        = new Mock <ILog>();
     _asyncListener = new AsynchronousListener <Event>(_logger.Object);
     _listenerMock  = new Mock <IListener <Event> >();
 }
示例#8
0
 public void Initialize()
 {
     _logger        = new Mock <ILog>();
     _asyncListener = new AsynchronousListener <KeyImpression>(_logger.Object);
     _listenerMock  = new Mock <IListener <KeyImpression> >();
 }