コード例 #1
0
 private void BuildRedisCache()
 {
     redisAdapter     = new RedisAdapter(RedisHost, RedisPort, RedisPassword, RedisDatabase, RedisConnectTimeout, RedisConnectRetry, RedisSyncTimeout);
     splitCache       = new RedisSplitCache(redisAdapter, RedisUserPrefix);
     segmentCache     = new RedisSegmentCache(redisAdapter, RedisUserPrefix);
     metricsCache     = new RedisMetricsCache(redisAdapter, SdkMachineIP, SdkVersion, RedisUserPrefix);
     impressionsCache = new RedisImpressionsCache(redisAdapter, SdkMachineIP, SdkVersion, RedisUserPrefix);
 }
コード例 #2
0
        private void BuildTreatmentLog(ConfigurationOptions config)
        {
            var impressionsCache = new RedisImpressionsCache(_redisAdapter, _config.SdkMachineIP, _config.SdkVersion, _config.SdkMachineName, _config.RedisUserPrefix);

            _impressionsLog = new RedisImpressionLog(impressionsCache);

            _customerImpressionListener = config.ImpressionListener;
        }
コード例 #3
0
        public void AddImpressionSuccessfully()
        {
            //Arrange
            var key = impressionKeyPrefix + "test";
            var redisAdapterMock = new Mock <IRedisAdapter>();
            var cache            = new RedisImpressionsCache(redisAdapterMock.Object, "10.0.0.1", "net-1.0.2");

            //Act
            cache.AddImpression(new KeyImpression()
            {
                feature = "test", changeNumber = 100, keyName = "date", label = "testdate", time = 10000000
            });

            //Assert
            redisAdapterMock.Verify(mock => mock.SAdd(key, It.IsAny <RedisValue>()));
        }
コード例 #4
0
        public void AddImpressionSuccessfully()
        {
            //Arrange
            var key = "SPLITIO.impressions";
            var redisAdapterMock = new Mock <IRedisAdapter>();
            var cache            = new RedisImpressionsCache(redisAdapterMock.Object, "10.0.0.1", "net-1.0.2", "machine_name_test");
            var impressions      = new List <KeyImpression>
            {
                new KeyImpression {
                    feature = "test", changeNumber = 100, keyName = "date", label = "testdate", time = 10000000
                }
            };

            //Act
            cache.AddItems(impressions);

            //Assert
            redisAdapterMock.Verify(mock => mock.ListRightPush(key, It.IsAny <RedisValue[]>()));
        }
コード例 #5
0
        public void FetchAllAndClearSuccessfully()
        {
            //Arrange
            var redisAdapterMock = new Mock <IRedisAdapter>();
            var redisValue       = (RedisValue)"{\"keyName\":\"date\",\"treatment\":null,\"time\":10000000,\"changeNumber\":100,\"label\":\"testdate\",\"bucketingKey\":null}";

            redisAdapterMock.Setup(x => x.Keys(impressionKeyPrefix + "*")).Returns(new RedisKey[] { impressionKeyPrefix + "test" });
            redisAdapterMock.Setup(x => x.SMembers(impressionKeyPrefix + "test")).Returns(new RedisValue[] { redisValue });
            redisAdapterMock.Setup(x => x.Del(impressionKeyPrefix + "test")).Returns(true);
            var cache = new RedisImpressionsCache(redisAdapterMock.Object, "10.0.0.1", "net-1.0.2");

            //Act
            var result = cache.FetchAllAndClear();

            //Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(1, result.Count);
            redisAdapterMock.Verify(mock => mock.Keys(impressionKeyPrefix + "*"));
            redisAdapterMock.Verify(mock => mock.SMembers(impressionKeyPrefix + "test"));
            redisAdapterMock.Verify(mock => mock.Del(impressionKeyPrefix + "test"));
        }