@@ -2814,13 +2814,19 @@ class ContributesRemoteFeatureCodeGeneratorTest {
2814
2814
var rawState = testFeature.fooFeature().getRawStoredState()
2815
2815
assertNotEquals(emptyList<Cohort >(), rawState?.cohorts)
2816
2816
assertNull(rawState?.assignedCohort)
2817
+ assertFalse(testFeature.fooFeature().isEnrolled())
2818
+ assertFalse(testFeature.fooFeature().isEnrolledAndEnabled(CONTROL ))
2819
+ assertFalse(testFeature.fooFeature().isEnrolledAndEnabled(BLUE ))
2817
2820
2818
2821
// we call isEnabled() without cohort, cohort should not be assigned either
2819
2822
testFeature.fooFeature().isEnabled()
2820
2823
rawState = testFeature.fooFeature().getRawStoredState()
2821
2824
assertNotEquals(emptyList<Cohort >(), rawState?.cohorts)
2822
2825
assertNull(rawState?.assignedCohort)
2823
2826
assertNull(testFeature.fooFeature().getCohort())
2827
+ assertFalse(testFeature.fooFeature().isEnrolled())
2828
+ assertFalse(testFeature.fooFeature().isEnrolledAndEnabled(CONTROL ))
2829
+ assertFalse(testFeature.fooFeature().isEnrolledAndEnabled(BLUE ))
2824
2830
2825
2831
// we call isEnabled(cohort), then we should assign cohort
2826
2832
testFeature.fooFeature().isEnabled(BLUE )
@@ -2829,6 +2835,8 @@ class ContributesRemoteFeatureCodeGeneratorTest {
2829
2835
assertNotNull(rawState?.assignedCohort)
2830
2836
assertNotNull(testFeature.fooFeature().getCohort())
2831
2837
assertFalse(testFeature.fooFeature().isEnabled(CONTROL ))
2838
+ assertTrue(testFeature.fooFeature().isEnrolled())
2839
+ assertFalse(testFeature.fooFeature().isEnrolledAndEnabled(BLUE ))
2832
2840
}
2833
2841
2834
2842
@Test
@@ -2875,6 +2883,9 @@ class ContributesRemoteFeatureCodeGeneratorTest {
2875
2883
assertFalse(testFeature.fooFeature().isEnabled(BLUE ))
2876
2884
assertNotNull(testFeature.fooFeature().getRawStoredState()!! .assignedCohort)
2877
2885
assertNotNull(testFeature.fooFeature().getCohort())
2886
+ assertTrue(testFeature.fooFeature().isEnrolled())
2887
+ assertTrue(testFeature.fooFeature().isEnrolledAndEnabled(CONTROL ))
2888
+ assertFalse(testFeature.fooFeature().isEnrolledAndEnabled(BLUE ))
2878
2889
2879
2890
// remove blue cohort
2880
2891
assertTrue(
@@ -2940,6 +2951,9 @@ class ContributesRemoteFeatureCodeGeneratorTest {
2940
2951
assertNull(testFeature.fooFeature().getRawStoredState()!! .assignedCohort)
2941
2952
assertNull(testFeature.fooFeature().getCohort())
2942
2953
assertTrue(testFeature.fooFeature().isEnabled())
2954
+ assertFalse(testFeature.fooFeature().isEnrolled())
2955
+ assertFalse(testFeature.fooFeature().isEnrolledAndEnabled(CONTROL ))
2956
+ assertFalse(testFeature.fooFeature().isEnrolledAndEnabled(BLUE ))
2943
2957
}
2944
2958
2945
2959
@Test
@@ -2950,6 +2964,9 @@ class ContributesRemoteFeatureCodeGeneratorTest {
2950
2964
2951
2965
assertFalse(testFeature.fooFeature().isEnabled(CONTROL ))
2952
2966
assertFalse(testFeature.fooFeature().isEnabled(BLUE ))
2967
+ assertFalse(testFeature.fooFeature().isEnrolled())
2968
+ assertFalse(testFeature.fooFeature().isEnrolledAndEnabled(CONTROL ))
2969
+ assertFalse(testFeature.fooFeature().isEnrolledAndEnabled(BLUE ))
2953
2970
2954
2971
assertTrue(
2955
2972
privacyPlugin.store(
@@ -2987,6 +3004,9 @@ class ContributesRemoteFeatureCodeGeneratorTest {
2987
3004
2988
3005
assertTrue(testFeature.fooFeature().isEnabled(CONTROL ))
2989
3006
assertFalse(testFeature.fooFeature().isEnabled(BLUE ))
3007
+ assertTrue(testFeature.fooFeature().isEnrolled())
3008
+ assertTrue(testFeature.fooFeature().isEnrolledAndEnabled(CONTROL ))
3009
+ assertFalse(testFeature.fooFeature().isEnrolledAndEnabled(BLUE ))
2990
3010
2991
3011
assertTrue(
2992
3012
privacyPlugin.store(
@@ -3097,6 +3117,9 @@ class ContributesRemoteFeatureCodeGeneratorTest {
3097
3117
3098
3118
assertTrue(testFeature.fooFeature().isEnabled(CONTROL ))
3099
3119
assertFalse(testFeature.fooFeature().isEnabled(BLUE ))
3120
+ assertTrue(testFeature.fooFeature().isEnrolled())
3121
+ assertTrue(testFeature.fooFeature().isEnrolledAndEnabled(CONTROL ))
3122
+ assertFalse(testFeature.fooFeature().isEnrolledAndEnabled(BLUE ))
3100
3123
}
3101
3124
3102
3125
@Test
@@ -3332,6 +3355,9 @@ class ContributesRemoteFeatureCodeGeneratorTest {
3332
3355
3333
3356
assertTrue(testFeature.fooFeature().isEnabled(CONTROL ))
3334
3357
assertFalse(testFeature.fooFeature().isEnabled(BLUE ))
3358
+ assertTrue(testFeature.fooFeature().isEnrolled())
3359
+ assertTrue(testFeature.fooFeature().isEnrolledAndEnabled(CONTROL ))
3360
+ assertFalse(testFeature.fooFeature().isEnrolledAndEnabled(BLUE ))
3335
3361
3336
3362
// changing cohort targets should not change cohort assignment
3337
3363
assertTrue(
@@ -3374,6 +3400,9 @@ class ContributesRemoteFeatureCodeGeneratorTest {
3374
3400
)
3375
3401
assertTrue(testFeature.fooFeature().isEnabled(CONTROL ))
3376
3402
assertFalse(testFeature.fooFeature().isEnabled(BLUE ))
3403
+ assertTrue(testFeature.fooFeature().isEnrolled())
3404
+ assertTrue(testFeature.fooFeature().isEnrolledAndEnabled(CONTROL ))
3405
+ assertFalse(testFeature.fooFeature().isEnrolledAndEnabled(BLUE ))
3377
3406
3378
3407
// changing cohort weight should not change current assignment
3379
3408
assertTrue(
@@ -3517,6 +3546,54 @@ class ContributesRemoteFeatureCodeGeneratorTest {
3517
3546
assertEquals(now, parsedDate)
3518
3547
}
3519
3548
3549
+ @Test
3550
+ fun `test calling is enrolled and enabled does not enroll` () {
3551
+ val feature = generatedFeatureNewInstance()
3552
+
3553
+ val privacyPlugin = (feature as PrivacyFeaturePlugin )
3554
+
3555
+ assertTrue(
3556
+ privacyPlugin.store(
3557
+ " testFeature" ,
3558
+ """
3559
+ {
3560
+ "hash": "1",
3561
+ "state": "disabled",
3562
+ "features": {
3563
+ "fooFeature": {
3564
+ "state": "enabled",
3565
+ "rollout": {
3566
+ "steps": [
3567
+ {
3568
+ "percent": 100
3569
+ }
3570
+ ]
3571
+ },
3572
+ "cohorts": [
3573
+ {
3574
+ "name": "control",
3575
+ "weight": 1
3576
+ },
3577
+ {
3578
+ "name": "blue",
3579
+ "weight": 0
3580
+ }
3581
+ ]
3582
+ }
3583
+ }
3584
+ }
3585
+ """ .trimIndent(),
3586
+ ),
3587
+ )
3588
+
3589
+ assertFalse(testFeature.fooFeature().isEnrolledAndEnabled(CONTROL ))
3590
+ assertFalse(testFeature.fooFeature().isEnrolledAndEnabled(BLUE ))
3591
+ assertFalse(testFeature.fooFeature().isEnrolled())
3592
+ assertTrue(testFeature.fooFeature().isEnabled(CONTROL ))
3593
+ assertTrue(testFeature.fooFeature().isEnrolled())
3594
+ assertTrue(testFeature.fooFeature().isEnrolledAndEnabled(CONTROL ))
3595
+ }
3596
+
3520
3597
@Test
3521
3598
fun `test rollback cohort experiments` () {
3522
3599
val feature = generatedFeatureNewInstance()
@@ -3560,6 +3637,9 @@ class ContributesRemoteFeatureCodeGeneratorTest {
3560
3637
val rolloutThreshold = testFeature.fooFeature().getRawStoredState()?.rolloutThreshold!!
3561
3638
assertTrue(testFeature.fooFeature().isEnabled(CONTROL ))
3562
3639
assertFalse(testFeature.fooFeature().isEnabled(BLUE ))
3640
+ assertTrue(testFeature.fooFeature().isEnrolled())
3641
+ assertTrue(testFeature.fooFeature().isEnrolledAndEnabled(CONTROL ))
3642
+ assertFalse(testFeature.fooFeature().isEnrolledAndEnabled(BLUE ))
3563
3643
3564
3644
assertTrue(
3565
3645
privacyPlugin.store(
@@ -3597,6 +3677,9 @@ class ContributesRemoteFeatureCodeGeneratorTest {
3597
3677
3598
3678
assertFalse(testFeature.fooFeature().isEnabled(CONTROL ))
3599
3679
assertFalse(testFeature.fooFeature().isEnabled(BLUE ))
3680
+ assertTrue(testFeature.fooFeature().isEnrolled())
3681
+ assertFalse(testFeature.fooFeature().isEnrolledAndEnabled(CONTROL ))
3682
+ assertFalse(testFeature.fooFeature().isEnrolledAndEnabled(BLUE ))
3600
3683
}
3601
3684
3602
3685
@Test
0 commit comments