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"]); }
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" }
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"))); }
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"]); }
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); }
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); }