8
8
using Microsoft . Azure . WebJobs . Script . Rpc ;
9
9
using Microsoft . Azure . WebJobs . Script . WebHost ;
10
10
using Microsoft . Extensions . Configuration ;
11
+ using Microsoft . Extensions . Logging ;
11
12
using Microsoft . Extensions . Logging . Abstractions ;
12
13
using Microsoft . Extensions . Options ;
14
+ using Microsoft . WebJobs . Script . Tests ;
13
15
using Moq ;
14
16
using Xunit ;
15
17
@@ -25,6 +27,8 @@ public class StandbyManagerTests
25
27
private TestEnvironment _testEnvironment ;
26
28
private string _testSettingName = "TestSetting" ;
27
29
private string _testSettingValue = "TestSettingValue" ;
30
+ private ILoggerProvider _testLoggerProvider ;
31
+ private ILoggerFactory _testLoggerFactory ;
28
32
29
33
public StandbyManagerTests ( )
30
34
{
@@ -35,18 +39,41 @@ public StandbyManagerTests()
35
39
_mockWebHostEnvironment = new Mock < IScriptWebHostEnvironment > ( ) ;
36
40
_mockLanguageWorkerChannelManager = new Mock < ILanguageWorkerChannelManager > ( ) ;
37
41
_testEnvironment = new TestEnvironment ( ) ;
42
+
43
+ _testLoggerProvider = new TestLoggerProvider ( ) ;
44
+ _testLoggerFactory = new LoggerFactory ( ) ;
45
+ _testLoggerFactory . AddProvider ( _testLoggerProvider ) ;
38
46
}
39
47
40
48
[ Fact ]
41
49
public async Task Specialize_ResetsConfiguration ( )
42
50
{
43
- var manager = new StandbyManager ( _mockHostManager . Object , _mockLanguageWorkerChannelManager . Object , _mockConfiguration . Object , _mockWebHostEnvironment . Object , _testEnvironment , _mockOptionsMonitor . Object , NullLogger < StandbyManager > . Instance ) ;
51
+ var hostNameProvider = new HostNameProvider ( _testEnvironment , _testLoggerFactory . CreateLogger < HostNameProvider > ( ) ) ;
52
+ var manager = new StandbyManager ( _mockHostManager . Object , _mockLanguageWorkerChannelManager . Object , _mockConfiguration . Object , _mockWebHostEnvironment . Object , _testEnvironment , _mockOptionsMonitor . Object , NullLogger < StandbyManager > . Instance , hostNameProvider ) ;
44
53
45
54
await manager . SpecializeHostAsync ( ) ;
46
55
47
56
_mockConfiguration . Verify ( c => c . Reload ( ) ) ;
48
57
}
49
58
59
+ [ Fact ]
60
+ public async Task Specialize_ResetsHostNameProvider ( )
61
+ {
62
+ _testEnvironment . SetEnvironmentVariable ( EnvironmentSettingNames . AzureWebsiteHostName , "placeholder.azurewebsites.net" ) ;
63
+
64
+ var hostNameProvider = new HostNameProvider ( _testEnvironment , _testLoggerFactory . CreateLogger < HostNameProvider > ( ) ) ;
65
+ var manager = new StandbyManager ( _mockHostManager . Object , _mockLanguageWorkerChannelManager . Object , _mockConfiguration . Object , _mockWebHostEnvironment . Object , _testEnvironment , _mockOptionsMonitor . Object , NullLogger < StandbyManager > . Instance , hostNameProvider ) ;
66
+
67
+ Assert . Equal ( "placeholder.azurewebsites.net" , hostNameProvider . Value ) ;
68
+
69
+ await manager . SpecializeHostAsync ( ) ;
70
+
71
+ _testEnvironment . SetEnvironmentVariable ( EnvironmentSettingNames . AzureWebsiteHostName , "testapp.azurewebsites.net" ) ;
72
+ Assert . Equal ( "testapp.azurewebsites.net" , hostNameProvider . Value ) ;
73
+
74
+ _mockConfiguration . Verify ( c => c . Reload ( ) ) ;
75
+ }
76
+
50
77
[ Fact ]
51
78
public async Task Specialize_ReloadsEnvironmentVariables ( )
52
79
{
@@ -57,7 +84,9 @@ public async Task Specialize_ReloadsEnvironmentVariables()
57
84
await Task . Yield ( ) ;
58
85
} ) ;
59
86
_testEnvironment . SetEnvironmentVariable ( LanguageWorkerConstants . FunctionWorkerRuntimeSettingName , LanguageWorkerConstants . JavaLanguageWorkerName ) ;
60
- var manager = new StandbyManager ( _mockHostManager . Object , _mockLanguageWorkerChannelManager . Object , _mockConfiguration . Object , _mockWebHostEnvironment . Object , _testEnvironment , _mockOptionsMonitor . Object , NullLogger < StandbyManager > . Instance ) ;
87
+
88
+ var hostNameProvider = new HostNameProvider ( _testEnvironment , _testLoggerFactory . CreateLogger < HostNameProvider > ( ) ) ;
89
+ var manager = new StandbyManager ( _mockHostManager . Object , _mockLanguageWorkerChannelManager . Object , _mockConfiguration . Object , _mockWebHostEnvironment . Object , _testEnvironment , _mockOptionsMonitor . Object , NullLogger < StandbyManager > . Instance , hostNameProvider ) ;
61
90
await manager . SpecializeHostAsync ( ) ;
62
91
Assert . Equal ( _testSettingValue , _testEnvironment . GetEnvironmentVariable ( _testSettingName ) ) ;
63
92
}
0 commit comments