@@ -1562,6 +1562,49 @@ public void TestIsFeatureEnabledGivenVariationNotFoundInFeatureExperimentButInRo
15621562 LoggerMock . Verify ( l => l . Log ( LogLevel . INFO , "Feature flag \" boolean_single_variable_feature\" is enabled for user \" testUserId\" ." ) , Times . Once ) ;
15631563 }
15641564
1565+ public void TestIsFeatureEnabledWithFeatureEnabledPropertyGivenFeatureExperiment ( )
1566+ {
1567+ var userId = "testUserId2" ;
1568+ var featureKey = "double_single_variable_feature" ;
1569+ var experiment = Config . GetExperimentFromKey ( "test_experiment_double_feature" ) ;
1570+ var featureEnabledTrue = Config . GetVariationFromKey ( "test_experiment_double_feature" , "control" ) ;
1571+ var featureEnabledFalse = Config . GetVariationFromKey ( "test_experiment_double_feature" , "variation" ) ;
1572+ var featureFlag = Config . GetFeatureFlagFromKey ( featureKey ) ;
1573+ var decisionTrue = new FeatureDecision ( experiment , featureEnabledTrue , FeatureDecision . DECISION_SOURCE_EXPERIMENT ) ;
1574+ var decisionFalse = new FeatureDecision ( experiment , featureEnabledFalse , FeatureDecision . DECISION_SOURCE_EXPERIMENT ) ;
1575+
1576+ DecisionServiceMock . Setup ( ds => ds . GetVariationForFeature ( featureFlag , TestUserId , null ) ) . Returns ( decisionTrue ) ;
1577+ DecisionServiceMock . Setup ( ds => ds . GetVariationForFeature ( featureFlag , userId , null ) ) . Returns ( decisionFalse ) ;
1578+
1579+ var optly = Helper . CreatePrivateOptimizely ( ) ;
1580+ optly . SetFieldOrProperty ( "DecisionService" , DecisionServiceMock . Object ) ;
1581+
1582+ // Verify that IsFeatureEnabled returns true when feature experiment variation's 'featureEnabled' property is true.
1583+ bool result = ( bool ) optly . Invoke ( "IsFeatureEnabled" , featureKey , TestUserId , null ) ;
1584+ Assert . True ( result ) ;
1585+
1586+ // Verify that IsFeatureEnabled returns false when feature experiment variation's 'featureEnabled' property is false.
1587+ result = ( bool ) optly . Invoke ( "IsFeatureEnabled" , featureKey , userId , null ) ;
1588+ Assert . False ( result ) ;
1589+ }
1590+
1591+ public void TestIsFeatureEnabledWithFeatureEnabledPropertyGivenRolloutRule ( )
1592+ {
1593+ var featureKey = "boolean_single_variable_feature" ;
1594+ var featureFlag = Config . GetFeatureFlagFromKey ( featureKey ) ;
1595+
1596+ // Verify that IsFeatureEnabled returns true when user is bucketed into the rollout rule's variation.
1597+ Assert . True ( Optimizely . IsFeatureEnabled ( "boolean_single_variable_feature" , TestUserId ) ) ;
1598+
1599+ DecisionServiceMock . Setup ( ds => ds . GetVariationForFeature ( featureFlag , TestUserId , null ) ) . Returns < FeatureDecision > ( null ) ;
1600+ var optly = Helper . CreatePrivateOptimizely ( ) ;
1601+ optly . SetFieldOrProperty ( "DecisionService" , DecisionServiceMock . Object ) ;
1602+
1603+ // Verify that IsFeatureEnabled returns false when user does not get bucketed into the rollout rule's variation.
1604+ bool result = ( bool ) optly . Invoke ( "IsFeatureEnabled" , featureKey , TestUserId , null ) ;
1605+ Assert . False ( result ) ;
1606+ }
1607+
15651608 #endregion // Test IsFeatureEnabled method
15661609
15671610 #region Test NotificationCenter
@@ -1587,8 +1630,8 @@ public void TestActivateListenerWithAttributes()
15871630
15881631 public void TestActivateListener ( UserAttributes userAttributes )
15891632 {
1590- var experimentKey = "test_experiment " ;
1591- var variationKey = "control " ;
1633+ var experimentKey = "group_experiment_1 " ;
1634+ var variationKey = "group_exp_1_var_1 " ;
15921635 var featureKey = "boolean_feature" ;
15931636 var experiment = Config . GetExperimentFromKey ( experimentKey ) ;
15941637 var variation = Config . GetVariationFromKey ( experimentKey , variationKey ) ;
@@ -1612,7 +1655,6 @@ public void TestActivateListener(UserAttributes userAttributes)
16121655 var optly = Helper . CreatePrivateOptimizely ( ) ;
16131656 var optStronglyTyped = optly . GetObject ( ) as Optimizely ;
16141657
1615-
16161658 // Adding notification listeners.
16171659 var notificationType = NotificationCenter . NotificationType . Activate ;
16181660 optStronglyTyped . NotificationCenter . AddNotification ( notificationType , NotificationCallbackMock . Object . TestActivateCallback ) ;
0 commit comments