Skip to content

Commit 3fab122

Browse files
fix: code from test results
1 parent c0ce71f commit 3fab122

File tree

3 files changed

+29
-31
lines changed

3 files changed

+29
-31
lines changed

OptimizelySDK.Tests/DecisionServiceTest.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -856,7 +856,7 @@ public void TestGetVariationForFeatureRolloutWhenRolloutIsNotInDataFile()
856856
ds.GetVariationForFeatureExperiment(It.IsAny<FeatureFlag>(),
857857
It.IsAny<OptimizelyUserContext>(), It.IsAny<UserAttributes>(),
858858
ProjectConfig,
859-
new OptimizelyDecideOption[] { })).
859+
new OptimizelyDecideOption[] { }, null)).
860860
Returns<Variation>(null);
861861
var optlyObject = new Optimizely(TestData.Datafile, new ValidEventDispatcher(),
862862
LoggerMock.Object);
@@ -1201,7 +1201,7 @@ public void TestGetVariationForFeatureWhenTheUserIsBucketedIntoFeatureExperiment
12011201
DecisionServiceMock.Setup(ds => ds.GetVariationForFeatureExperiment(
12021202
It.IsAny<FeatureFlag>(), It.IsAny<OptimizelyUserContext>(),
12031203
It.IsAny<UserAttributes>(), ProjectConfig,
1204-
It.IsAny<OptimizelyDecideOption[]>())).
1204+
It.IsAny<OptimizelyDecideOption[]>(), null)).
12051205
Returns(expectedDecision);
12061206
OptimizelyUserContextMock.Setup(ouc => ouc.GetUserId()).Returns("user1");
12071207

@@ -1228,7 +1228,7 @@ public void
12281228
DecisionServiceMock.Setup(ds => ds.GetVariationForFeatureExperiment(
12291229
It.IsAny<FeatureFlag>(), It.IsAny<OptimizelyUserContext>(),
12301230
It.IsAny<UserAttributes>(), ProjectConfig,
1231-
It.IsAny<OptimizelyDecideOption[]>())).
1231+
It.IsAny<OptimizelyDecideOption[]>(), null)).
12321232
Returns(Result<FeatureDecision>.NullResult(null));
12331233
DecisionServiceMock.Setup(ds => ds.GetVariationForFeatureRollout(
12341234
It.IsAny<FeatureFlag>(), It.IsAny<OptimizelyUserContext>(),
@@ -1262,7 +1262,7 @@ public void
12621262
ds.GetVariationForFeatureExperiment(It.IsAny<FeatureFlag>(),
12631263
It.IsAny<OptimizelyUserContext>(), It.IsAny<UserAttributes>(),
12641264
ProjectConfig,
1265-
new OptimizelyDecideOption[] { })).
1265+
new OptimizelyDecideOption[] { }, null)).
12661266
Returns(Result<FeatureDecision>.NullResult(null));
12671267
DecisionServiceMock.
12681268
Setup(ds => ds.GetVariationForFeatureRollout(It.IsAny<FeatureFlag>(),

OptimizelySDK/Bucketing/DecisionService.cs

Lines changed: 24 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -166,33 +166,32 @@ public virtual Result<Variation> GetVariation(Experiment experiment,
166166

167167
var userId = user.GetUserId();
168168

169-
var decisionVariationResult = GetForcedVariation(experiment.Key, userId, config);
170-
reasons += decisionVariationResult.DecisionReasons;
171-
var variation = decisionVariationResult.ResultObject;
169+
var decisionVariation = GetForcedVariation(experiment.Key, userId, config);
170+
reasons += decisionVariation.DecisionReasons;
171+
var variation = decisionVariation.ResultObject;
172172

173173
if (variation == null)
174174
{
175-
decisionVariationResult = GetWhitelistedVariation(experiment, user.GetUserId());
176-
reasons += decisionVariationResult.DecisionReasons;
177-
178-
variation = decisionVariationResult.ResultObject;
175+
decisionVariation = GetWhitelistedVariation(experiment, user.GetUserId());
176+
reasons += decisionVariation.DecisionReasons;
177+
variation = decisionVariation.ResultObject;
179178
}
180179

181180
if (variation != null)
182181
{
183-
decisionVariationResult.SetReasons(reasons);
184-
return decisionVariationResult;
182+
decisionVariation.SetReasons(reasons);
183+
return decisionVariation;
185184
}
186185

187186
if (userProfileTracker != null)
188187
{
189-
decisionVariationResult =
188+
decisionVariation =
190189
GetStoredVariation(experiment, userProfileTracker.UserProfile, config);
191-
reasons += decisionVariationResult.DecisionReasons;
192-
variation = decisionVariationResult.ResultObject;
190+
reasons += decisionVariation.DecisionReasons;
191+
variation = decisionVariation.ResultObject;
193192
if (variation != null)
194193
{
195-
return decisionVariationResult;
194+
return decisionVariation;
196195
}
197196
}
198197

@@ -202,13 +201,11 @@ public virtual Result<Variation> GetVariation(Experiment experiment,
202201
reasons += decisionMeetAudience.DecisionReasons;
203202
if (decisionMeetAudience.ResultObject)
204203
{
205-
var bucketingIdResult = GetBucketingId(userId, user.GetAttributes());
206-
reasons += bucketingIdResult.DecisionReasons;
204+
var bucketingId = GetBucketingId(userId, user.GetAttributes()).ResultObject;
207205

208-
decisionVariationResult = Bucketer.Bucket(config, experiment,
209-
bucketingIdResult.ResultObject, userId);
210-
reasons += decisionVariationResult.DecisionReasons;
211-
variation = decisionVariationResult.ResultObject;
206+
decisionVariation = Bucketer.Bucket(config, experiment, bucketingId, userId);
207+
reasons += decisionVariation.DecisionReasons;
208+
variation = decisionVariation.ResultObject;
212209

213210
if (variation != null)
214211
{
@@ -218,12 +215,12 @@ public virtual Result<Variation> GetVariation(Experiment experiment,
218215
}
219216
else
220217
{
221-
Logger.Log(LogLevel.DEBUG,
218+
Logger.Log(LogLevel.INFO,
222219
"This decision will not be saved since the UserProfileService is null.");
223220
}
224221
}
225222

226-
return decisionVariationResult.SetReasons(reasons);
223+
return decisionVariation.SetReasons(reasons);
227224
}
228225

229226
Logger.Log(LogLevel.INFO,
@@ -651,7 +648,8 @@ public virtual Result<FeatureDecision> GetVariationForFeatureExperiment(
651648
OptimizelyUserContext user,
652649
UserAttributes filteredAttributes,
653650
ProjectConfig config,
654-
OptimizelyDecideOption[] options
651+
OptimizelyDecideOption[] options,
652+
UserProfileTracker userProfileTracker = null
655653
)
656654
{
657655
var reasons = new DecisionReasons();
@@ -692,7 +690,7 @@ OptimizelyDecideOption[] options
692690
}
693691
else
694692
{
695-
var decisionResponse = GetVariation(experiment, user, config, options);
693+
var decisionResponse = GetVariation(experiment, user, config, options, userProfileTracker);
696694

697695
reasons += decisionResponse?.DecisionReasons;
698696
decisionVariation = decisionResponse.ResultObject;
@@ -736,7 +734,7 @@ public class UserProfileTracker
736734
{
737735
public UserProfile UserProfile { get; private set; }
738736
public bool ProfileUpdated { get; private set; }
739-
private string UserId { get; set; }
737+
private string UserId { get; }
740738

741739
public UserProfileTracker(string userId)
742740
{
@@ -798,7 +796,7 @@ public void UpdateUserProfile(Experiment experiment, Variation variation)
798796
ProfileUpdated = true;
799797

800798
Logger.Log(LogLevel.INFO,
801-
$"Updated variation \"{variationId}\" of experiment \"{experimentId}\" for user \"{UserProfile.UserId}\".");
799+
$"Saved variation \"{variationId}\" of experiment \"{experimentId}\" for user \"{UserProfile.UserId}\".");
802800
}
803801

804802
public void SaveUserProfile()
@@ -852,7 +850,7 @@ OptimizelyDecideOption[] options
852850

853851
// Check if the feature flag has an experiment and the user is bucketed into that experiment.
854852
var decisionResult = GetVariationForFeatureExperiment(featureFlag, user,
855-
filteredAttributes, projectConfig, options);
853+
filteredAttributes, projectConfig, options, userProfileTracker);
856854
reasons += decisionResult.DecisionReasons;
857855

858856
if (decisionResult.ResultObject != null)

OptimizelySDK/Optimizely.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -900,7 +900,7 @@ OptimizelyDecideOption[] options
900900
}
901901

902902
var allFlags = projectConfig.FeatureFlags;
903-
var allFlagKeys = allFlags.Select(v => v.Key).ToArray<string>();
903+
var allFlagKeys = allFlags.Select(v => v.Key).ToArray();
904904

905905
return DecideForKeys(user, allFlagKeys, options);
906906
}

0 commit comments

Comments
 (0)