88using Microsoft . Azure . WebJobs . Script . Config ;
99using Microsoft . Azure . WebJobs . Script . Eventing ;
1010using Microsoft . Azure . WebJobs . Script . WebHost ;
11+ using Microsoft . Azure . WebJobs . Script . WebHost . Properties ;
1112using Moq ;
1213using Xunit ;
1314
@@ -87,6 +88,48 @@ public void GetWebScriptHostManager_ReturnsExpectedValue()
8788 TestGetter ( _webHostResolver . GetWebScriptHostManager ) ;
8889 }
8990
91+ [ Fact ]
92+ public void EnsureInitialized_NonPlaceholderMode ( )
93+ {
94+ using ( new TestEnvironment ( ) )
95+ {
96+ _traceWriter . Traces . Clear ( ) ;
97+
98+ var settings = GetWebHostSettings ( ) ;
99+ _settingsManager . SetSetting ( EnvironmentSettingNames . AzureWebsitePlaceholderMode , "0" ) ;
100+ Assert . False ( WebScriptHostManager . InStandbyMode ) ;
101+ _webHostResolver . EnsureInitialized ( settings ) ;
102+
103+ // ensure specialization message is NOT written
104+ var traces = _traceWriter . Traces . ToArray ( ) ;
105+ var traceEvent = traces . SingleOrDefault ( p => p . Message . Contains ( Resources . HostSpecializationTrace ) ) ;
106+ Assert . Null ( traceEvent ) ;
107+ }
108+ }
109+
110+ [ Fact ]
111+ public void EnsureInitialized_PlaceholderMode ( )
112+ {
113+ using ( new TestEnvironment ( ) )
114+ {
115+ _traceWriter . Traces . Clear ( ) ;
116+
117+ var settings = GetWebHostSettings ( ) ;
118+ _settingsManager . SetSetting ( EnvironmentSettingNames . AzureWebsitePlaceholderMode , "1" ) ;
119+ Assert . True ( WebScriptHostManager . InStandbyMode ) ;
120+ _webHostResolver . EnsureInitialized ( settings ) ;
121+
122+ _settingsManager . SetSetting ( EnvironmentSettingNames . AzureWebsitePlaceholderMode , "0" ) ;
123+ Assert . False ( WebScriptHostManager . InStandbyMode ) ;
124+ _webHostResolver . EnsureInitialized ( settings ) ;
125+
126+ var traces = _traceWriter . Traces . ToArray ( ) ;
127+ var traceEvent = traces . Last ( ) ;
128+ Assert . Equal ( Resources . HostSpecializationTrace , traceEvent . Message ) ;
129+ Assert . Equal ( TraceLevel . Info , traceEvent . Level ) ;
130+ }
131+ }
132+
90133 private void TestGetter < T > ( Func < WebHostSettings , T > func )
91134 {
92135 using ( new TestEnvironment ( ) )
@@ -96,8 +139,6 @@ private void TestGetter<T>(Func<WebHostSettings, T> func)
96139 T next = default ( T ) ;
97140 try
98141 {
99- _traceWriter . Traces . Clear ( ) ;
100-
101142 _settingsManager . SetSetting ( EnvironmentSettingNames . AzureWebsitePlaceholderMode , "1" ) ;
102143
103144 var settings = GetWebHostSettings ( ) ;
@@ -109,11 +150,6 @@ private void TestGetter<T>(Func<WebHostSettings, T> func)
109150 Assert . NotNull ( current ) ;
110151 Assert . NotSame ( prev , current ) ;
111152
112- var traces = _traceWriter . Traces . ToArray ( ) ;
113- var traceEvent = traces . Last ( ) ;
114- Assert . Equal ( "Host has been specialized" , traceEvent . Message ) ;
115- Assert . Equal ( TraceLevel . Info , traceEvent . Level ) ;
116-
117153 // test only set one way
118154 _settingsManager . SetSetting ( EnvironmentSettingNames . AzureWebsitePlaceholderMode , "1" ) ;
119155 next = func ( settings ) ;
0 commit comments