@@ -425,6 +425,52 @@ public void DecideWhenConfigIsNull()
425
425
Assert . IsTrue ( TestData . CompareObjects ( decision , decisionExpected ) ) ;
426
426
}
427
427
428
+ [ Test ]
429
+ public void SeparateDecideShouldHaveSameNumberOfUpsSaveOnlyOneLookup ( )
430
+ {
431
+ var experimentFlagKeys = new [ ] { "double_single_variable_feature" , "integer_single_variable_feature" } ;
432
+ // var rolloutFlagKey = "boolean_single_variable_feature";
433
+ var userProfileServiceMock = MakeUserProfileServiceMock ( ) ;
434
+ var saveArgsCollector = new List < Dictionary < string , object > > ( ) ;
435
+ userProfileServiceMock . Setup ( up => up . Save ( Capture . In ( saveArgsCollector ) ) ) ;
436
+ var optimizely = new Optimizely ( TestData . Datafile , EventDispatcherMock . Object ,
437
+ LoggerMock . Object , ErrorHandlerMock . Object , userProfileServiceMock . Object ) ;
438
+ var user = optimizely . CreateUserContext ( UserID ) ;
439
+ var expectedUserProfileExperiment1 = new UserProfile ( UserID , new Dictionary < string , Decision >
440
+ {
441
+ { "224" , new Decision ( "280" ) } ,
442
+ { "122238" , new Decision ( "122240" ) } ,
443
+ } ) ;
444
+ var expectedUserProfileExperiment2 = new UserProfile ( UserID , new Dictionary < string , Decision >
445
+ {
446
+ { "224" , new Decision ( "280" ) } ,
447
+ { "122238" , new Decision ( "122240" ) } ,
448
+ { "122241" , new Decision ( "122242" ) } ,
449
+ } ) ;
450
+ // var expectedUserProfileRollout = new UserProfile(UserID, new Dictionary<string, Decision>
451
+ // {
452
+ // // expected decisions for rollout
453
+ // });
454
+
455
+ user . Decide ( experimentFlagKeys [ 0 ] ) ;
456
+ user . Decide ( experimentFlagKeys [ 1 ] ) ;
457
+ // user.Decide(rolloutFlagKey); // TODO: Test UPS with rollout?
458
+
459
+ LoggerMock . Verify (
460
+ l => l . Log ( LogLevel . INFO ,
461
+ "We were unable to get a user profile map from the UserProfileService." ) ,
462
+ Times . Never ) ;
463
+ LoggerMock . Verify (
464
+ l => l . Log ( LogLevel . ERROR , "The UserProfileService returned an invalid map." ) ,
465
+ Times . Never ) ;
466
+ userProfileServiceMock . Verify ( l => l . Lookup ( UserID ) , Times . Once ) ;
467
+ userProfileServiceMock . Verify ( l => l . Save ( It . IsAny < Dictionary < string , object > > ( ) ) ,
468
+ Times . Exactly ( 2 ) ) ;
469
+ Assert . AreEqual ( saveArgsCollector [ 0 ] , expectedUserProfileExperiment1 . ToMap ( ) ) ;
470
+ Assert . AreEqual ( saveArgsCollector [ 1 ] , expectedUserProfileExperiment2 . ToMap ( ) ) ;
471
+ // Assert.AreEqual(saveArgsCollector[2], expectedUserProfileRollout.ToMap());
472
+ }
473
+
428
474
[ Test ]
429
475
public void DecideWithUpsShouldOnlyLookupSaveOnce ( )
430
476
{
@@ -441,7 +487,7 @@ public void DecideWithUpsShouldOnlyLookupSaveOnce()
441
487
{ "122238" , new Decision ( "122240" ) } ,
442
488
} ) ;
443
489
444
- _ = user . Decide ( flagKeyFromTestDataJson ) ;
490
+ user . Decide ( flagKeyFromTestDataJson ) ;
445
491
446
492
LoggerMock . Verify (
447
493
l => l . Log ( LogLevel . INFO ,
@@ -476,7 +522,7 @@ public void DecideForKeysWithUpsShouldOnlyLookupSaveOnceWithMultipleFlags()
476
522
{ "122238" , new Decision ( "122240" ) } ,
477
523
} ) ;
478
524
479
- _ = userContext . DecideForKeys ( flagKeys ) ;
525
+ userContext . DecideForKeys ( flagKeys ) ;
480
526
481
527
LoggerMock . Verify (
482
528
l => l . Log ( LogLevel . INFO ,
@@ -543,7 +589,7 @@ public void DecideAllWithUpsShouldOnlyLookupSaveOnce()
543
589
{ "188880" , new Decision ( "188881" ) } ,
544
590
} ) ;
545
591
546
- _ = user . DecideAll ( ) ;
592
+ user . DecideAll ( ) ;
547
593
548
594
LoggerMock . Verify (
549
595
l => l . Log ( LogLevel . INFO ,
0 commit comments