@@ -1156,12 +1156,12 @@ public void TestGetFeatureVariableBooleanReturnTypecastedValue()
1156
1156
OptimizelyMock . Setup ( om => om . GetFeatureVariableValueForType ( It . IsAny < string > ( ) , variableKeyNonBoolean , It . IsAny < string > ( ) ,
1157
1157
It . IsAny < UserAttributes > ( ) , featureVariableType ) ) . Returns ( "non_boolean_value" ) ;
1158
1158
1159
- Assert . AreEqual ( null , OptimizelyMock . Object . GetFeatureVariableBoolean ( featureKey , variableKeyNonBoolean , TestUserId , null ) ) ;
1159
+ Assert . Null ( OptimizelyMock . Object . GetFeatureVariableBoolean ( featureKey , variableKeyNonBoolean , TestUserId , null ) ) ;
1160
1160
LoggerMock . Verify ( l => l . Log ( LogLevel . ERROR , $@ "Unable to cast variable value ""non_boolean_value"" to type ""{ featureVariableType } "".") ) ;
1161
1161
1162
1162
OptimizelyMock . Setup ( om => om . GetFeatureVariableValueForType ( It . IsAny < string > ( ) , variableKeyNull , It . IsAny < string > ( ) ,
1163
1163
It . IsAny < UserAttributes > ( ) , featureVariableType ) ) . Returns < string > ( null ) ;
1164
- Assert . AreEqual ( null , OptimizelyMock . Object . GetFeatureVariableBoolean ( featureKey , variableKeyNull , TestUserId , null ) ) ;
1164
+ Assert . Null ( OptimizelyMock . Object . GetFeatureVariableBoolean ( featureKey , variableKeyNull , TestUserId , null ) ) ;
1165
1165
}
1166
1166
1167
1167
[ Test ]
@@ -1185,12 +1185,12 @@ public void TestGetFeatureVariableDoubleReturnTypecastedValue()
1185
1185
OptimizelyMock . Setup ( om => om . GetFeatureVariableValueForType ( It . IsAny < string > ( ) , variableKeyNonDouble , It . IsAny < string > ( ) ,
1186
1186
It . IsAny < UserAttributes > ( ) , featureVariableType ) ) . Returns ( "non_double_value" ) ;
1187
1187
1188
- Assert . AreEqual ( null , OptimizelyMock . Object . GetFeatureVariableDouble ( featureKey , variableKeyNonDouble , TestUserId , null ) ) ;
1188
+ Assert . Null ( OptimizelyMock . Object . GetFeatureVariableDouble ( featureKey , variableKeyNonDouble , TestUserId , null ) ) ;
1189
1189
LoggerMock . Verify ( l => l . Log ( LogLevel . ERROR , $@ "Unable to cast variable value ""non_double_value"" to type ""{ featureVariableType } "".") ) ;
1190
1190
1191
1191
OptimizelyMock . Setup ( om => om . GetFeatureVariableValueForType ( It . IsAny < string > ( ) , variableKeyNull , It . IsAny < string > ( ) ,
1192
1192
It . IsAny < UserAttributes > ( ) , featureVariableType ) ) . Returns < string > ( null ) ;
1193
- Assert . AreEqual ( null , OptimizelyMock . Object . GetFeatureVariableDouble ( featureKey , variableKeyNull , TestUserId , null ) ) ;
1193
+ Assert . Null ( OptimizelyMock . Object . GetFeatureVariableDouble ( featureKey , variableKeyNull , TestUserId , null ) ) ;
1194
1194
}
1195
1195
1196
1196
[ Test ]
@@ -1210,18 +1210,18 @@ public void TestGetFeatureVariableIntegerReturnTypecastedValue()
1210
1210
OptimizelyMock . Setup ( om => om . GetFeatureVariableValueForType ( It . IsAny < string > ( ) , variableKeyDouble , It . IsAny < string > ( ) ,
1211
1211
It . IsAny < UserAttributes > ( ) , featureVariableType ) ) . Returns ( "100.45" ) ;
1212
1212
1213
- Assert . AreEqual ( null , OptimizelyMock . Object . GetFeatureVariableInteger ( featureKey , variableKeyDouble , TestUserId , null ) ) ;
1213
+ Assert . Null ( OptimizelyMock . Object . GetFeatureVariableInteger ( featureKey , variableKeyDouble , TestUserId , null ) ) ;
1214
1214
LoggerMock . Verify ( l => l . Log ( LogLevel . ERROR , $@ "Unable to cast variable value ""100.45"" to type ""{ featureVariableType } "".") ) ;
1215
1215
1216
1216
OptimizelyMock . Setup ( om => om . GetFeatureVariableValueForType ( It . IsAny < string > ( ) , variableNonInt , It . IsAny < string > ( ) ,
1217
1217
It . IsAny < UserAttributes > ( ) , featureVariableType ) ) . Returns ( "non_integer_value" ) ;
1218
1218
1219
- Assert . AreEqual ( null , OptimizelyMock . Object . GetFeatureVariableInteger ( featureKey , variableNonInt , TestUserId , null ) ) ;
1219
+ Assert . Null ( OptimizelyMock . Object . GetFeatureVariableInteger ( featureKey , variableNonInt , TestUserId , null ) ) ;
1220
1220
LoggerMock . Verify ( l => l . Log ( LogLevel . ERROR , $@ "Unable to cast variable value ""non_integer_value"" to type ""{ featureVariableType } "".") ) ;
1221
1221
1222
1222
OptimizelyMock . Setup ( om => om . GetFeatureVariableValueForType ( It . IsAny < string > ( ) , variableKeyNull , It . IsAny < string > ( ) ,
1223
1223
It . IsAny < UserAttributes > ( ) , featureVariableType ) ) . Returns < string > ( null ) ;
1224
- Assert . AreEqual ( null , OptimizelyMock . Object . GetFeatureVariableInteger ( featureKey , variableKeyNull , TestUserId , null ) ) ;
1224
+ Assert . Null ( OptimizelyMock . Object . GetFeatureVariableInteger ( featureKey , variableKeyNull , TestUserId , null ) ) ;
1225
1225
}
1226
1226
1227
1227
[ Test ]
@@ -1243,7 +1243,7 @@ public void TestGetFeatureVariableStringReturnTypecastedValue()
1243
1243
1244
1244
OptimizelyMock . Setup ( om => om . GetFeatureVariableValueForType ( It . IsAny < string > ( ) , variableKeyNull , It . IsAny < string > ( ) ,
1245
1245
It . IsAny < UserAttributes > ( ) , featureVariableType ) ) . Returns < string > ( null ) ;
1246
- Assert . AreEqual ( null , OptimizelyMock . Object . GetFeatureVariableString ( featureKey , variableKeyNull , TestUserId , null ) ) ;
1246
+ Assert . Null ( OptimizelyMock . Object . GetFeatureVariableString ( featureKey , variableKeyNull , TestUserId , null ) ) ;
1247
1247
}
1248
1248
1249
1249
#endregion // Test GetFeatureVariable<Type> TypeCasting
@@ -1325,7 +1325,7 @@ public void TestGetFeatureVariableValueForTypeGivenFeatureFlagIsNotEnabledForUse
1325
1325
var variableType = FeatureVariable . VariableType . DOUBLE ;
1326
1326
var expectedValue = "14.99" ;
1327
1327
1328
- DecisionServiceMock . Setup ( ds => ds . GetVariationForFeature ( featureFlag , TestUserId , null ) ) . Returns < Variation > ( null ) ;
1328
+ DecisionServiceMock . Setup ( ds => ds . GetVariationForFeature ( featureFlag , TestUserId , null ) ) . Returns < FeatureDecision > ( null ) ;
1329
1329
1330
1330
var optly = Helper . CreatePrivateOptimizely ( ) ;
1331
1331
optly . SetFieldOrProperty ( "DecisionService" , DecisionServiceMock . Object ) ;
@@ -1344,13 +1344,15 @@ public void TestGetFeatureVariableValueForTypeGivenFeatureFlagIsEnabledForUserAn
1344
1344
{
1345
1345
var featureKey = "double_single_variable_feature" ;
1346
1346
var featureFlag = Config . GetFeatureFlagFromKey ( "double_single_variable_feature" ) ;
1347
+ var experiment = Config . GetExperimentFromKey ( "test_experiment_integer_feature" ) ;
1347
1348
var differentVariation = Config . GetVariationFromKey ( "test_experiment_integer_feature" , "control" ) ;
1349
+ var expectedDecision = new FeatureDecision ( experiment . Id , differentVariation . Id , FeatureDecision . DECISION_SOURCE_EXPERIMENT ) ;
1348
1350
var variableKey = "double_variable" ;
1349
1351
var variableType = FeatureVariable . VariableType . DOUBLE ;
1350
1352
var expectedValue = "14.99" ;
1351
1353
1352
1354
// Mock GetVariationForFeature method to return variation of different feature.
1353
- DecisionServiceMock . Setup ( ds => ds . GetVariationForFeature ( featureFlag , TestUserId , null ) ) . Returns ( differentVariation ) ;
1355
+ DecisionServiceMock . Setup ( ds => ds . GetVariationForFeature ( featureFlag , TestUserId , null ) ) . Returns ( expectedDecision ) ;
1354
1356
1355
1357
var optly = Helper . CreatePrivateOptimizely ( ) ;
1356
1358
optly . SetFieldOrProperty ( "DecisionService" , DecisionServiceMock . Object ) ;
@@ -1372,9 +1374,11 @@ public void TestGetFeatureVariableValueForTypeGivenFeatureFlagIsEnabledForUserAn
1372
1374
var variableKey = "double_variable" ;
1373
1375
var variableType = FeatureVariable . VariableType . DOUBLE ;
1374
1376
var expectedValue = "42.42" ;
1375
-
1377
+ var experiment = Config . GetExperimentFromKey ( "test_experiment_double_feature" ) ;
1376
1378
var variation = Config . GetVariationFromKey ( "test_experiment_double_feature" , "control" ) ;
1377
- DecisionServiceMock . Setup ( ds => ds . GetVariationForFeature ( featureFlag , TestUserId , null ) ) . Returns ( variation ) ;
1379
+ var decision = new FeatureDecision ( experiment . Id , variation . Id , FeatureDecision . DECISION_SOURCE_EXPERIMENT ) ;
1380
+
1381
+ DecisionServiceMock . Setup ( ds => ds . GetVariationForFeature ( featureFlag , TestUserId , null ) ) . Returns ( decision ) ;
1378
1382
1379
1383
var optly = Helper . CreatePrivateOptimizely ( ) ;
1380
1384
optly . SetFieldOrProperty ( "DecisionService" , DecisionServiceMock . Object ) ;
@@ -1442,7 +1446,7 @@ public void TestIsFeatureEnabledGivenFeatureFlagIsNotEnabledForUser()
1442
1446
var featureKey = "double_single_variable_feature" ;
1443
1447
var featureFlag = Config . GetFeatureFlagFromKey ( "double_single_variable_feature" ) ;
1444
1448
1445
- DecisionServiceMock . Setup ( ds => ds . GetVariationForFeature ( featureFlag , TestUserId , null ) ) . Returns < Variation > ( null ) ;
1449
+ DecisionServiceMock . Setup ( ds => ds . GetVariationForFeature ( featureFlag , TestUserId , null ) ) . Returns < FeatureDecision > ( null ) ;
1446
1450
1447
1451
var optly = Helper . CreatePrivateOptimizely ( ) ;
1448
1452
optly . SetFieldOrProperty ( "DecisionService" , DecisionServiceMock . Object ) ;
@@ -1464,8 +1468,9 @@ public void TestIsFeatureEnabledGivenFeatureFlagIsEnabledAndUserIsNotBeingExperi
1464
1468
var experiment = rollout . Experiments [ 0 ] ;
1465
1469
var variation = experiment . Variations [ 0 ] ;
1466
1470
var featureFlag = Config . GetFeatureFlagFromKey ( featureKey ) ;
1471
+ var decision = new FeatureDecision ( experiment . Id , variation . Id , FeatureDecision . DECISION_SOURCE_ROLLOUT ) ;
1467
1472
1468
- DecisionServiceMock . Setup ( ds => ds . GetVariationForFeature ( featureFlag , TestUserId , null ) ) . Returns ( variation ) ;
1473
+ DecisionServiceMock . Setup ( ds => ds . GetVariationForFeature ( featureFlag , TestUserId , null ) ) . Returns ( decision ) ;
1469
1474
1470
1475
var optly = Helper . CreatePrivateOptimizely ( ) ;
1471
1476
optly . SetFieldOrProperty ( "DecisionService" , DecisionServiceMock . Object ) ;
@@ -1487,10 +1492,12 @@ public void TestIsFeatureEnabledGivenFeatureFlagIsEnabledAndUserIsNotBeingExperi
1487
1492
public void TestIsFeatureEnabledGivenFeatureFlagIsEnabledAndUserIsBeingExperimented ( )
1488
1493
{
1489
1494
var featureKey = "double_single_variable_feature" ;
1495
+ var experiment = Config . GetExperimentFromKey ( "test_experiment_double_feature" ) ;
1490
1496
var variation = Config . GetVariationFromKey ( "test_experiment_double_feature" , "control" ) ;
1491
1497
var featureFlag = Config . GetFeatureFlagFromKey ( featureKey ) ;
1498
+ var decision = new FeatureDecision ( experiment . Id , variation . Id , FeatureDecision . DECISION_SOURCE_EXPERIMENT ) ;
1492
1499
1493
- DecisionServiceMock . Setup ( ds => ds . GetVariationForFeature ( featureFlag , TestUserId , null ) ) . Returns ( variation ) ;
1500
+ DecisionServiceMock . Setup ( ds => ds . GetVariationForFeature ( featureFlag , TestUserId , null ) ) . Returns ( decision ) ;
1494
1501
1495
1502
var optly = Helper . CreatePrivateOptimizely ( ) ;
1496
1503
optly . SetFieldOrProperty ( "DecisionService" , DecisionServiceMock . Object ) ;
@@ -1537,6 +1544,7 @@ public void TestActivateListener(UserAttributes userAttributes)
1537
1544
var experiment = Config . GetExperimentFromKey ( experimentKey ) ;
1538
1545
var variation = Config . GetVariationFromKey ( experimentKey , variationKey ) ;
1539
1546
var featureFlag = Config . GetFeatureFlagFromKey ( featureKey ) ;
1547
+ var decision = new FeatureDecision ( experiment . Id , variation . Id , FeatureDecision . DECISION_SOURCE_EXPERIMENT ) ;
1540
1548
var logEvent = new LogEvent ( "https://logx.optimizely.com/v1/events" , OptimizelyHelper . SingleParameter ,
1541
1549
"POST" , new Dictionary < string , string > { } ) ;
1542
1550
@@ -1550,7 +1558,7 @@ public void TestActivateListener(UserAttributes userAttributes)
1550
1558
EventBuilderMock . Setup ( ebm => ebm . CreateImpressionEvent ( It . IsAny < ProjectConfig > ( ) , It . IsAny < Experiment > ( ) ,
1551
1559
It . IsAny < string > ( ) , It . IsAny < string > ( ) , It . IsAny < UserAttributes > ( ) ) ) . Returns ( logEvent ) ;
1552
1560
DecisionServiceMock . Setup ( ds => ds . GetVariation ( experiment , TestUserId , userAttributes ) ) . Returns ( variation ) ;
1553
- DecisionServiceMock . Setup ( ds => ds . GetVariationForFeature ( featureFlag , TestUserId , userAttributes ) ) . Returns ( variation ) ;
1561
+ DecisionServiceMock . Setup ( ds => ds . GetVariationForFeature ( featureFlag , TestUserId , userAttributes ) ) . Returns ( decision ) ;
1554
1562
1555
1563
var optly = Helper . CreatePrivateOptimizely ( ) ;
1556
1564
var optStronglyTyped = optly . GetObject ( ) as Optimizely ;
0 commit comments