public void Manager_Split_ReturnsSplit() { // Arrange. using (var httpClientMock = GetHttpClientMock()) { var configurations = GetConfigurationOptions(httpClientMock?.GetUrl()); var splitName = "MAURO_TEST"; var apikey = "base-apikey15"; var splitFactory = new SplitFactory(apikey, configurations); var manager = splitFactory.Manager(); manager.BlockUntilReady(10000); // Act. var result = manager.Split(splitName); // Assert. Assert.IsNotNull(result); Assert.AreEqual(splitName, result.name); splitFactory.Client().Destroy(); } }
public void Split_WithLocalhostClient_WhenNameIsTestingSplitOnlyWl_ReturnsSplit() { // Arrange. var splitViewExpected = new SplitView { name = "testing_split_only_wl", treatments = new List <string> { "whitelisted" }, }; var configurationOptions = new ConfigurationOptions { LocalhostFilePath = $"{rootFilePath}split.yaml" }; _blockUntilReadyService .Setup(mock => mock.IsSdkReady()) .Returns(true); var factory = new SplitFactory("localhost", configurationOptions); var manager = factory.Manager(); manager.BlockUntilReady(1000); // Act. var splitViewResult = manager.Split("testing_split_only_wl"); // Assert. Assert.AreEqual(splitViewExpected.name, splitViewResult.name); Assert.IsFalse(splitViewResult.killed); Assert.IsNull(splitViewResult.configs); Assert.IsNull(splitViewResult.trafficType); Assert.AreEqual(splitViewExpected.treatments.Count, splitViewResult.treatments.Count); }
public static void Main(string[] args) { var localhostFilePath = args[0]; Console.WriteLine($"localhostFilePath: {localhostFilePath}"); var client = new LocalhostClient(localhostFilePath, new NoOpLogger()); var factory = new SplitFactory("localhost", new ConfigurationOptions { LocalhostFilePath = localhostFilePath, Ready = 10000 }); Console.WriteLine(); foreach (var splitName in factory.Manager().SplitNames()) { Console.WriteLine($"Split: {splitName}"); } // var client = factory.Client(); var treatment = client.GetTreatment("id", "testing_split_on"); Console.WriteLine(); Console.WriteLine($"Treatment: {treatment}"); }
public void Split_WithLocalhostClient_WhenNameIsTestingSplitWithWl_ReturnsSplit() { // Arrange. var splitViewExpected = new SplitView { name = "testing_split_with_wl", treatments = new List <string> { "not_in_whitelist" }, configs = new Dictionary <string, string> { { "not_in_whitelist", "{\"color\": \"green\"}" }, { "multi_key_wl", "{\"color\": \"brown\"}" } } }; var configurationOptions = new ConfigurationOptions { LocalhostFilePath = "split.yaml", Ready = 500 }; _blockUntilReadyService .Setup(mock => mock.IsSdkReady()) .Returns(true); var factory = new SplitFactory("localhost", configurationOptions); var manager = factory.Manager(); manager.BlockUntilReady(1000); // Act. var splitViewResult = manager.Split("testing_split_with_wl"); // Assert. Assert.AreEqual(splitViewExpected.name, splitViewResult.name); Assert.IsFalse(splitViewResult.killed); Assert.IsNull(splitViewResult.trafficType); Assert.AreEqual(splitViewExpected.configs.Count, splitViewResult.configs.Count); foreach (var config in splitViewExpected.configs) { Assert.AreEqual(config.Value, splitViewResult.configs[config.Key]); } Assert.AreEqual(splitViewExpected.treatments.Count, splitViewResult.treatments.Count); foreach (var treatment in splitViewExpected.treatments) { Assert.IsNotNull(splitViewResult.treatments.FirstOrDefault(t => t == treatment)); } }
public void Manager_SplitNames_WithoutBUR_ReturnsNull() { // Arrange. var httpClientMock = GetHttpClientMock(); var configurations = GetConfigurationOptions(httpClientMock); var apikey = "apikey2"; var splitFactory = new SplitFactory(apikey, configurations); var manager = splitFactory.Manager(); // Act. var result = manager.SplitNames(); // Assert. Assert.IsNull(result); ShutdownServer(httpClientMock); }
public void Manager_SplitNames_WithoutBUR_ReturnsNull() { // Arrange. using (var httpClientMock = GetHttpClientMock()) { var configurations = GetConfigurationOptions(httpClientMock.GetUrl()); var apikey = "apikey6"; var splitFactory = new SplitFactory(apikey, configurations); var manager = splitFactory.Manager(); // Act. var result = manager.SplitNames(); // Assert. Assert.IsNull(result); splitFactory.Client().Destroy(); } }
public void Split_WithLocalhostClient_WhenNameIsTestingSplitOn_ReturnsSplit() { // Arrange. var splitViewExpected = new SplitView { name = "testing_split_on", treatments = new List <string> { "on" } }; var configurationOptions = new ConfigurationOptions { LocalhostFilePath = "split.yaml", Ready = 500 }; _blockUntilReadyService .Setup(mock => mock.IsSdkReady()) .Returns(true); var factory = new SplitFactory("localhost", configurationOptions); var manager = factory.Manager(); manager.BlockUntilReady(1000); // Act. var splitViewResult = manager.Split("testing_split_on"); // Assert. Assert.AreEqual(splitViewExpected.name, splitViewResult.name); Assert.IsFalse(splitViewResult.killed); Assert.IsNull(splitViewResult.configs); Assert.IsNull(splitViewResult.trafficType); Assert.AreEqual(splitViewExpected.treatments.Count, splitViewResult.treatments.Count); foreach (var treatment in splitViewExpected.treatments) { Assert.IsNotNull(splitViewResult.treatments.FirstOrDefault(t => t == treatment)); } }
public void Manager_Split_WhenNameDoesntExist_ReturnsSplit() { // Arrange. var httpClientMock = GetHttpClientMock(); var configurations = GetConfigurationOptions(httpClientMock); var splitName = "Split_Name"; var apikey = "apikey25"; var splitFactory = new SplitFactory(apikey, configurations); var manager = splitFactory.Manager(); manager.BlockUntilReady(10000); // Act. var result = manager.Split(splitName); // Assert. Assert.IsNull(result); ShutdownServer(httpClientMock); }
public void Manager_Splits_ReturnsSplitList() { // Arrange. var httpClientMock = GetHttpClientMock(); var configurations = GetConfigurationOptions(httpClientMock); var apikey = "apikey23"; var splitFactory = new SplitFactory(apikey, configurations); var manager = splitFactory.Manager(); manager.BlockUntilReady(10000); // Act. var result = manager.Splits(); // Assert. Assert.AreEqual(30, result.Count); Assert.IsInstanceOfType(result, typeof(List <SplitView>)); ShutdownServer(httpClientMock); }
public void Manager_Split_ReturnsSplit() { // Arrange. var httpClientMock = GetHttpClientMock(); var configurations = GetConfigurationOptions(httpClientMock); var splitName = "MAURO_TEST"; var apikey = "apikey24"; var splitFactory = new SplitFactory(apikey, configurations); var manager = splitFactory.Manager(); manager.BlockUntilReady(10000); // Act. var result = manager.Split(splitName); // Assert. Assert.IsNotNull(result); Assert.AreEqual(splitName, result.name); ShutdownServer(httpClientMock); }
public void BuildSplitClient_WithLocalhostApiKeyAndIsYmlFile_ReturnsLocalhostClient() { // Arrange. var splitNamesExpected = new List <string> { "testing_split_on", "testing_split_only_wl", "testing_split_with_wl", "testing_split_off_with_config", }; var configurationOptions = new ConfigurationOptions { LocalhostFilePath = "split.yml", Ready = 500 }; var factory = new SplitFactory("localhost", configurationOptions); var manager = factory.Manager(); manager.BlockUntilReady(1000); // Act. var splitsResult = manager.Splits(); // Assert. Assert.AreEqual(splitNamesExpected.Count, splitsResult.Count); foreach (var splitName in splitNamesExpected) { var split = splitsResult.FirstOrDefault(sr => sr.name.Equals(splitName)); Assert.IsNotNull(split); var splitResult = manager.Split(splitName); Assert.IsNotNull(splitResult); Assert.IsFalse(splitResult.killed); } }
public void Manager_Split_WhenNameDoesntExist_ReturnsSplit() { // Arrange. using (var httpClientMock = GetHttpClientMock()) { var configurations = GetConfigurationOptions(httpClientMock?.GetUrl()); var splitName = "Split_Name"; var apikey = "base-apikey16"; var splitFactory = new SplitFactory(apikey, configurations); var manager = splitFactory.Manager(); manager.BlockUntilReady(10000); // Act. var result = manager.Split(splitName); // Assert. Assert.IsNull(result); splitFactory.Client().Destroy(); } }
public void Manager_Splits_ReturnsSplitList() { // Arrange. using (var httpClientMock = GetHttpClientMock()) { var configurations = GetConfigurationOptions(httpClientMock?.GetUrl()); var apikey = "base-apikey14"; var splitFactory = new SplitFactory(apikey, configurations); var manager = splitFactory.Manager(); manager.BlockUntilReady(10000); // Act. var result = manager.Splits(); // Assert. Assert.AreEqual(30, result.Count); Assert.IsInstanceOfType(result, typeof(List <SplitView>)); splitFactory.Client().Destroy(); } }