internal ConfigurationBuilderBase(ConfigCatClientBuilder clientBuilder) { this.configuration = new T { ApiKey = clientBuilder.ApiKey }; }
public void ConfigCache_Override_ManualPoll_Works() { ProjectConfig cachedConfig = ProjectConfig.Empty; Mock <IConfigCache> configCacheMock = new Mock <IConfigCache>(); configCacheMock.Setup(c => c.SetAsync(It.IsAny <string>(), It.IsAny <ProjectConfig>())).Callback <string, ProjectConfig>((key, config) => { cachedConfig = config; }); configCacheMock.Setup(c => c.GetAsync(It.IsAny <string>(), CancellationToken.None)).ReturnsAsync(() => cachedConfig); var client = ConfigCatClientBuilder.Initialize(SDKKEY).WithManualPoll().WithConfigCache(configCacheMock.Object).Create(); configCacheMock.Verify(c => c.SetAsync(It.IsAny <string>(), It.IsAny <ProjectConfig>()), Times.Never); configCacheMock.Verify(c => c.GetAsync(It.IsAny <string>(), CancellationToken.None), Times.Never); var actual = client.GetValue("stringDefaultCat", "N/A"); Assert.AreEqual("N/A", actual); configCacheMock.Verify(c => c.SetAsync(It.IsAny <string>(), It.IsAny <ProjectConfig>()), Times.Never); configCacheMock.Verify(c => c.GetAsync(It.IsAny <string>(), CancellationToken.None), Times.Once); client.ForceRefresh(); actual = client.GetValue("stringDefaultCat", "N/A"); Assert.AreEqual("Cat", actual); configCacheMock.Verify(c => c.SetAsync(It.IsAny <string>(), It.IsAny <ProjectConfig>()), Times.Once); configCacheMock.Verify(c => c.GetAsync(It.IsAny <string>(), CancellationToken.None), Times.Exactly(3)); }
public void ConfigCache_Override_AutoPoll_Works() { ProjectConfig cachedConfig = ProjectConfig.Empty; Mock <IConfigCache> configCacheMock = new Mock <IConfigCache>(); configCacheMock.Setup(c => c.SetAsync(It.IsAny <string>(), It.IsAny <ProjectConfig>())).Callback <string, ProjectConfig>((key, config) => { cachedConfig = config; }); configCacheMock.Setup(c => c.GetAsync(It.IsAny <string>(), CancellationToken.None)).ReturnsAsync(() => cachedConfig); var client = ConfigCatClientBuilder .Initialize(SDKKEY) .WithLogger(new ConsoleLogger(LogLevel.Debug)) .WithAutoPoll() .WithConfigCache(configCacheMock.Object) .Create(); var actual = client.GetValue("stringDefaultCat", "N/A"); Assert.AreEqual("Cat", actual); configCacheMock.Verify(c => c.SetAsync(It.IsAny <string>(), It.IsAny <ProjectConfig>()), Times.AtLeastOnce); configCacheMock.Verify(c => c.GetAsync(It.IsAny <string>(), CancellationToken.None), Times.AtLeastOnce); }
internal ConfigurationBuilderBase(ConfigCatClientBuilder clientBuilder) { this.configuration = new T { SdkKey = clientBuilder.SdkKey, Logger = clientBuilder.Logger, DataGovernance = clientBuilder.DataGovernance }; }
public void LazyLoadGetValue() { IConfigCatClient client = ConfigCatClientBuilder .Initialize(APIKEY) .WithLazyLoad() .WithCacheTimeToLiveSeconds(30) .Create(); GetValueAndAssert(client, "stringDefaultCat", "N/A", "Cat"); }
public async Task ManualPollGetValueAsync() { IConfigCatClient client = ConfigCatClientBuilder .Initialize(APIKEY) .WithManualPoll() .Create(); await client.ForceRefreshAsync(); await GetValueAsyncAndAssert(client, "stringDefaultCat", "N/A", "Cat"); }
public void ManualPollGetValue() { IConfigCatClient manualPollClient = ConfigCatClientBuilder .Initialize(APIKEY) .WithManualPoll() .Create(); manualPollClient.ForceRefresh(); GetValueAndAssert(manualPollClient, "stringDefaultCat", "N/A", "Cat"); }
public void AutoPollGetValue() { IConfigCatClient client = ConfigCatClientBuilder .Initialize(APIKEY) .WithAutoPoll() .WithMaxInitWaitTimeSeconds(30) .WithPollIntervalSeconds(600) .Create(); GetValueAndAssert(client, "stringDefaultCat", "N/A", "Cat"); }
public async Task LazyLoadGetValueAsync() { IConfigCatClient client = ConfigCatClientBuilder .Initialize(SDKKEY) .WithLogger(consoleLogger) .WithLazyLoad() .WithCacheTimeToLiveSeconds(30) .Create(); await GetValueAsyncAndAssert(client, "stringDefaultCat", "N/A", "Cat"); }
public async Task AutoPollGetValueAsync() { IConfigCatClient client = ConfigCatClientBuilder .Initialize(SDKKEY) .WithLogger(consoleLogger) .WithAutoPoll() .WithMaxInitWaitTimeSeconds(30) .WithPollIntervalSeconds(600) .Create(); await GetValueAsyncAndAssert(client, "stringDefaultCat", "N/A", "Cat"); }
public void GetVariationId() { IConfigCatClient manualPollClient = ConfigCatClientBuilder .Initialize(SDKKEY) .WithLogger(consoleLogger) .WithManualPoll() .Create(); manualPollClient.ForceRefresh(); var actual = manualPollClient.GetVariationId("stringDefaultCat", "default"); Assert.AreEqual("7a0be518", actual); }
public void GetAllKeys() { IConfigCatClient manualPollClient = ConfigCatClientBuilder .Initialize(SDKKEY) .WithLogger(consoleLogger) .WithManualPoll() .Create(); manualPollClient.ForceRefresh(); var keys = manualPollClient.GetAllKeys().ToArray(); Assert.AreEqual(16, keys.Count()); Assert.IsTrue(keys.Contains("stringDefaultCat")); }
static void Main(string[] args) { const string apiKey = "PKDVCLf-Hq-h-kCzMp-L7Q/PaDVCFk9EpmD6sLpGLltTA"; // create Client instance with ConfigCatClientBuilder var client = ConfigCatClientBuilder .Initialize(apiKey) .WithAutoPoll() .WithMaxInitWaitTimeSeconds(10) .Create(); // create a user object to identify the caller User user = new User("2605ED59-D7D0-4D84-9CDF-5E37B971DD03") { Country = "US", Email = "*****@*****.**", Custom = { { "SubscriptionType", "Pro" }, { "Role", "Admin" } } }; // get setting value - 'keyBool' var myNewFeatureEnabled = client.GetValue("keyBool", false, user); Console.WriteLine("'keyBool': {0}", myNewFeatureEnabled); Console.WriteLine(); // is my new feature enabled? if (myNewFeatureEnabled) { Console.WriteLine(" Here is my new feature..."); Console.WriteLine(client.GetValue(" keyString", "", user)); } // 'myKeyNotExits' setting doesn't exist in the project configuration and the client returns default value ('N/A'); var mySettingNotExists = client.GetValue("myKeyNotExits", "N/A", user); Console.WriteLine(); Console.WriteLine("'mySettingNotExists' value from ConfigCat: {0}", mySettingNotExists); Console.WriteLine("\n\n\nPress any key(s) to exit..."); Console.ReadKey(); }
public void LazyLoad_WithHttpClientHandlerOverride_ShouldReturnCatUseCustomImplementation() { // Arrange var client = ConfigCatClientBuilder.Initialize(SDKKEY) .WithDataGovernance(DataGovernance.EuOnly) .WithLazyLoad() .WithHttpClientHandler(httpClientHandler) .Create(); // Act var actual = client.GetValue("stringDefaultCat", "N/A"); // Assert Assert.AreEqual("Cat", actual); Assert.AreEqual(1, httpClientHandler.SendAsyncInvokeCount); }
public void BaseUrl_Override_LazyLoad_Works() { var client = ConfigCatClientBuilder.Initialize(SDKKEY) .WithLazyLoad() .WithBaseUrl(workingBaseUrl) .Create(); var actual = client.GetValue("stringDefaultCat", "N/A"); Assert.AreEqual("Cat", actual); client = ConfigCatClientBuilder.Initialize(SDKKEY) .WithLazyLoad() .WithBaseUrl(notWorkingBaseUrl) .Create(); actual = client.GetValue("stringDefaultCat", "N/A"); Assert.AreEqual("N/A", actual); }
public async Task GetAllVariationIdAsync() { // Arrange const string expectedJsonString = "[\"7a0be518\",\"83372510\",\"2459598d\",\"ce564c3a\",\"44ab483a\",\"d227b334\",\"93f5a1c0\",\"bb66b1f3\",\"09513143\",\"489a16d2\",\"607147d5\",\"11634414\",\"faadbf54\",\"5af8acc7\",\"183ee713\",\"baff2362\"]"; var expectedValue = Newtonsoft.Json.JsonConvert.DeserializeObject <string[]>(expectedJsonString); IConfigCatClient manualPollClient = ConfigCatClientBuilder .Initialize(SDKKEY) .WithLogger(consoleLogger) .WithManualPoll() .Create(); await manualPollClient.ForceRefreshAsync(); // Act var actual = await manualPollClient.GetAllVariationIdAsync(new User("*****@*****.**")); // Assert Assert.AreEqual(16, expectedValue.Length); CollectionAssert.AreEquivalent(expectedValue, actual.ToArray()); }
internal LazyLoadConfigurationBuilder(ConfigCatClientBuilder clientBuilder) : base(clientBuilder) { }
internal ManualPollConfigurationBuilder(ConfigCatClientBuilder clientBuilder) : base(clientBuilder) { }