Skip to content

Commit 2e61284

Browse files
committed
add tests to check we catch exception
1 parent 2353651 commit 2e61284

File tree

1 file changed

+74
-0
lines changed

1 file changed

+74
-0
lines changed

core-api/src/test/java/com/optimizely/ab/OptimizelyTest.java

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2861,6 +2861,43 @@ public void getFeatureVariableIntegerReturnsNullFromInternal() throws ConfigPars
28612861
);
28622862
}
28632863

2864+
/**
2865+
* Verify that {@link Optimizely#getFeatureVariableDouble(String, String, String)}
2866+
* and {@link Optimizely#getFeatureVariableDouble(String, String, String, Map)}
2867+
* do not throw errors when they are unable to parse the value into an Double.
2868+
* @throws ConfigParseException
2869+
*/
2870+
@Test
2871+
public void getFeatureVariableDoubleCatchesExceptionFromParsing() throws ConfigParseException {
2872+
String featureKey = "featureKey";
2873+
String variableKey = "variableKey";
2874+
String unParsableValue = "not_a_double";
2875+
2876+
Optimizely spyOptimizely = spy(Optimizely.builder(validDatafile, mockEventHandler)
2877+
.withConfig(validProjectConfig)
2878+
.build());
2879+
2880+
doReturn(unParsableValue).when(spyOptimizely).getFeatureVariableValueForType(
2881+
anyString(),
2882+
anyString(),
2883+
anyString(),
2884+
anyMapOf(String.class, String.class),
2885+
eq(LiveVariable.VariableType.DOUBLE)
2886+
);
2887+
2888+
assertNull(spyOptimizely.getFeatureVariableDouble(
2889+
featureKey,
2890+
variableKey,
2891+
genericUserId
2892+
));
2893+
2894+
logbackVerifier.expectMessage(
2895+
Level.ERROR,
2896+
"NumberFormatException while trying to parse \"" + unParsableValue +
2897+
"\" as Double. "
2898+
);
2899+
}
2900+
28642901
/**
28652902
* Verify {@link Optimizely#getFeatureVariableInteger(String, String, String)}
28662903
* calls through to {@link Optimizely#getFeatureVariableInteger(String, String, String, Map)}
@@ -2918,6 +2955,43 @@ public void getFeatureVariableIntegerReturnsWhatInternalReturns() throws ConfigP
29182955
));
29192956
}
29202957

2958+
/**
2959+
* Verify that {@link Optimizely#getFeatureVariableInteger(String, String, String)}
2960+
* and {@link Optimizely#getFeatureVariableInteger(String, String, String, Map)}
2961+
* do not throw errors when they are unable to parse the value into an Integer.
2962+
* @throws ConfigParseException
2963+
*/
2964+
@Test
2965+
public void getFeatureVariableIntegerCatchesExceptionFromParsing() throws ConfigParseException {
2966+
String featureKey = "featureKey";
2967+
String variableKey = "variableKey";
2968+
String unParsableValue = "not_an_integer";
2969+
2970+
Optimizely spyOptimizely = spy(Optimizely.builder(validDatafile, mockEventHandler)
2971+
.withConfig(validProjectConfig)
2972+
.build());
2973+
2974+
doReturn(unParsableValue).when(spyOptimizely).getFeatureVariableValueForType(
2975+
anyString(),
2976+
anyString(),
2977+
anyString(),
2978+
anyMapOf(String.class, String.class),
2979+
eq(LiveVariable.VariableType.INTEGER)
2980+
);
2981+
2982+
assertNull(spyOptimizely.getFeatureVariableInteger(
2983+
featureKey,
2984+
variableKey,
2985+
genericUserId
2986+
));
2987+
2988+
logbackVerifier.expectMessage(
2989+
Level.ERROR,
2990+
"NumberFormatException while trying to parse \"" + unParsableValue +
2991+
"\" as Integer. "
2992+
);
2993+
}
2994+
29212995
//======== Helper methods ========//
29222996

29232997
private Experiment createUnknownExperiment() {

0 commit comments

Comments
 (0)