@@ -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