Skip to content

Commit bc80d72

Browse files
[FSSDK-9055] fix: add config check in odp methods (#345)
* add config check in odp methods * add unit tests * lint fix * Revert "lint fix" This reverts commit 12e9677. * lint fix * fix file encoding * fix tests
1 parent d9a6e9a commit bc80d72

File tree

2 files changed

+63
-0
lines changed

2 files changed

+63
-0
lines changed

OptimizelySDK.Tests/OptimizelyTest.cs

+39
Original file line numberDiff line numberDiff line change
@@ -6183,6 +6183,16 @@ public void TestSendOdpEventNullAction()
61836183
optly.Dispose();
61846184
}
61856185

6186+
[Test]
6187+
public void TestSendOdpEventInvalidOptimizelyObject()
6188+
{
6189+
var optly = new Optimizely("Random datafile", null, LoggerMock.Object);
6190+
optly.SendOdpEvent("some_action", new Dictionary<string, string>() { { "some_key", "some_value" } }, "some_event");
6191+
LoggerMock.Verify(
6192+
l => l.Log(LogLevel.ERROR, "Datafile has invalid format. Failing 'SendOdpEvent'."),
6193+
Times.Once);
6194+
}
6195+
61866196
[Test]
61876197
public void TestSendOdpEventEmptyStringAction()
61886198
{
@@ -6193,6 +6203,7 @@ public void TestSendOdpEventEmptyStringAction()
61936203

61946204
optly.Dispose();
61956205
}
6206+
61966207
[Test]
61976208
public void TestSendOdpEventNullType()
61986209
{
@@ -6226,5 +6237,33 @@ public void TestSendOdpEventEmptyStringType()
62266237
}
62276238

62286239
#endregion Test SendOdpEvent
6240+
6241+
#region Test FetchQualifiedSegments
6242+
6243+
[Test]
6244+
public void TestFetchQualifiedSegmentsInvalidOptimizelyObject()
6245+
{
6246+
var optly = new Optimizely("Random datafile", null, LoggerMock.Object);
6247+
optly.FetchQualifiedSegments("some_user", null);
6248+
LoggerMock.Verify(
6249+
l => l.Log(LogLevel.ERROR, "Datafile has invalid format. Failing 'FetchQualifiedSegments'."),
6250+
Times.Once);
6251+
}
6252+
6253+
#endregion Test FetchQualifiedSegments
6254+
6255+
#region Test IdentifyUser
6256+
6257+
[Test]
6258+
public void TestIdentifyUserInvalidOptimizelyObject()
6259+
{
6260+
var optly = new Optimizely("Random datafile", null, LoggerMock.Object);
6261+
optly.IdentifyUser("some_user");
6262+
LoggerMock.Verify(
6263+
l => l.Log(LogLevel.ERROR, "Datafile has invalid format. Failing 'IdentifyUser'."),
6264+
Times.Once);
6265+
}
6266+
6267+
#endregion Test IdentifyUser
62296268
}
62306269
}

OptimizelySDK/Optimizely.cs

+24
Original file line numberDiff line numberDiff line change
@@ -1339,6 +1339,14 @@ internal string[] FetchQualifiedSegments(string userId,
13391339
List<OdpSegmentOption> segmentOptions
13401340
)
13411341
{
1342+
var config = ProjectConfigManager?.GetConfig();
1343+
1344+
if (config == null)
1345+
{
1346+
Logger.Log(LogLevel.ERROR, "Datafile has invalid format. Failing 'FetchQualifiedSegments'.");
1347+
return null;
1348+
}
1349+
13421350
return OdpManager?.FetchQualifiedSegments(userId, segmentOptions);
13431351
}
13441352

@@ -1348,6 +1356,14 @@ List<OdpSegmentOption> segmentOptions
13481356
/// <param name="userId">FS User ID to send</param>
13491357
internal void IdentifyUser(string userId)
13501358
{
1359+
var config = ProjectConfigManager?.GetConfig();
1360+
1361+
if (config == null)
1362+
{
1363+
Logger.Log(LogLevel.ERROR, "Datafile has invalid format. Failing 'IdentifyUser'.");
1364+
return;
1365+
}
1366+
13511367
OdpManager?.IdentifyUser(userId);
13521368
}
13531369

@@ -1373,6 +1389,14 @@ public void SendOdpEvent(string action, Dictionary<string, string> identifiers,
13731389
type = Constants.ODP_EVENT_TYPE;
13741390
}
13751391

1392+
var config = ProjectConfigManager?.GetConfig();
1393+
1394+
if (config == null)
1395+
{
1396+
Logger.Log(LogLevel.ERROR, "Datafile has invalid format. Failing 'SendOdpEvent'.");
1397+
return;
1398+
}
1399+
13761400
OdpManager?.SendEvent(type, action, identifiers, data);
13771401
}
13781402
#endif

0 commit comments

Comments
 (0)