Skip to content

Commit d8068e2

Browse files
fix: correct visibility and initialization of constants in ValidProjectConfigV4
- Change visibility of FEATURE_FLAG_BOOLEAN_FEATURE to public - Change visibility of Variation VARIATION_HOLDOUT_VARIATION_OFF to public - Update entityIds in HOLDOUT_BASIC_HOLDOUT and holdouts-project-config.json to use "$opt_dummy_variation_id" instead of hardcoded values
1 parent c68b096 commit d8068e2

File tree

3 files changed

+38
-13
lines changed

3 files changed

+38
-13
lines changed

core-api/src/test/java/com/optimizely/ab/bucketing/DecisionServiceTest.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1228,4 +1228,29 @@ public void setForcedVariationMultipleUsers() {
12281228
assertNull(decisionService.getForcedVariation(experiment2, "testUser2").getResult());
12291229
}
12301230

1231+
@Test
1232+
public void getVariationForFeatureReturnHoldoutDecisionForGlobalHoldout() {
1233+
ProjectConfig holdoutProjectConfig = generateValidProjectConfigV4_holdout();
1234+
1235+
Bucketer mockBucketer = new Bucketer();
1236+
1237+
DecisionService decisionService = new DecisionService(mockBucketer, mockErrorHandler, null);
1238+
1239+
Map<String, Object> attributes = new HashMap<>();
1240+
attributes.put("$opt_bucketing_id", "ppid160000");
1241+
FeatureDecision featureDecision = decisionService.getVariationForFeature(
1242+
FEATURE_FLAG_BOOLEAN_FEATURE,
1243+
optimizely.createUserContext("user123", attributes),
1244+
holdoutProjectConfig
1245+
).getResult();
1246+
1247+
assertEquals(VARIATION_HOLDOUT_VARIATION_OFF, featureDecision.variation);
1248+
assertEquals(FeatureDecision.DecisionSource.HOLDOUT, featureDecision.decisionSource);
1249+
1250+
logbackVerifier.expectMessage(Level.INFO, "User (user123) is in variation (ho_off_key) of holdout (basic_holdout).");
1251+
}
1252+
1253+
1254+
1255+
12311256
}

core-api/src/test/java/com/optimizely/ab/config/ValidProjectConfigV4.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ public class ValidProjectConfigV4 {
235235
// features
236236
private static final String FEATURE_BOOLEAN_FEATURE_ID = "4195505407";
237237
private static final String FEATURE_BOOLEAN_FEATURE_KEY = "boolean_feature";
238-
private static final FeatureFlag FEATURE_FLAG_BOOLEAN_FEATURE = new FeatureFlag(
238+
public static final FeatureFlag FEATURE_FLAG_BOOLEAN_FEATURE = new FeatureFlag(
239239
FEATURE_BOOLEAN_FEATURE_ID,
240240
FEATURE_BOOLEAN_FEATURE_KEY,
241241
"",
@@ -490,7 +490,7 @@ public class ValidProjectConfigV4 {
490490
VARIATION_BASIC_EXPERIMENT_VARIATION_A_KEY,
491491
Collections.<FeatureVariableUsageInstance>emptyList()
492492
);
493-
private static final Variation VARIATION_HOLDOUT_VARIATION_OFF = new Variation(
493+
public static final Variation VARIATION_HOLDOUT_VARIATION_OFF = new Variation(
494494
"$opt_dummy_variation_id",
495495
"ho_off_key",
496496
false
@@ -536,7 +536,7 @@ public class ValidProjectConfigV4 {
536536
)
537537
)
538538
);
539-
private static final Holdout HOLDOUT_BASIC_HOLDOUT = new Holdout(
539+
public static final Holdout HOLDOUT_BASIC_HOLDOUT = new Holdout(
540540
"10075323428",
541541
"basic_holdout",
542542
Holdout.HoldoutStatus.RUNNING.toString(),
@@ -547,7 +547,7 @@ public class ValidProjectConfigV4 {
547547
),
548548
DatafileProjectConfigTestUtils.createListOfObjects(
549549
new TrafficAllocation(
550-
"327323",
550+
"$opt_dummy_variation_id",
551551
500
552552
)
553553
),
@@ -566,7 +566,7 @@ public class ValidProjectConfigV4 {
566566
),
567567
DatafileProjectConfigTestUtils.createListOfObjects(
568568
new TrafficAllocation(
569-
"327323",
569+
"$opt_dummy_variation_id",
570570
0
571571
)
572572
),
@@ -585,7 +585,7 @@ public class ValidProjectConfigV4 {
585585
),
586586
DatafileProjectConfigTestUtils.createListOfObjects(
587587
new TrafficAllocation(
588-
"327323",
588+
"$opt_dummy_variation_id",
589589
2000
590590
)
591591
),
@@ -608,7 +608,7 @@ public class ValidProjectConfigV4 {
608608
),
609609
DatafileProjectConfigTestUtils.createListOfObjects(
610610
new TrafficAllocation(
611-
"327323",
611+
"$opt_dummy_variation_id",
612612
1500
613613
)
614614
),
@@ -636,7 +636,7 @@ public class ValidProjectConfigV4 {
636636
),
637637
DatafileProjectConfigTestUtils.createListOfObjects(
638638
new TrafficAllocation(
639-
"327323",
639+
"$opt_dummy_variation_id",
640640
1000
641641
)
642642
),

core-api/src/test/resources/config/holdouts-project-config.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -483,7 +483,7 @@
483483
"trafficAllocation": [
484484
{
485485
"endOfRange": 0,
486-
"entityId": "327323"
486+
"entityId": "$opt_dummy_variation_id"
487487
}
488488
],
489489
"variations": [
@@ -502,7 +502,7 @@
502502
"trafficAllocation": [
503503
{
504504
"endOfRange": 2000,
505-
"entityId": "327323"
505+
"entityId": "$opt_dummy_variation_id"
506506
}
507507
],
508508
"variations": [
@@ -526,7 +526,7 @@
526526
"trafficAllocation": [
527527
{
528528
"endOfRange": 500,
529-
"entityId": "327323"
529+
"entityId": "$opt_dummy_variation_id"
530530
}
531531
],
532532
"variations": [
@@ -544,7 +544,7 @@
544544
"trafficAllocation": [
545545
{
546546
"endOfRange": 1000,
547-
"entityId": "327323"
547+
"entityId": "$opt_dummy_variation_id"
548548
}
549549
],
550550
"variations": [
@@ -565,7 +565,7 @@
565565
"trafficAllocation": [
566566
{
567567
"endOfRange": 1500,
568-
"entityId": "327323"
568+
"entityId": "$opt_dummy_variation_id"
569569
}
570570
],
571571
"variations": [

0 commit comments

Comments
 (0)