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