@@ -76,72 +76,40 @@ public void Configure_FileWatching()
76
76
Assert . Contains ( "mySecondFile.ext" , options . WatchFiles ) ;
77
77
}
78
78
79
- [ Fact ( Skip = "ApplyConfiguration no longer exists. Validate logic (moved to HostJsonFileConfigurationSource)" ) ]
80
- public void Configure_AllowPartialHostStartup ( )
81
- {
82
- //var settings = new Dictionary<string, string>
83
- //{
84
- // { ConfigurationPath.Combine(ConfigurationSectionNames.JobHost, "fileWatchingEnabled"), "true" }
85
- //};
86
-
87
- //var options = new ScriptHostOptions();
88
-
89
- //// Validate default (this should be in another test - migrated here for now)
90
- //Assert.True(options.FileWatchingEnabled);
91
-
92
- //Assert.True(options.HostConfig.AllowPartialHostStartup);
93
-
94
- //// explicit setting can override our default
95
- //scriptConfig = new ScriptHostConfiguration();
96
- //config["allowPartialHostStartup"] = new JValue(true);
97
- //ScriptHost.ApplyConfiguration(config, scriptConfig);
98
- //Assert.True(scriptConfig.HostConfig.AllowPartialHostStartup);
99
-
100
- //// explicit setting can override our default
101
- //scriptConfig = new ScriptHostConfiguration();
102
- //config["allowPartialHostStartup"] = new JValue(false);
103
- //ScriptHost.ApplyConfiguration(config, scriptConfig);
104
- //Assert.False(scriptConfig.HostConfig.AllowPartialHostStartup);
105
- }
106
-
107
79
[ Theory ]
108
- [ InlineData ( true , false ) ]
109
- [ InlineData ( false , true ) ]
110
- [ InlineData ( true , true ) ]
111
- public void Configure_AppliesDefaults_IfDynamic ( bool isLinuxConsumption , bool isWindowsConsumption )
80
+ [ InlineData ( ScriptConstants . DynamicSku , false ) ]
81
+ [ InlineData ( ScriptConstants . DynamicSku , true ) ]
82
+ [ InlineData ( "" , true ) ]
83
+ public void Configure_AppliesShorterConsumptionTimeoutDefault_ForExpectedSkus ( string sku , bool isLinux )
112
84
{
113
- var settings = new Dictionary < string , string > ( ) ;
114
-
115
85
var environment = new TestEnvironment ( ) ;
116
- if ( isLinuxConsumption )
86
+ environment . SetEnvironmentVariable ( EnvironmentSettingNames . AzureWebsiteSku , sku ) ;
87
+ if ( isLinux )
117
88
{
118
89
environment . SetEnvironmentVariable ( EnvironmentSettingNames . ContainerName , "RandomContainerName" ) ;
119
90
}
120
-
121
- if ( isWindowsConsumption )
122
- {
123
- environment . SetEnvironmentVariable ( EnvironmentSettingNames . AzureWebsiteSku , ScriptConstants . DynamicSku ) ;
124
- }
125
-
91
+ var settings = new Dictionary < string , string > ( ) ;
126
92
var options = GetConfiguredOptions ( settings , environment ) ;
127
93
128
- Assert . Equal ( ScriptJobHostOptionsSetup . DefaultFunctionTimeoutDynamic , options . FunctionTimeout ) ;
129
-
130
- // When functionTimeout is set as null
131
- settings . Add ( ConfigurationPath . Combine ( ConfigurationSectionNames . JobHost , "functionTimeout" ) , string . Empty ) ;
94
+ Assert . True ( environment . IsConsumptionSku ( ) ) ;
95
+ Assert . Equal ( ScriptJobHostOptionsSetup . DefaultConsumptionFunctionTimeout , options . FunctionTimeout ) ;
96
+ }
132
97
133
- options = GetConfiguredOptions ( settings , environment ) ;
134
- Assert . Equal ( ScriptJobHostOptionsSetup . DefaultFunctionTimeoutDynamic , options . FunctionTimeout ) ;
98
+ [ Theory ]
99
+ [ InlineData ( "" ) ]
100
+ [ InlineData ( ScriptConstants . FlexConsumptionSku ) ]
101
+ [ InlineData ( ScriptConstants . ElasticPremiumSku ) ]
102
+ public void Configure_AppliesLongerDedicatedTimeoutDefault_ForExpectedSkus ( string sku )
103
+ {
104
+ var environment = new TestEnvironment ( ) ;
105
+ environment . SetEnvironmentVariable ( EnvironmentSettingNames . AzureWebsiteSku , sku ) ;
135
106
136
- // TODO: DI Need to ensure JobHostOptions is correctly configured
137
- //var timeoutConfig = options.HostOptions.FunctionTimeout;
138
- //Assert.NotNull(timeoutConfig);
139
- //Assert.True(timeoutConfig.ThrowOnTimeout);
140
- //Assert.Equal(scriptConfig.FunctionTimeout.Value, timeoutConfig.Timeout);
107
+ var options = GetConfiguredOptions ( new Dictionary < string , string > ( ) ) ;
108
+ Assert . Equal ( ScriptJobHostOptionsSetup . DefaultFunctionTimeout , options . FunctionTimeout ) ;
141
109
}
142
110
143
111
[ Fact ]
144
- public void Configure_AppliesTimeout ( )
112
+ public void Configure_AppliesConfiguredTimeout ( )
145
113
{
146
114
var settings = new Dictionary < string , string >
147
115
{
@@ -230,50 +198,44 @@ public void Configure_AppliesRetry_ExponentialBackOffDelay(string expectedStrate
230
198
Assert . Equal ( maxIntervalTimeSpan , options . Retry . MaximumInterval ) ;
231
199
}
232
200
233
- [ Fact ]
234
- public void Configure_TimeoutDefaultsNull_IfNotDynamic ( )
235
- {
236
- var options = GetConfiguredOptions ( new Dictionary < string , string > ( ) ) ;
237
- Assert . Equal ( ScriptJobHostOptionsSetup . DefaultFunctionTimeout , options . FunctionTimeout ) ;
238
-
239
- // When functionTimeout is set as null
240
- var settings = new Dictionary < string , string >
241
- {
242
- { ConfigurationPath . Combine ( ConfigurationSectionNames . JobHost , "functionTimeout" ) , string . Empty }
243
- } ;
244
-
245
- options = GetConfiguredOptions ( settings ) ;
246
- Assert . Equal ( ScriptJobHostOptionsSetup . DefaultFunctionTimeout , options . FunctionTimeout ) ;
247
- }
248
-
249
- [ Fact ]
250
- public void Configure_NoMaxTimeoutLimits_IfNotDynamic ( )
201
+ [ Theory ]
202
+ [ InlineData ( ScriptConstants . ElasticPremiumSku ) ]
203
+ [ InlineData ( ScriptConstants . FlexConsumptionSku ) ]
204
+ [ InlineData ( "" ) ]
205
+ public void Configure_NoMaxTimeoutLimits_ForSomeSkus ( string sku )
251
206
{
252
207
var timeout = ScriptJobHostOptionsSetup . MaxFunctionTimeoutDynamic + TimeSpan . FromMinutes ( 10 ) ;
253
208
string configPath = ConfigurationPath . Combine ( ConfigurationSectionNames . JobHost , "functionTimeout" ) ;
254
209
var settings = new Dictionary < string , string >
255
210
{
256
211
{ configPath , timeout . ToString ( ) }
257
212
} ;
213
+ var environment = new TestEnvironment ( ) ;
214
+ environment . SetEnvironmentVariable ( EnvironmentSettingNames . AzureWebsiteSku , sku ) ;
258
215
259
- var options = GetConfiguredOptions ( settings ) ;
216
+ var options = GetConfiguredOptions ( settings , environment ) ;
260
217
Assert . Equal ( timeout , options . FunctionTimeout ) ;
261
218
}
262
219
263
- [ Fact ]
264
- public void Configure_AppliesInfiniteTimeout_IfNotDynamic ( )
220
+ [ Theory ]
221
+ [ InlineData ( ScriptConstants . ElasticPremiumSku ) ]
222
+ [ InlineData ( ScriptConstants . FlexConsumptionSku ) ]
223
+ [ InlineData ( "" ) ]
224
+ public void Configure_AppliesInfiniteTimeout_ForSomeSkus ( string sku )
265
225
{
266
226
var settings = new Dictionary < string , string >
267
227
{
268
228
{ ConfigurationPath . Combine ( ConfigurationSectionNames . JobHost , "functionTimeout" ) , "-1" }
269
229
} ;
230
+ var environment = new TestEnvironment ( ) ;
231
+ environment . SetEnvironmentVariable ( EnvironmentSettingNames . AzureWebsiteSku , sku ) ;
270
232
271
- var options = GetConfiguredOptions ( settings ) ;
233
+ var options = GetConfiguredOptions ( settings , environment ) ;
272
234
Assert . Equal ( null , options . FunctionTimeout ) ;
273
235
}
274
236
275
237
[ Fact ]
276
- public void Configure_AppliesTimeoutLimits_IfDynamic ( )
238
+ public void Configure_AppliesExpectedTimeoutLimits_ForDynamicSku ( )
277
239
{
278
240
string configPath = ConfigurationPath . Combine ( ConfigurationSectionNames . JobHost , "functionTimeout" ) ;
279
241
var settings = new Dictionary < string , string >
@@ -282,7 +244,7 @@ public void Configure_AppliesTimeoutLimits_IfDynamic()
282
244
} ;
283
245
284
246
var environment = new TestEnvironment ( ) ;
285
- environment . SetEnvironmentVariable ( EnvironmentSettingNames . AzureWebsiteSku , "Dynamic" ) ;
247
+ environment . SetEnvironmentVariable ( EnvironmentSettingNames . AzureWebsiteSku , ScriptConstants . DynamicSku ) ;
286
248
287
249
var ex = Assert . Throws < ArgumentException > ( ( ) => GetConfiguredOptions ( settings , environment ) ) ;
288
250
var expectedMessage = "FunctionTimeout must be greater than 00:00:01 and less than 00:10:00." ;
@@ -298,7 +260,7 @@ public void Configure_AppliesTimeoutLimits_IfDynamic()
298
260
}
299
261
300
262
[ Fact ]
301
- public void Configure_MinTimeoutLimit_IfNotDynamic ( )
263
+ public void Configure_AppliesMinTimeoutLimit_ForAllSkus ( )
302
264
{
303
265
string configPath = ConfigurationPath . Combine ( ConfigurationSectionNames . JobHost , "functionTimeout" ) ;
304
266
var settings = new Dictionary < string , string >
0 commit comments