Skip to content

Commit 2cb87f1

Browse files
getenabledfeatures must return sorted features. (#64)
1 parent c32cca3 commit 2cb87f1

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

OptimizelySDK.Tests/OptimizelyTest.cs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1811,6 +1811,36 @@ public void TestGetEnabledFeaturesWithSomeFeaturesEnabledForUser()
18111811
Array.ForEach(notEnabledFeatures, nef => CollectionAssert.DoesNotContain(actualFeaturesList, nef));
18121812
}
18131813

1814+
[Test]
1815+
public void TestGetEnabledFeaturesReturnsSortedList()
1816+
{
1817+
string[] unsortedFeaturesList =
1818+
{
1819+
"double_single_variable_feature",
1820+
"boolean_feature",
1821+
"string_single_variable_feature",
1822+
"multi_variate_feature",
1823+
"empty_feature",
1824+
"boolean_single_variable_feature"
1825+
};
1826+
string[] sortedFeaturesList =
1827+
{
1828+
"boolean_feature",
1829+
"boolean_single_variable_feature",
1830+
"double_single_variable_feature",
1831+
"empty_feature",
1832+
"multi_variate_feature",
1833+
"string_single_variable_feature",
1834+
};
1835+
1836+
OptimizelyMock.Setup(om => om.IsFeatureEnabled(It.IsIn<string>(unsortedFeaturesList), TestUserId,
1837+
It.IsAny<UserAttributes>())).Returns(true);
1838+
1839+
// Verify that returned list in sorterd in ascending order.
1840+
var actualFeaturesList = OptimizelyMock.Object.GetEnabledFeatures(TestUserId, null);
1841+
CollectionAssert.AreEqual(sortedFeaturesList, actualFeaturesList);
1842+
}
1843+
18141844
#endregion // Test GetEnabledFeatures
18151845
}
18161846
}

OptimizelySDK/Optimizely.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -591,6 +591,8 @@ public List<string> GetEnabledFeatures(string userId, UserAttributes userAttribu
591591
enabledFeaturesList.Add(featureKey);
592592
}
593593

594+
enabledFeaturesList.Sort();
595+
594596
return enabledFeaturesList;
595597
}
596598

0 commit comments

Comments
 (0)