public async Task ConfiguringTheClient() { var response = new MockResponse(200); response.SetContent(SerializationHelpers.Serialize(s_testSetting, SerializeSetting)); var mockTransport = new MockTransport(new MockResponse(503), response); var options = new ConfigurationClientOptions(); options.Diagnostics.ApplicationId = "test_application"; options.Transport = mockTransport; ConfigurationClient client = CreateClient <ConfigurationClient>(s_connectionString, options); ConfigurationSetting setting = await client.GetAsync(s_testSetting.Key); Assert.AreEqual(s_testSetting, setting); Assert.AreEqual(2, mockTransport.Requests.Count); }
public async Task RequestHasSpecificApiVersion() { var response = new MockResponse(200); response.SetContent(SerializationHelpers.Serialize(s_testSetting, SerializeSetting)); var mockTransport = new MockTransport(response); var options = new ConfigurationClientOptions(ConfigurationClientOptions.ServiceVersion.V1_0); options.Diagnostics.ApplicationId = "test_application"; options.Transport = mockTransport; ConfigurationClient client = CreateClient <ConfigurationClient>(s_connectionString, options); ConfigurationSetting setting = await client.AddConfigurationSettingAsync(s_testSetting); MockRequest request = mockTransport.SingleRequest; StringAssert.Contains("api-version=1.0", request.Uri.ToUri().ToString()); }
public void TestUserAgentHeader() { var response = new MockResponse(200); response.SetContent(SerializationHelpers.Serialize(_kvCollectionPageOne.ToArray(), TestHelpers.SerializeBatch)); var mockTransport = new MockTransport(response); var clientOptions = new ConfigurationClientOptions { Transport = mockTransport }; clientOptions.AddPolicy(new UserAgentHeaderPolicy(), HttpPipelinePosition.PerRetry); var config = new ConfigurationBuilder() .AddAzureAppConfiguration(options => { options.Client = new ConfigurationClient(_connectionString, clientOptions); options.Select("*", null); }) .Build(); MockRequest request = mockTransport.SingleRequest; string appUserAgent = TracingUtils.GenerateUserAgent("SdkUserAgent"); // Validate the user agent format corresponds to informational version instead of assembly version // Informational version examples : 3.0.0 or 2.1.0-preview-010380001-1099 // Assembly version examples : 3.0.0.0 or 2.1.0.0 var nugetPackageVersionRegex = @"\d+\.\d+\.\d+(-preview-\d+-\d+)?"; Assert.Matches($@"Microsoft\.Extensions\.Configuration\.AzureAppConfiguration/{nugetPackageVersionRegex} SdkUserAgent", appUserAgent); appUserAgent = appUserAgent.Replace("SdkUserAgent", ""); Assert.True(request.Headers.TryGetValue("User-Agent", out string userAgentHeader)); Assert.Contains(appUserAgent, userAgentHeader); Assert.NotEqual(appUserAgent.Length, userAgentHeader.Length); }
public async Task ConfiguringRetries() { // specify retry policy options var options = new ConfigurationClientOptions(); options.RetryPolicy = RetryPolicy.CreateFixed( maxRetries: 10, delay: TimeSpan.FromSeconds(1), retriableCodes: new int[] { 500, // Internal Server Error 504 // Gateway Timeout } ); var connectionString = Environment.GetEnvironmentVariable("AZ_CONFIG_CONNECTION"); // pass the policy options to the client var client = new ConfigurationClient(connectionString, options); await client.SetAsync(new ConfigurationSetting("some_key", "some_value")); await client.DeleteAsync("some_key"); }
public async Task ConfiguringPipeline() { // this instance will hold pipeline creation options var options = new ConfigurationClientOptions(); // specify custon HttpClient options.Transport = new HttpClientTransport(s_client); // remove logging policy options.LoggingPolicy = null; // specify custom retry policy options options.RetryPolicy = new FixedRetryPolicy() { MaxRetries = 10, Delay = TimeSpan.FromSeconds(1), RetriableCodes = new [] { 500, // Internal Server Error 504 // Gateway Timeout } }; // add a policy (custom behavior) that executes once per client call options.PerCallPolicies.Add(new AddHeaderPolicy()); // add a policy that executes once per retry options.PerRetryPolicies.Add(new CustomLogPolicy()); var connectionString = Environment.GetEnvironmentVariable("AZ_CONFIG_CONNECTION"); // pass the policy options to the client var client = new ConfigurationClient(connectionString, options); await client.SetAsync(new ConfigurationSetting("some_key", "some_value")); await client.DeleteAsync("some_key"); }
public ConfigurationClient CreateConfigurationClient(Uri endpoint, TokenCredential credential, ConfigurationClientOptions clientOptions) { ClientOptions = clientOptions; TokenCredentialCallCount++; return(_mockClient.Object); }
public ConfigurationClient CreateConfigurationClient(string connectionString, ConfigurationClientOptions clientOptions) { ClientOptions = clientOptions; ConnectionStringCallCount++; return(_mockClient.Object); }
public ConfigurationClient CreateConfigurationClient(Uri endpoint, TokenCredential credential, ConfigurationClientOptions clientOptions) { return(new ConfigurationClient(endpoint, credential, clientOptions)); }
public ConfigurationClient CreateConfigurationClient(string connectionString, ConfigurationClientOptions clientOptions) { return(new ConfigurationClient(connectionString, clientOptions)); }