Skip to content

Commit e525e8c

Browse files
default error handler shouldnt raise exception (#260)
1 parent 8b12cd7 commit e525e8c

File tree

2 files changed

+31
-3
lines changed

2 files changed

+31
-3
lines changed

OptimizelySDK.Tests/ConfigTest/HttpProjectConfigManagerTest.cs

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2019-2020, Optimizely
2+
* Copyright 2019-2021, Optimizely
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -161,7 +161,35 @@ public void TestHttpConfigManagerRetreiveProjectConfigByFormat()
161161
It.Is<System.Net.Http.HttpRequestMessage>(requestMessage =>
162162
requestMessage.RequestUri.ToString() == "https://cdn.optimizely.com/json/10192104166.json"
163163
)));
164+
164165
Assert.IsNotNull(httpManager.GetConfig());
166+
167+
LoggerMock.Verify(_ => _.Log(LogLevel.DEBUG, "Making datafile request to url \"https://cdn.optimizely.com/json/10192104166.json\""));
168+
httpManager.Dispose();
169+
}
170+
171+
[Test]
172+
public void TestHttpProjectConfigManagerDoesntRaiseExceptionForDefaultErrorHandler()
173+
{
174+
var t = MockSendAsync(TestData.Datafile);
175+
176+
HttpProjectConfigManager httpManager = new HttpProjectConfigManager.Builder()
177+
.WithSdkKey("10192104166")
178+
.WithFormat("https://cdn.optimizely.com/json/{0}.json")
179+
.WithLogger(LoggerMock.Object)
180+
.WithPollingInterval(TimeSpan.FromMilliseconds(1000))
181+
.WithBlockingTimeoutPeriod(TimeSpan.FromMilliseconds(500))
182+
.WithStartByDefault()
183+
.Build(true);
184+
185+
t.Wait(1000);
186+
HttpClientMock.Verify(_ => _.SendAsync(
187+
It.Is<System.Net.Http.HttpRequestMessage>(requestMessage =>
188+
requestMessage.RequestUri.ToString() == "https://cdn.optimizely.com/json/10192104166.json"
189+
)));
190+
var datafileConfig = httpManager.GetConfig();
191+
Assert.IsNotNull(datafileConfig);
192+
Assert.IsNull(datafileConfig.GetExperimentFromKey("project_config_not_valid").Key);
165193
LoggerMock.Verify(_ => _.Log(LogLevel.DEBUG, "Making datafile request to url \"https://cdn.optimizely.com/json/10192104166.json\""));
166194
httpManager.Dispose();
167195
}

OptimizelySDK/Config/HttpProjectConfigManager.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2019-2020, Optimizely
2+
* Copyright 2019-2021, Optimizely
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -301,7 +301,7 @@ public HttpProjectConfigManager Build(bool defer)
301301
Logger = new DefaultLogger();
302302

303303
if (ErrorHandler == null)
304-
ErrorHandler = new DefaultErrorHandler();
304+
ErrorHandler = new DefaultErrorHandler(Logger, false);
305305

306306
if (string.IsNullOrEmpty(Format)) {
307307

0 commit comments

Comments
 (0)