Exemple #1
0
        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");
        }
Exemple #5
0
        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);
 }
Exemple #8
0
 public ConfigurationClient CreateConfigurationClient(Uri endpoint, TokenCredential credential, ConfigurationClientOptions clientOptions)
 {
     return(new ConfigurationClient(endpoint, credential, clientOptions));
 }
Exemple #9
0
 public ConfigurationClient CreateConfigurationClient(string connectionString, ConfigurationClientOptions clientOptions)
 {
     return(new ConfigurationClient(connectionString, clientOptions));
 }