@@ -501,7 +501,7 @@ public void TestGetVariationForFeatureExperimentGivenNonMutexGroupAndUserIsBucke
501
501
{
502
502
var experiment = ProjectConfig . GetExperimentFromKey ( "test_experiment_multivariate" ) ;
503
503
var variation = ProjectConfig . GetVariationFromId ( "test_experiment_multivariate" , "122231" ) ;
504
- var expectedDecision = new FeatureDecision ( experiment . Id , variation . Id , FeatureDecision . DECISION_SOURCE_EXPERIMENT ) ;
504
+ var expectedDecision = new FeatureDecision ( experiment , variation , FeatureDecision . DECISION_SOURCE_EXPERIMENT ) ;
505
505
var userAttributes = new UserAttributes ( ) ;
506
506
507
507
DecisionServiceMock . Setup ( ds => ds . GetVariation ( ProjectConfig . GetExperimentFromKey ( "test_experiment_multivariate" ) ,
@@ -522,7 +522,7 @@ public void TestGetVariationForFeatureExperimentGivenMutexGroupAndUserIsBucketed
522
522
var mutexExperiment = ProjectConfig . GetExperimentFromKey ( "group_experiment_1" ) ;
523
523
var variation = mutexExperiment . Variations [ 0 ] ;
524
524
var userAttributes = new UserAttributes ( ) ;
525
- var expectedDecision = new FeatureDecision ( mutexExperiment . Id , variation . Id , FeatureDecision . DECISION_SOURCE_EXPERIMENT ) ;
525
+ var expectedDecision = new FeatureDecision ( mutexExperiment , variation , FeatureDecision . DECISION_SOURCE_EXPERIMENT ) ;
526
526
527
527
DecisionServiceMock . Setup ( ds => ds . GetVariation ( ProjectConfig . GetExperimentFromKey ( "group_experiment_1" ) , "user1" ,
528
528
userAttributes ) ) . Returns ( variation ) ;
@@ -585,7 +585,7 @@ public void TestGetVariationForFeatureRolloutWhenUserIsBucketedInTheTargetingRul
585
585
var rollout = ProjectConfig . GetRolloutFromId ( rolloutId ) ;
586
586
var experiment = rollout . Experiments [ 0 ] ;
587
587
var variation = experiment . Variations [ 0 ] ;
588
- var expectedDecision = new FeatureDecision ( experiment . Id , variation . Id , FeatureDecision . DECISION_SOURCE_ROLLOUT ) ;
588
+ var expectedDecision = new FeatureDecision ( experiment , variation , FeatureDecision . DECISION_SOURCE_ROLLOUT ) ;
589
589
590
590
var userAttributes = new UserAttributes {
591
591
{ "browser_type" , "chrome" }
@@ -613,7 +613,7 @@ public void TestGetVariationForFeatureRolloutWhenUserIsNotBucketedInTheTargeting
613
613
var experiment = rollout . Experiments [ 0 ] ;
614
614
var everyoneElseRule = rollout . Experiments [ rollout . Experiments . Count - 1 ] ;
615
615
var variation = everyoneElseRule . Variations [ 0 ] ;
616
- var expectedDecision = new FeatureDecision ( everyoneElseRule . Id , variation . Id , FeatureDecision . DECISION_SOURCE_ROLLOUT ) ;
616
+ var expectedDecision = new FeatureDecision ( everyoneElseRule , variation , FeatureDecision . DECISION_SOURCE_ROLLOUT ) ;
617
617
618
618
var userAttributes = new UserAttributes {
619
619
{ "browser_type" , "chrome" }
@@ -669,7 +669,7 @@ public void TestGetVariationForFeatureRolloutWhenUserDoesNotQualifyForAnyTargeti
669
669
var experiment1 = rollout . Experiments [ 1 ] ;
670
670
var everyoneElseRule = rollout . Experiments [ rollout . Experiments . Count - 1 ] ;
671
671
var variation = everyoneElseRule . Variations [ 0 ] ;
672
- var expectedDecision = new FeatureDecision ( everyoneElseRule . Id , variation . Id , FeatureDecision . DECISION_SOURCE_ROLLOUT ) ;
672
+ var expectedDecision = new FeatureDecision ( everyoneElseRule , variation , FeatureDecision . DECISION_SOURCE_ROLLOUT ) ;
673
673
674
674
BucketerMock . Setup ( bm => bm . Bucket ( It . IsAny < ProjectConfig > ( ) , everyoneElseRule , It . IsAny < string > ( ) , It . IsAny < string > ( ) ) ) . Returns ( variation ) ;
675
675
var decisionService = new DecisionService ( BucketerMock . Object , ErrorHandlerMock . Object , ProjectConfig , null , LoggerMock . Object ) ;
@@ -708,7 +708,7 @@ public void TestGetVariationForFeatureRolloutAudienceAndTrafficeAllocationCheck(
708
708
} ) ;
709
709
710
710
// Returned variation id should be '177773' because of audience 'iPhone users in San Francisco'.
711
- var expectedDecision = new FeatureDecision ( expWithAudienceiPhoneUsers . Id , varWithAudienceiPhoneUsers . Id , FeatureDecision . DECISION_SOURCE_ROLLOUT ) ;
711
+ var expectedDecision = new FeatureDecision ( expWithAudienceiPhoneUsers , varWithAudienceiPhoneUsers , FeatureDecision . DECISION_SOURCE_ROLLOUT ) ;
712
712
Assert . IsTrue ( TestData . CompareObjects ( expectedDecision , actualDecision ) ) ;
713
713
714
714
// Calling with audience Chrome users.
@@ -718,15 +718,15 @@ public void TestGetVariationForFeatureRolloutAudienceAndTrafficeAllocationCheck(
718
718
} ) ;
719
719
720
720
// Returned variation id should be '177771' because of audience 'Chrome users'.
721
- expectedDecision = new FeatureDecision ( expWithAudienceChromeUsers . Id , varWithAudienceChromeUsers . Id , FeatureDecision . DECISION_SOURCE_ROLLOUT ) ;
721
+ expectedDecision = new FeatureDecision ( expWithAudienceChromeUsers , varWithAudienceChromeUsers , FeatureDecision . DECISION_SOURCE_ROLLOUT ) ;
722
722
Assert . IsTrue ( TestData . CompareObjects ( expectedDecision , actualDecision ) ) ;
723
723
724
724
// Calling with no audience.
725
725
mockBucketer . Setup ( bm => bm . GenerateBucketValue ( It . IsAny < string > ( ) ) ) . Returns ( 8000 ) ;
726
726
actualDecision = decisionService . GetVariationForFeatureRollout ( featureFlag , GenericUserId , new UserAttributes ( ) ) ;
727
727
728
728
// Returned variation id should be of everyone else rule because of no audience.
729
- expectedDecision = new FeatureDecision ( expWithNoAudience . Id , varWithNoAudience . Id , FeatureDecision . DECISION_SOURCE_ROLLOUT ) ;
729
+ expectedDecision = new FeatureDecision ( expWithNoAudience , varWithNoAudience , FeatureDecision . DECISION_SOURCE_ROLLOUT ) ;
730
730
Assert . IsTrue ( TestData . CompareObjects ( expectedDecision , actualDecision ) ) ;
731
731
732
732
// Calling with audience 'Chrome users' and traffice allocation '9500'.
@@ -752,7 +752,7 @@ public void TestGetVariationForFeatureWhenTheUserIsBucketedIntoFeatureExperiment
752
752
var expectedExperimentId = featureFlag . ExperimentIds [ 0 ] ;
753
753
var expectedExperiment = ProjectConfig . GetExperimentFromId ( expectedExperimentId ) ;
754
754
var variation = expectedExperiment . Variations [ 0 ] ;
755
- var expectedDecision = new FeatureDecision ( expectedExperimentId , variation . Id , FeatureDecision . DECISION_SOURCE_EXPERIMENT ) ;
755
+ var expectedDecision = new FeatureDecision ( expectedExperiment , variation , FeatureDecision . DECISION_SOURCE_EXPERIMENT ) ;
756
756
757
757
DecisionServiceMock . Setup ( ds => ds . GetVariationForFeatureExperiment ( It . IsAny < FeatureFlag > ( ) , It . IsAny < string > ( ) ,
758
758
It . IsAny < UserAttributes > ( ) ) ) . Returns ( expectedDecision ) ;
@@ -771,7 +771,7 @@ public void TestGetVariationForFeatureWhenTheUserIsNotBucketedIntoFeatureExperim
771
771
var rollout = ProjectConfig . GetRolloutFromId ( rolloutId ) ;
772
772
var expectedExperiment = rollout . Experiments [ 0 ] ;
773
773
var variation = expectedExperiment . Variations [ 0 ] ;
774
- var expectedDecision = new FeatureDecision ( expectedExperiment . Id , variation . Id , FeatureDecision . DECISION_SOURCE_ROLLOUT ) ;
774
+ var expectedDecision = new FeatureDecision ( expectedExperiment , variation , FeatureDecision . DECISION_SOURCE_ROLLOUT ) ;
775
775
776
776
DecisionServiceMock . Setup ( ds => ds . GetVariationForFeatureExperiment ( It . IsAny < FeatureFlag > ( ) , It . IsAny < string > ( ) ,
777
777
It . IsAny < UserAttributes > ( ) ) ) . Returns < Variation > ( null ) ;
@@ -808,7 +808,7 @@ public void TestGetVariationForFeatureWhenTheUserIsBuckedtedInBothExperimentAndR
808
808
var featureFlag = ProjectConfig . GetFeatureFlagFromKey ( "string_single_variable_feature" ) ;
809
809
var experiment = ProjectConfig . GetExperimentFromKey ( "test_experiment_with_feature_rollout" ) ;
810
810
var variation = ProjectConfig . GetVariationFromId ( "test_experiment_with_feature_rollout" , "122236" ) ;
811
- var expectedDecision = new FeatureDecision ( experiment . Id , variation . Id , FeatureDecision . DECISION_SOURCE_EXPERIMENT ) ;
811
+ var expectedDecision = new FeatureDecision ( experiment , variation , FeatureDecision . DECISION_SOURCE_EXPERIMENT ) ;
812
812
var userAttributes = new UserAttributes {
813
813
{ "browser_type" , "chrome" }
814
814
} ;
@@ -822,7 +822,7 @@ public void TestGetVariationForFeatureWhenTheUserIsBuckedtedInBothExperimentAndR
822
822
var rollout = ProjectConfig . GetRolloutFromId ( featureFlag . RolloutId ) ;
823
823
var rolloutExperiment = rollout . Experiments [ 0 ] ;
824
824
var rolloutVariation = rolloutExperiment . Variations [ 0 ] ;
825
- var expectedRolloutDecision = new FeatureDecision ( rolloutExperiment . Id , rolloutVariation . Id , FeatureDecision . DECISION_SOURCE_ROLLOUT ) ;
825
+ var expectedRolloutDecision = new FeatureDecision ( rolloutExperiment , rolloutVariation , FeatureDecision . DECISION_SOURCE_ROLLOUT ) ;
826
826
827
827
BucketerMock . Setup ( bm => bm . Bucket ( ProjectConfig , rolloutExperiment , It . IsAny < string > ( ) , It . IsAny < string > ( ) ) ) . Returns ( rolloutVariation ) ;
828
828
var actualRolloutDecision = DecisionServiceMock . Object . GetVariationForFeatureRollout ( featureFlag , "user1" , userAttributes ) ;
0 commit comments