File tree Expand file tree Collapse file tree 2 files changed +20
-3
lines changed
src/WebJobs.Script/Extensions
test/WebJobs.Script.Tests/Extensions Expand file tree Collapse file tree 2 files changed +20
-3
lines changed Original file line number Diff line number Diff line change @@ -21,11 +21,19 @@ public static TService GetScriptHostServiceOrNull<TService>(this IServiceProvide
2121 throw new ArgumentNullException ( nameof ( serviceProvider ) ) ;
2222 }
2323
24- var hostManager = serviceProvider . GetService < IScriptHostManager > ( ) ;
25- if ( Utility . TryGetHostService ( hostManager , out TService service ) )
24+ try
2625 {
27- return service ;
26+ var hostManager = serviceProvider . GetService < IScriptHostManager > ( ) ;
27+ if ( Utility . TryGetHostService ( hostManager , out TService service ) )
28+ {
29+ return service ;
30+ }
2831 }
32+ catch
33+ {
34+ // can get exceptions if the host is being disposed
35+ }
36+
2937 return null ;
3038 }
3139 }
Original file line number Diff line number Diff line change @@ -36,5 +36,14 @@ public void GetScriptHostServiceOrNull_NonScriptHost_ReturnsNull()
3636 var result = serviceProviderMock . Object . GetScriptHostServiceOrNull < ITestInterface > ( ) ;
3737 Assert . Null ( result ) ;
3838 }
39+
40+ [ Fact ]
41+ public void GetScriptHostServiceOrNull_ContainerDisposed_ReturnsNull ( )
42+ {
43+ var serviceProviderMock = new Mock < IServiceProvider > ( MockBehavior . Strict ) ;
44+ serviceProviderMock . Setup ( p => p . GetService ( typeof ( IScriptHostManager ) ) ) . Throws ( new ObjectDisposedException ( "test" ) ) ;
45+ var result = serviceProviderMock . Object . GetScriptHostServiceOrNull < ITestInterface > ( ) ;
46+ Assert . Null ( result ) ;
47+ }
3948 }
4049}
You can’t perform that action at this time.
0 commit comments