diff --git a/core-api/src/main/java/com/optimizely/ab/Optimizely.java b/core-api/src/main/java/com/optimizely/ab/Optimizely.java index 0de0c591b..3907345bc 100644 --- a/core-api/src/main/java/com/optimizely/ab/Optimizely.java +++ b/core-api/src/main/java/com/optimizely/ab/Optimizely.java @@ -609,7 +609,7 @@ public List getEnabledFeatures(@Nonnull String userId,@Nonnull Map= Integer.parseInt(ProjectConfig.Version.V4.toString())); + + Optimizely spyOptimizely = spy(Optimizely.builder(validDatafile, mockEventHandler) + .withConfig(validProjectConfig) + .build()); + ArrayList featureFlagsSortedList = (ArrayList) spyOptimizely.getEnabledFeatures(genericUserId, + new HashMap()); + assertFalse(featureFlagsSortedList.isEmpty()); + + //To get Unsorted list directly from project config + List unSortedFeaturesListFromProjectConfig = new ArrayList(); + for (FeatureFlag featureFlag : spyOptimizely.projectConfig.getFeatureFlags()){ + String featureKey = featureFlag.getKey(); + unSortedFeaturesListFromProjectConfig.add(featureKey); + } + + //unSortedFeaturesListFromProjectConfig will retain only the elements which are also contained in featureFlagsSortedList. + unSortedFeaturesListFromProjectConfig.retainAll(featureFlagsSortedList); + assertFalse(Ordering.natural().isOrdered(unSortedFeaturesListFromProjectConfig)); + + assertTrue(Ordering.natural().isOrdered(featureFlagsSortedList)); + } /** * Verify {@link Optimizely#getEnabledFeatures(String, Map)} calls into