Skip to content

Commit 9186b82

Browse files
committed
add tests to check we catch exception
1 parent 3cf8d46 commit 9186b82

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
@@ -2698,6 +2698,43 @@ public void getFeatureVariableIntegerReturnsNullFromInternal() throws ConfigPars
26982698
);
26992699
}
27002700

2701+
/**
2702+
* Verify that {@link Optimizely#getFeatureVariableDouble(String, String, String)}
2703+
* and {@link Optimizely#getFeatureVariableDouble(String, String, String, Map)}
2704+
* do not throw errors when they are unable to parse the value into an Double.
2705+
* @throws ConfigParseException
2706+
*/
2707+
@Test
2708+
public void getFeatureVariableDoubleCatchesExceptionFromParsing() throws ConfigParseException {
2709+
String featureKey = "featureKey";
2710+
String variableKey = "variableKey";
2711+
String unParsableValue = "not_a_double";
2712+
2713+
Optimizely spyOptimizely = spy(Optimizely.builder(validDatafile, mockEventHandler)
2714+
.withConfig(validProjectConfig)
2715+
.build());
2716+
2717+
doReturn(unParsableValue).when(spyOptimizely).getFeatureVariableValueForType(
2718+
anyString(),
2719+
anyString(),
2720+
anyString(),
2721+
anyMapOf(String.class, String.class),
2722+
eq(LiveVariable.VariableType.DOUBLE)
2723+
);
2724+
2725+
assertNull(spyOptimizely.getFeatureVariableDouble(
2726+
featureKey,
2727+
variableKey,
2728+
genericUserId
2729+
));
2730+
2731+
logbackVerifier.expectMessage(
2732+
Level.ERROR,
2733+
"NumberFormatException while trying to parse \"" + unParsableValue +
2734+
"\" as Double. "
2735+
);
2736+
}
2737+
27012738
/**
27022739
* Verify {@link Optimizely#getFeatureVariableInteger(String, String, String)}
27032740
* calls through to {@link Optimizely#getFeatureVariableInteger(String, String, String, Map)}
@@ -2755,6 +2792,43 @@ public void getFeatureVariableIntegerReturnsWhatInternalReturns() throws ConfigP
27552792
));
27562793
}
27572794

2795+
/**
2796+
* Verify that {@link Optimizely#getFeatureVariableInteger(String, String, String)}
2797+
* and {@link Optimizely#getFeatureVariableInteger(String, String, String, Map)}
2798+
* do not throw errors when they are unable to parse the value into an Integer.
2799+
* @throws ConfigParseException
2800+
*/
2801+
@Test
2802+
public void getFeatureVariableIntegerCatchesExceptionFromParsing() throws ConfigParseException {
2803+
String featureKey = "featureKey";
2804+
String variableKey = "variableKey";
2805+
String unParsableValue = "not_an_integer";
2806+
2807+
Optimizely spyOptimizely = spy(Optimizely.builder(validDatafile, mockEventHandler)
2808+
.withConfig(validProjectConfig)
2809+
.build());
2810+
2811+
doReturn(unParsableValue).when(spyOptimizely).getFeatureVariableValueForType(
2812+
anyString(),
2813+
anyString(),
2814+
anyString(),
2815+
anyMapOf(String.class, String.class),
2816+
eq(LiveVariable.VariableType.INTEGER)
2817+
);
2818+
2819+
assertNull(spyOptimizely.getFeatureVariableInteger(
2820+
featureKey,
2821+
variableKey,
2822+
genericUserId
2823+
));
2824+
2825+
logbackVerifier.expectMessage(
2826+
Level.ERROR,
2827+
"NumberFormatException while trying to parse \"" + unParsableValue +
2828+
"\" as Integer. "
2829+
);
2830+
}
2831+
27582832
//======== Helper methods ========//
27592833

27602834
private Experiment createUnknownExperiment() {

0 commit comments

Comments
 (0)