예제 #1
0
        public void ExecuteGetTreatmentOnRemovedUserFromSegmentShouldReturnOff()
        {
            //Arrange
            var client = new RedisClient(config);
            var cache  = new RedisSegmentCache(new RedisAdapter("localhost", "6379", ""));

            //Act
            var result = client.GetTreatment("c1321b21-0f70-449f-8979-b8faed67d210", "test_jw2", null);

            cache.RemoveFromSegment("payed", new List <string>()
            {
                "c1321b21-0f70-449f-8979-b8faed67d210"
            });
            var result2 = client.GetTreatment("c1321b21-0f70-449f-8979-b8faed67d210", "test_jw2", null);

            //Assert
            Assert.IsNotNull(result);
            Assert.AreEqual("on", result);
            Assert.IsNotNull(result2);
            Assert.AreEqual("off", result2);

            //Reset Status
            cache.AddToSegment("payed", new List <string>()
            {
                "c1321b21-0f70-449f-8979-b8faed67d210"
            });
            cache = null;
        }
예제 #2
0
        public void GetSegmentKeysTest()
        {
            // Arrange.
            var redisAdapterMock = new Mock <IRedisAdapter>();
            var segmentCache     = new RedisSegmentCache(redisAdapterMock.Object);

            var keys = new List <string> {
                "abcd", "1234"
            };
            var segmentName = "test";

            segmentCache.AddToSegment(segmentName, keys);

            redisAdapterMock
            .Setup(mock => mock.SMembers($"SPLITIO.segment.{segmentName}"))
            .Returns(new List <RedisValue>
            {
                "abcd",
                "1234"
            }.ToArray());

            // Act & Assert.
            var result = segmentCache.GetSegmentKeys(segmentName);

            Assert.AreEqual(2, result.Count);
            Assert.IsTrue(result.Contains("abcd"));
            Assert.IsTrue(result.Contains("1234"));

            result = segmentCache.GetSegmentKeys("segmentName");
            Assert.AreEqual(0, result.Count);
        }
예제 #3
0
        public void AddToSegmentTest()
        {
            //Arrange
            var segmentName      = "test";
            var redisAdapterMock = new Mock <IRedisAdapter>();

            redisAdapterMock.Setup(x => x.SAdd(It.IsAny <string>(), It.IsAny <RedisValue[]>())).Returns(1);
            var segmentCache = new RedisSegmentCache(redisAdapterMock.Object);

            //Act
            segmentCache.AddToSegment(segmentName, new List <string>()
            {
                "test"
            });

            //Assert
            redisAdapterMock.Verify(mock => mock.SAdd(segmentKeyPrefix + segmentName, It.IsAny <RedisValue[]>()));
        }