Skip to content

Commit 8a710bf

Browse files
msohailhussainMichael Ng
authored andcommitted
debug: Added log msgs for not providing values. (#179)
1 parent db11db4 commit 8a710bf

File tree

2 files changed

+57
-8
lines changed

2 files changed

+57
-8
lines changed

OptimizelySDK.Tests/ConfigTest/HttpProjectConfigManagerTest.cs

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ public void TestDefaultBlockingTimeoutWhileProvidingZero()
190190
.WithStartByDefault(true)
191191
.Build(true);
192192

193-
LoggerMock.Verify(l => l.Log(LogLevel.INFO, $"Blocking timeout is not valid, using default blocking timeout {TimeSpan.FromSeconds(15).TotalMilliseconds}ms"));
193+
LoggerMock.Verify(l => l.Log(LogLevel.DEBUG, $"Blocking timeout is not valid, using default blocking timeout {TimeSpan.FromSeconds(15).TotalMilliseconds}ms"));
194194
}
195195

196196
[Test]
@@ -205,7 +205,7 @@ public void TestDefaultPeriodWhileProvidingZero()
205205
.WithStartByDefault(true)
206206
.Build(true);
207207

208-
LoggerMock.Verify(l => l.Log(LogLevel.INFO, $"Period is not valid for periodic calls, using default period {TimeSpan.FromMinutes(5).TotalMilliseconds}ms"));
208+
LoggerMock.Verify(l => l.Log(LogLevel.DEBUG, $"Polling interval is not valid for periodic calls, using default period {TimeSpan.FromMinutes(5).TotalMilliseconds}ms"));
209209
}
210210

211211
[Test]
@@ -220,7 +220,44 @@ public void TestDefaultPeriodWhileProvidingNegative()
220220
.WithStartByDefault(true)
221221
.Build(true);
222222

223-
LoggerMock.Verify(l => l.Log(LogLevel.INFO, $"Period is not valid for periodic calls, using default period {TimeSpan.FromMinutes(5).TotalMilliseconds}ms"));
223+
LoggerMock.Verify(l => l.Log(LogLevel.DEBUG, $"Polling interval is not valid for periodic calls, using default period {TimeSpan.FromMinutes(5).TotalMilliseconds}ms"));
224+
}
225+
226+
[Test]
227+
public void TestDefaultPeriodWhileNotProvidingValue()
228+
{
229+
var httpManager = new HttpProjectConfigManager.Builder()
230+
.WithSdkKey("QBw9gFM8oTn7ogY9ANCC1z")
231+
.WithDatafile(TestData.Datafile)
232+
.WithLogger(LoggerMock.Object)
233+
.Build(true);
234+
235+
LoggerMock.Verify(l => l.Log(LogLevel.DEBUG, $"No polling interval provided, using default period {TimeSpan.FromMinutes(5).TotalMilliseconds}ms"));
236+
}
237+
238+
[Test]
239+
public void TestDefaultBlockingTimeoutWhileNotProvidingValue()
240+
{
241+
var httpManager = new HttpProjectConfigManager.Builder()
242+
.WithSdkKey("QBw9gFM8oTn7ogY9ANCC1z")
243+
.WithDatafile(TestData.Datafile)
244+
.WithLogger(LoggerMock.Object)
245+
.Build(true);
246+
247+
LoggerMock.Verify(l => l.Log(LogLevel.DEBUG, $"No Blocking timeout provided, using default blocking timeout {TimeSpan.FromSeconds(15).TotalMilliseconds}ms"));
248+
}
249+
250+
[Test]
251+
public void TestDefaultValuesWhenNotProvided()
252+
{
253+
var httpManager = new HttpProjectConfigManager.Builder()
254+
.WithSdkKey("QBw9gFM8oTn7ogY9ANCC1z")
255+
.WithDatafile(TestData.Datafile)
256+
.WithLogger(LoggerMock.Object)
257+
.Build(true);
258+
259+
LoggerMock.Verify(l => l.Log(LogLevel.DEBUG, $"No polling interval provided, using default period {TimeSpan.FromMinutes(5).TotalMilliseconds}ms"));
260+
LoggerMock.Verify(l => l.Log(LogLevel.DEBUG, $"No Blocking timeout provided, using default blocking timeout {TimeSpan.FromSeconds(15).TotalMilliseconds}ms"));
224261
}
225262

226263
#endregion

OptimizelySDK/Config/HttpProjectConfigManager.cs

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,14 @@ public class Builder
138138
private bool StartByDefault;
139139
private NotificationCenter NotificationCenter;
140140

141+
142+
private bool IsBlockingTimeoutProvided = false;
143+
private bool IsPollingIntervalProvided = false;
144+
141145
public Builder WithBlockingTimeoutPeriod(TimeSpan blockingTimeoutSpan)
142146
{
147+
IsBlockingTimeoutProvided = true;
148+
143149
BlockingTimeoutSpan = blockingTimeoutSpan;
144150

145151
return this;
@@ -166,7 +172,9 @@ public Builder WithUrl(string url)
166172
}
167173

168174
public Builder WithPollingInterval(TimeSpan period)
169-
{
175+
{
176+
IsPollingIntervalProvided = true;
177+
170178
Period = period;
171179

172180
return this;
@@ -249,15 +257,19 @@ public HttpProjectConfigManager Build(bool defer)
249257
Url = string.Format(Format, SdkKey);
250258
}
251259

252-
if (Period.TotalMilliseconds <= 0 || Period.TotalMilliseconds > MAX_MILLISECONDS_LIMIT) {
253-
Logger.Log(LogLevel.INFO, $"Period is not valid for periodic calls, using default period {DEFAULT_PERIOD.TotalMilliseconds}ms");
260+
if (IsPollingIntervalProvided && (Period.TotalMilliseconds <= 0 || Period.TotalMilliseconds > MAX_MILLISECONDS_LIMIT)) {
261+
Logger.Log(LogLevel.DEBUG, $"Polling interval is not valid for periodic calls, using default period {DEFAULT_PERIOD.TotalMilliseconds}ms");
254262
Period = DEFAULT_PERIOD;
263+
} else {
264+
Logger.Log(LogLevel.DEBUG, $"No polling interval provided, using default period {DEFAULT_PERIOD.TotalMilliseconds}ms");
255265
}
256266

257267

258-
if (BlockingTimeoutSpan.TotalMilliseconds <= 0 || BlockingTimeoutSpan.TotalMilliseconds > MAX_MILLISECONDS_LIMIT) {
259-
Logger.Log(LogLevel.INFO, $"Blocking timeout is not valid, using default blocking timeout {DEFAULT_BLOCKINGOUT_PERIOD.TotalMilliseconds}ms");
268+
if (IsBlockingTimeoutProvided && (BlockingTimeoutSpan.TotalMilliseconds <= 0 || BlockingTimeoutSpan.TotalMilliseconds > MAX_MILLISECONDS_LIMIT)) {
269+
Logger.Log(LogLevel.DEBUG, $"Blocking timeout is not valid, using default blocking timeout {DEFAULT_BLOCKINGOUT_PERIOD.TotalMilliseconds}ms");
260270
BlockingTimeoutSpan = DEFAULT_BLOCKINGOUT_PERIOD;
271+
} else {
272+
Logger.Log(LogLevel.DEBUG, $"No Blocking timeout provided, using default blocking timeout {DEFAULT_BLOCKINGOUT_PERIOD.TotalMilliseconds}ms");
261273
}
262274

263275

0 commit comments

Comments
 (0)