public void Configure_Dedicated_DoesNotDefault()
        {
            var mockEnvironment = new Mock <IEnvironment>(MockBehavior.Strict);

            mockEnvironment.Setup(p => p.GetEnvironmentVariable(EnvironmentSettingNames.AzureWebsiteInstanceId)).Returns("1234");
            mockEnvironment.Setup(p => p.GetEnvironmentVariable(EnvironmentSettingNames.AzureWebsiteSku)).Returns("Dedicated");

            var setup   = new HttpOptionsSetup(mockEnvironment.Object);
            var options = new HttpOptions();

            setup.Configure(options);

            Assert.False(options.DynamicThrottlesEnabled);
            Assert.Equal(DataflowBlockOptions.Unbounded, options.MaxConcurrentRequests);
            Assert.Equal(DataflowBlockOptions.Unbounded, options.MaxOutstandingRequests);
        }
        public void Configure_Dynamic_NonAppService_Defaults()
        {
            var mockEnvironment = new Mock <IEnvironment>(MockBehavior.Strict);

            mockEnvironment.Setup(p => p.GetEnvironmentVariable(EnvironmentSettingNames.AzureWebsiteInstanceId)).Returns((string)null);
            mockEnvironment.Setup(p => p.GetEnvironmentVariable(EnvironmentSettingNames.AzureWebsiteSku)).Returns(ScriptConstants.DynamicSku);

            var setup   = new HttpOptionsSetup(mockEnvironment.Object);
            var options = new HttpOptions();

            setup.Configure(options);

            Assert.False(options.DynamicThrottlesEnabled);
            Assert.Equal(HttpOptionsSetup.DefaultMaxConcurrentRequests, options.MaxConcurrentRequests);
            Assert.Equal(HttpOptionsSetup.DefaultMaxOutstandingRequests, options.MaxOutstandingRequests);
        }
        public void Configure_Dynamic_AppService_Defaults()
        {
            var mockEnvironment = new Mock <IEnvironment>(MockBehavior.Strict);

            mockEnvironment.Setup(p => p.GetEnvironmentVariable(EnvironmentSettingNames.AzureWebsiteInstanceId)).Returns("1234");
            mockEnvironment.Setup(p => p.GetEnvironmentVariable(EnvironmentSettingNames.AzureWebsiteSku)).Returns(ScriptConstants.DynamicSku);
            mockEnvironment.Setup(p => p.GetEnvironmentVariable(EnvironmentSettingNames.FunctionsV2CompatibilityModeKey)).Returns <string>(null);
            mockEnvironment.Setup(p => p.GetEnvironmentVariable(EnvironmentSettingNames.FunctionsExtensionVersion)).Returns <string>(null);

            var setup   = new HttpOptionsSetup(mockEnvironment.Object);
            var options = new HttpOptions();

            setup.Configure(options);

            Assert.True(options.DynamicThrottlesEnabled);
            Assert.Equal(HttpOptionsSetup.DefaultMaxConcurrentRequests, options.MaxConcurrentRequests);
            Assert.Equal(HttpOptionsSetup.DefaultMaxOutstandingRequests, options.MaxOutstandingRequests);
        }