@@ -43,6 +43,9 @@ public class DecisionServiceTest
4343 private Variation WhitelistedVariation ;
4444 private DecisionService DecisionService ;
4545
46+ private Variation VariationWithKeyControl ;
47+ private Variation VariationWithKeyVariation ;
48+
4649 [ SetUp ]
4750 public void SetUp ( )
4851 {
@@ -59,6 +62,9 @@ public void SetUp()
5962 DecisionService = new DecisionService ( new Bucketer ( LoggerMock . Object ) , ErrorHandlerMock . Object , ProjectConfig , null , LoggerMock . Object ) ;
6063
6164 DecisionServiceMock = new Mock < DecisionService > ( BucketerMock . Object , ErrorHandlerMock . Object , ProjectConfig , null , LoggerMock . Object ) { CallBase = true } ;
65+
66+ VariationWithKeyControl = ProjectConfig . GetVariationFromKey ( "test_experiment" , "control" ) ;
67+ VariationWithKeyVariation = ProjectConfig . GetVariationFromKey ( "test_experiment" , "variation" ) ;
6268 }
6369
6470 [ Test ]
@@ -349,27 +355,26 @@ public void TestGetVariationUserWithSetForcedVariation()
349355 optlyObject . Activate ( experimentKey , userId , userAttributes ) ;
350356
351357 // confirm normal bucketing occurs before setting the forced variation
352- var actualVariationKey = optlyObject . GetVariation ( experimentKey , userId , userAttributes ) ;
353-
354- Assert . AreEqual ( expectedVariationKey , actualVariationKey ) ;
358+ var actualVariation = optlyObject . GetVariation ( experimentKey , userId , userAttributes ) ;
359+ Assert . IsTrue ( TestData . CompareObjects ( VariationWithKeyControl , actualVariation ) ) ;
355360
356361 // test valid experiment
357362 Assert . IsTrue ( optlyObject . SetForcedVariation ( experimentKey , userId , expectedForcedVariationKey ) , string . Format ( @"Set variation to ""{0}"" failed." , expectedForcedVariationKey ) ) ;
358363
359- var actualForcedVariationKey = optlyObject . GetVariation ( experimentKey , userId , userAttributes ) ;
360- Assert . AreEqual ( expectedForcedVariationKey , actualForcedVariationKey ) ;
364+ var actualForcedVariation = optlyObject . GetVariation ( experimentKey , userId , userAttributes ) ;
365+ Assert . IsTrue ( TestData . CompareObjects ( VariationWithKeyVariation , actualForcedVariation ) ) ;
361366
362367 // clear forced variation and confirm that normal bucketing occurs
363368 Assert . IsTrue ( optlyObject . SetForcedVariation ( experimentKey , userId , null ) ) ;
364369
365- actualVariationKey = optlyObject . GetVariation ( experimentKey , userId , userAttributes ) ;
366- Assert . AreEqual ( expectedVariationKey , actualVariationKey ) ;
370+ actualVariation = optlyObject . GetVariation ( experimentKey , userId , userAttributes ) ;
371+ Assert . IsTrue ( TestData . CompareObjects ( VariationWithKeyControl , actualVariation ) ) ;
367372
368373 // check that a paused experiment returns null
369374 Assert . IsTrue ( optlyObject . SetForcedVariation ( pausedExperimentKey , userId , expectedForcedVariationKey ) , string . Format ( @"Set variation to ""{0}"" failed." , expectedForcedVariationKey ) ) ;
370- actualForcedVariationKey = optlyObject . GetVariation ( pausedExperimentKey , userId , userAttributes ) ;
375+ actualForcedVariation = optlyObject . GetVariation ( pausedExperimentKey , userId , userAttributes ) ;
371376
372- Assert . IsNull ( actualForcedVariationKey ) ;
377+ Assert . IsNull ( actualForcedVariation ) ;
373378 }
374379
375380 [ Test ]
@@ -408,33 +413,33 @@ public void TestGetVariationWithBucketingId()
408413 var optlyObject = new Optimizely ( TestData . Datafile , new ValidEventDispatcher ( ) , LoggerMock . Object ) ;
409414
410415 // confirm normal bucketing occurs before setting the bucketing ID
411- var actualVariationKey = optlyObject . GetVariation ( experimentKey , userId , testUserAttributes ) ;
412- Assert . AreEqual ( variationKeyControl , actualVariationKey ) ;
416+ var actualVariation = optlyObject . GetVariation ( experimentKey , userId , testUserAttributes ) ;
417+ Assert . IsTrue ( TestData . CompareObjects ( VariationWithKeyControl , actualVariation ) ) ;
413418
414419 // confirm valid bucketing with bucketing ID set in attributes
415- actualVariationKey = optlyObject . GetVariation ( experimentKey , userId , userAttributesWithBucketingId ) ;
416- Assert . AreEqual ( variationKeyVariation , actualVariationKey ) ;
420+ actualVariation = optlyObject . GetVariation ( experimentKey , userId , userAttributesWithBucketingId ) ;
421+ Assert . IsTrue ( TestData . CompareObjects ( VariationWithKeyVariation , actualVariation ) ) ;
417422
418423 // check invalid audience with bucketing ID
419- actualVariationKey = optlyObject . GetVariation ( experimentKey , userId , invalidUserAttributesWithBucketingId ) ;
420- Assert . AreEqual ( null , actualVariationKey ) ;
424+ actualVariation = optlyObject . GetVariation ( experimentKey , userId , invalidUserAttributesWithBucketingId ) ;
425+ Assert . Null ( actualVariation ) ;
421426
422427 // check null audience with bucketing Id
423- actualVariationKey = optlyObject . GetVariation ( experimentKey , userId , null ) ;
424- Assert . AreEqual ( null , actualVariationKey ) ;
428+ actualVariation = optlyObject . GetVariation ( experimentKey , userId , null ) ;
429+ Assert . Null ( actualVariation ) ;
425430
426431 // test that an experiment that's not running returns a null variation
427- actualVariationKey = optlyObject . GetVariation ( pausedExperimentKey , userId , userAttributesWithBucketingId ) ;
428- Assert . AreEqual ( null , actualVariationKey ) ;
432+ actualVariation = optlyObject . GetVariation ( pausedExperimentKey , userId , userAttributesWithBucketingId ) ;
433+ Assert . Null ( actualVariation ) ;
429434
430435 // check forced variation
431436 Assert . IsTrue ( optlyObject . SetForcedVariation ( experimentKey , userId , variationKeyControl ) , string . Format ( "Set variation to \" {0}\" failed." , variationKeyControl ) ) ;
432- actualVariationKey = optlyObject . GetVariation ( experimentKey , userId , userAttributesWithBucketingId ) ;
433- Assert . AreEqual ( variationKeyControl , actualVariationKey ) ;
437+ actualVariation = optlyObject . GetVariation ( experimentKey , userId , userAttributesWithBucketingId ) ;
438+ Assert . IsTrue ( TestData . CompareObjects ( VariationWithKeyControl , actualVariation ) ) ;
434439
435440 // check whitelisted variation
436- actualVariationKey = optlyObject . GetVariation ( experimentKey , testUserIdWhitelisted , userAttributesWithBucketingId ) ;
437- Assert . AreEqual ( variationKeyControl , actualVariationKey ) ;
441+ actualVariation = optlyObject . GetVariation ( experimentKey , testUserIdWhitelisted , userAttributesWithBucketingId ) ;
442+ Assert . IsTrue ( TestData . CompareObjects ( VariationWithKeyControl , actualVariation ) ) ;
438443
439444 var bucketerMock = new Mock < Bucketer > ( LoggerMock . Object ) ;
440445 var decision = new Decision ( "7722370027" ) ;
@@ -446,8 +451,8 @@ public void TestGetVariationWithBucketingId()
446451 UserProfileServiceMock . Setup ( up => up . Lookup ( userId ) ) . Returns ( storedUserProfile . ToMap ( ) ) ;
447452 DecisionService decisionService = new DecisionService ( bucketerMock . Object , ErrorHandlerMock . Object , ValidProjectConfig , UserProfileServiceMock . Object , LoggerMock . Object ) ;
448453
449- actualVariationKey = optlyObject . GetVariation ( experimentKey , userId , userAttributesWithBucketingId ) ;
450- Assert . AreEqual ( variationKeyControl , actualVariationKey , string . Format ( "Variation \" {0}\" does not match expected user profile variation \" {1}\" ." , actualVariationKey , variationKeyControl ) ) ;
454+ actualVariation = optlyObject . GetVariation ( experimentKey , userId , userAttributesWithBucketingId ) ;
455+ Assert . IsTrue ( TestData . CompareObjects ( VariationWithKeyControl , actualVariation ) , string . Format ( "Variation \" {0}\" does not match expected user profile variation \" {1}\" ." , actualVariation ? . Key , variationKeyControl ) ) ;
451456 }
452457
453458 #region GetVariationForFeatureExperiment Tests
0 commit comments