Skip to content

Commit 3c8f821

Browse files
[FSSDK-11837] legacy api adjustment with key null support in deccide
1 parent 8dbaeb1 commit 3c8f821

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

OptimizelySDK.Tests/OptimizelyUserContextTest.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -405,6 +405,23 @@ public void DecideInvalidFlagKey()
405405
Assert.IsTrue(TestData.CompareObjects(decision, decisionExpected));
406406
}
407407

408+
[Test]
409+
public void DecideNullFlagKey()
410+
{
411+
var user = Optimizely.CreateUserContext(UserID);
412+
user.SetAttribute("browser_type", "chrome");
413+
414+
var decisionExpected = OptimizelyDecision.NewErrorDecision(
415+
null,
416+
user,
417+
DecisionMessage.Reason(DecisionMessage.FLAG_KEY_INVALID, "null"),
418+
ErrorHandlerMock.Object,
419+
LoggerMock.Object);
420+
var decision = user.Decide(null);
421+
422+
Assert.IsTrue(TestData.CompareObjects(decision, decisionExpected));
423+
}
424+
408425
[Test]
409426
public void DecideWhenConfigIsNull()
410427
{

OptimizelySDK/Optimizely.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -870,6 +870,13 @@ OptimizelyDecideOption[] options
870870
ErrorHandler, Logger);
871871
}
872872

873+
if (key == null)
874+
{
875+
return OptimizelyDecision.NewErrorDecision(key, user,
876+
DecisionMessage.Reason(DecisionMessage.FLAG_KEY_INVALID, "null"),
877+
ErrorHandler, Logger);
878+
}
879+
873880
var allOptions = GetAllOptions(options).
874881
Where(opt => opt != OptimizelyDecideOption.ENABLED_FLAGS_ONLY).
875882
ToArray();
@@ -930,6 +937,7 @@ internal Dictionary<string, OptimizelyDecision> DecideForKeys(OptimizelyUserCont
930937
foreach (var key in keys)
931938
{
932939
var flag = projectConfig.GetFeatureFlagFromKey(key);
940+
933941
if (flag.Key == null)
934942
{
935943
decisionDictionary.Add(key,

0 commit comments

Comments
 (0)