internal ConfigurationBuilderBase(ConfigCatClientBuilder clientBuilder)
 {
     this.configuration = new T
     {
         ApiKey = clientBuilder.ApiKey
     };
 }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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");
        }
Esempio n. 9
0
        public async Task LazyLoadGetValueAsync()
        {
            IConfigCatClient client = ConfigCatClientBuilder
                                      .Initialize(SDKKEY)
                                      .WithLogger(consoleLogger)
                                      .WithLazyLoad()
                                      .WithCacheTimeToLiveSeconds(30)
                                      .Create();

            await GetValueAsyncAndAssert(client, "stringDefaultCat", "N/A", "Cat");
        }
Esempio n. 10
0
        public async Task AutoPollGetValueAsync()
        {
            IConfigCatClient client = ConfigCatClientBuilder
                                      .Initialize(SDKKEY)
                                      .WithLogger(consoleLogger)
                                      .WithAutoPoll()
                                      .WithMaxInitWaitTimeSeconds(30)
                                      .WithPollIntervalSeconds(600)
                                      .Create();

            await GetValueAsyncAndAssert(client, "stringDefaultCat", "N/A", "Cat");
        }
Esempio n. 11
0
        public void GetVariationId()
        {
            IConfigCatClient manualPollClient = ConfigCatClientBuilder
                                                .Initialize(SDKKEY)
                                                .WithLogger(consoleLogger)
                                                .WithManualPoll()
                                                .Create();

            manualPollClient.ForceRefresh();
            var actual = manualPollClient.GetVariationId("stringDefaultCat", "default");

            Assert.AreEqual("7a0be518", actual);
        }
Esempio n. 12
0
        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"));
        }
Esempio n. 13
0
        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);
        }
Esempio n. 15
0
        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);
        }
Esempio n. 16
0
        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)
 {
 }
Esempio n. 18
0
 internal ManualPollConfigurationBuilder(ConfigCatClientBuilder clientBuilder) : base(clientBuilder)
 {
 }