コード例 #1
0
        public void ExecuteGetTreatmentsWithDependencyMatcherWithAttributesReturnsOn()
        {
            //Arrange
            var client = new JSONFileClient("splits_staging_6.json", "", _logMock.Object);

            client.BlockUntilReady(1000);

            //Act
            var features = new List <string>();

            features.Add("test_whitelist");
            features.Add("test_dependency");
            var attributes = new Dictionary <string, object>();

            attributes.Add("st", "allow");
            var result = client.GetTreatments("fake_user_id_1", features, attributes);

            //Assert
            Assert.IsNotNull(result);
            Assert.AreEqual("on", result["test_whitelist"]);
            Assert.AreEqual("on", result["test_dependency"]);
        }
コード例 #2
0
        public void ExecuteGetTreatmentWithSetMatcherReturnsOn()
        {
            //Arrange
            var client = new JSONFileClient($"{rootFilePath}splits_staging_5.json", "", _logMock.Object);

            var attributes = new Dictionary <string, object>
            {
                { "permissions", new List <string>()
                  {
                      "execute"
                  } }
            };

            client.BlockUntilReady(1000);

            //Act
            var result = client.GetTreatment("test1", "UT_NOT_SET_MATCHER", attributes);

            //Assert
            Assert.IsNotNull(result);
            Assert.AreEqual("on", result); // !Contains any of "create","delete","update"
        }
コード例 #3
0
        public void ExecuteGetTreatmentAndLogLabelAndBucketingKeyForTreatment()
        {
            //Arrange
            var impressionsLogMock = new Mock <IImpressionsLog>();
            var client             = new JSONFileClient($"{rootFilePath}splits_staging_3.json", "", _logMock.Object, impressionsLog: impressionsLogMock.Object);

            client.BlockUntilReady(1000);

            //Act
            var key    = new Key("db765170-e9f2-11e5-885c-c2f58c3a47a7", "ab765170-e9f2-11e5-885c-c2f58c3a47a7");
            var result = client.GetTreatment(key, "Segments_Restructuring_UI", null);

            //Assert
            Thread.Sleep(1000);
            impressionsLogMock.Verify(x => x.Log(It.Is <IList <KeyImpression> >(p => p.FirstOrDefault().keyName == "db765170-e9f2-11e5-885c-c2f58c3a47a7" &&
                                                                                p.FirstOrDefault().feature == "Segments_Restructuring_UI" &&
                                                                                p.FirstOrDefault().treatment == "on" &&
                                                                                p.FirstOrDefault().time > 0 &&
                                                                                p.FirstOrDefault().changeNumber == 1484084207827 &&
                                                                                p.FirstOrDefault().label == "explicitly included" &&
                                                                                p.FirstOrDefault().bucketingKey == "ab765170-e9f2-11e5-885c-c2f58c3a47a7")));
        }
コード例 #4
0
        public void ExecuteGetTreatments()
        {
            //Arrange
            var           client   = new JSONFileClient(@"Resources\splits_staging_3.json", "");
            List <string> features = new List <string>();

            features.Add("fail");
            features.Add("asd");
            features.Add("get_environment");

            var attributes = new Dictionary <string, object>();

            attributes.Add("env", "test");

            //Act
            var result = client.GetTreatments("test", features, attributes);

            //Assert
            Assert.IsNotNull(result);
            Assert.AreEqual("control", result["fail"]);
            Assert.AreEqual("off", result["asd"]);
            Assert.AreEqual("test", result["get_environment"]);
        }
コード例 #5
0
        public void ExecuteGetTreatmentOnRemovedUserFromSegmentShouldReturnOff()
        {
            //Arrange
            var client = new JSONFileClient("splits_staging_3.json", "segment_payed.json", _logMock.Object);

            client.BlockUntilReady(1000);

            //Act
            var result = client.GetTreatment("abcdz", "test_jw2", null);

            client.RemoveKeyFromSegmentCache("payed", new List <string>()
            {
                "abcdz"
            });
            var result2 = client.GetTreatment("abcdz", "test_jw2", null);


            //Assert
            Assert.IsNotNull(result);
            Assert.AreEqual("on", result);
            Assert.IsNotNull(result2);
            Assert.AreEqual("off", result2);
        }
コード例 #6
0
        public void GetTreatmentsWithConfig_WithoutBlockUntiltReady_ReturnsTreatments()
        {
            // Arrange.
            var client = new JSONFileClient($"{rootFilePath}splits_staging_3.json", "", _logMock.Object);

            // Act.
            var result = client.GetTreatmentsWithConfig("key", new List <string> {
                "anding", "whitelisting_elements"
            });

            // Assert.
            var treatment1 = result.FirstOrDefault(r => r.Key.Equals("anding"));

            Assert.AreEqual("off", treatment1.Value.Treatment);
            Assert.IsNull(treatment1.Value.Config);

            var treatment2 = result.FirstOrDefault(r => r.Key.Equals("whitelisting_elements"));

            Assert.AreEqual("off", treatment2.Value.Treatment);
            Assert.IsNull(treatment2.Value.Config);

            _logMock.Verify(mock => mock.Error($"GetTreatment: the SDK is not ready, the operation cannot be executed."), Times.Never);
        }