Skip to content

fix(ForcedDecision): remove config-ready check from forced-decision apis #454

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Dec 3, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -198,10 +198,6 @@ public void trackEvent(@Nonnull String eventName) throws UnknownEventTypeExcepti
*/
public Boolean setForcedDecision(@Nonnull OptimizelyDecisionContext optimizelyDecisionContext,
@Nonnull OptimizelyForcedDecision optimizelyForcedDecision) {
if (optimizely.getOptimizelyConfig() == null) {
logger.error("Optimizely SDK not ready.");
return false;
}
// Check if the forcedDecisionsMap has been initialized yet or not
if (forcedDecisionsMap == null ){
// Thread-safe implementation of HashMap
Expand All @@ -219,10 +215,6 @@ public Boolean setForcedDecision(@Nonnull OptimizelyDecisionContext optimizelyDe
*/
@Nullable
public OptimizelyForcedDecision getForcedDecision(@Nonnull OptimizelyDecisionContext optimizelyDecisionContext) {
if (optimizely.getOptimizelyConfig() == null) {
logger.error("Optimizely SDK not ready.");
return null;
}
return findForcedDecision(optimizelyDecisionContext);
}

Expand All @@ -247,11 +239,6 @@ public OptimizelyForcedDecision findForcedDecision(@Nonnull OptimizelyDecisionCo
* @return Returns a boolean, true if successfully removed, otherwise false
*/
public boolean removeForcedDecision(@Nonnull OptimizelyDecisionContext optimizelyDecisionContext) {
if (optimizely.getOptimizelyConfig() == null) {
logger.error("Optimizely SDK not ready.");
return false;
}

try {
if (forcedDecisionsMap != null) {
if (forcedDecisionsMap.remove(optimizelyDecisionContext.getKey()) != null) {
Expand All @@ -271,10 +258,6 @@ public boolean removeForcedDecision(@Nonnull OptimizelyDecisionContext optimizel
* @return Returns a boolean, True if successfully, otherwise false
*/
public boolean removeAllForcedDecisions() {
if (optimizely.getProjectConfig() == null) {
logger.error("Optimizely SDK not ready.");
return false;
}
// Clear both maps for with and without ruleKey
if (forcedDecisionsMap != null) {
forcedDecisionsMap.clear();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,11 +82,13 @@ public void optimizelyUserContext_withAttributes() {

@Test
public void optimizelyUserContext_noAttributes() {
OptimizelyUserContext user = new OptimizelyUserContext(optimizely, userId);
OptimizelyUserContext user_1 = new OptimizelyUserContext(optimizely, userId);
OptimizelyUserContext user_2 = new OptimizelyUserContext(optimizely, userId);

assertEquals(user.getOptimizely(), optimizely);
assertEquals(user.getUserId(), userId);
assertTrue(user.getAttributes().isEmpty());
assertEquals(user_1.getOptimizely(), optimizely);
assertEquals(user_1.getUserId(), userId);
assertTrue(user_1.getAttributes().isEmpty());
assertEquals(user_1.hashCode(), user_2.hashCode());
}

@Test
Expand Down Expand Up @@ -1263,21 +1265,6 @@ public void setForcedDecisionWithoutRuleKeyTest() {
}


@Test
public void setForcedDecisionWithoutRuleKeyTestSdkNotReady() {
String flagKey = "55555";
String variationKey = "33333";
Optimizely optimizely = new Optimizely.Builder().build();
OptimizelyUserContext optimizelyUserContext = new OptimizelyUserContext(
optimizely,
userId,
Collections.emptyMap());

OptimizelyDecisionContext optimizelyDecisionContext = new OptimizelyDecisionContext(flagKey, null);
OptimizelyForcedDecision optimizelyForcedDecision = new OptimizelyForcedDecision(variationKey);
assertFalse(optimizelyUserContext.setForcedDecision(optimizelyDecisionContext, optimizelyForcedDecision));
}

@Test
public void getForcedVariationWithRuleKey() {
String flagKey = "55555";
Expand Down Expand Up @@ -1330,22 +1317,6 @@ public void getForcedVariationWithoutRuleKey() {
assertEquals(variationKey, optimizelyUserContext.getForcedDecision(optimizelyDecisionContext).getVariationKey());
}

@Test
public void getForcedVariationWithoutRuleKeySdkNotReady() {
String flagKey = "55555";
String variationKey = "33333";
Optimizely optimizely = new Optimizely.Builder().build();
OptimizelyUserContext optimizelyUserContext = new OptimizelyUserContext(
optimizely,
userId,
Collections.emptyMap());

OptimizelyDecisionContext optimizelyDecisionContext = new OptimizelyDecisionContext(flagKey, null);
OptimizelyForcedDecision optimizelyForcedDecision = new OptimizelyForcedDecision(variationKey);

optimizelyUserContext.setForcedDecision(optimizelyDecisionContext, optimizelyForcedDecision);
assertNull(optimizelyUserContext.getForcedDecision(optimizelyDecisionContext));
}

@Test
public void failedGetForcedDecisionWithoutRuleKey() {
Expand Down Expand Up @@ -1434,22 +1405,6 @@ public void removeForcedDecisionWithIncorrectFlagKey() {
assertFalse(optimizelyUserContext.removeForcedDecision(incorrectOptimizelyDecisionContext));
}

@Test
public void removeForcedDecisionWithoutRuleKeySdkNotReady() {
String flagKey = "flag2";
String variationKey = "33333";
Optimizely optimizely = new Optimizely.Builder().build();
OptimizelyUserContext optimizelyUserContext = new OptimizelyUserContext(
optimizely,
userId,
Collections.emptyMap());

OptimizelyDecisionContext optimizelyDecisionContext = new OptimizelyDecisionContext(flagKey, null);
OptimizelyForcedDecision optimizelyForcedDecision = new OptimizelyForcedDecision(variationKey);

optimizelyUserContext.setForcedDecision(optimizelyDecisionContext, optimizelyForcedDecision);
assertFalse(optimizelyUserContext.removeForcedDecision(optimizelyDecisionContext));
}

@Test
public void removeForcedDecisionWithIncorrectFlagKeyButSimilarRuleKey() {
Expand Down Expand Up @@ -1487,23 +1442,6 @@ public void removeAllForcedDecisions() {
assertTrue(optimizelyUserContext.removeAllForcedDecisions());
}

@Test
public void removeAllForcedDecisionsSdkNotReady() {
String flagKey = "55555";
String ruleKey = "77777";
String variationKey = "33333";
Optimizely optimizely = new Optimizely.Builder().build();
OptimizelyUserContext optimizelyUserContext = new OptimizelyUserContext(
optimizely,
userId,
Collections.emptyMap());

OptimizelyDecisionContext optimizelyDecisionContext = new OptimizelyDecisionContext(flagKey, ruleKey);
OptimizelyForcedDecision optimizelyForcedDecision = new OptimizelyForcedDecision(variationKey);

optimizelyUserContext.setForcedDecision(optimizelyDecisionContext, optimizelyForcedDecision);
assertFalse(optimizelyUserContext.removeAllForcedDecisions());
}

@Test
public void findValidatedForcedDecisionWithRuleKey() {
Expand Down