@@ -2534,6 +2534,102 @@ public void isFeatureEnabledReturnsTrueAndDispatchesEventWhenUserIsBucketedIntoA
25342534 verify (mockEventHandler , times (1 )).dispatchEvent (any (LogEvent .class ));
25352535 }
25362536
2537+ /**
2538+ * Verify {@link Optimizely#getFeatureVariableString(String, String, String)}
2539+ * calls through to {@link Optimizely#getFeatureVariableString(String, String, String, Map<String, String>)}
2540+ * and returns null
2541+ * when {@link Optimizely#getFeatureVariableValueForType(String, String, String, Map, LiveVariable.VariableType)}
2542+ * returns null
2543+ * @throws ConfigParseException
2544+ */
2545+ @ Test
2546+ public void getFeatureVariableStringReturnsNullFromInternal () throws ConfigParseException {
2547+ String featureKey = "featureKey" ;
2548+ String variableKey = "variableKey" ;
2549+
2550+ Optimizely spyOptimizely = spy (Optimizely .builder (validDatafile , mockEventHandler )
2551+ .withConfig (validProjectConfig )
2552+ .build ());
2553+
2554+ doReturn (null ).when (spyOptimizely ).getFeatureVariableValueForType (
2555+ eq (featureKey ),
2556+ eq (variableKey ),
2557+ eq (genericUserId ),
2558+ eq (Collections .<String , String >emptyMap ()),
2559+ eq (LiveVariable .VariableType .STRING )
2560+ );
2561+
2562+ assertNull (spyOptimizely .getFeatureVariableString (
2563+ featureKey ,
2564+ variableKey ,
2565+ genericUserId
2566+ ));
2567+
2568+ verify (spyOptimizely ).getFeatureVariableString (
2569+ eq (featureKey ),
2570+ eq (variableKey ),
2571+ eq (genericUserId ),
2572+ eq (Collections .<String , String >emptyMap ())
2573+ );
2574+ }
2575+
2576+ /**
2577+ * Verify {@link Optimizely#getFeatureVariableString(String, String, String)}
2578+ * calls through to {@link Optimizely#getFeatureVariableString(String, String, String, Map)}
2579+ * and both return the value returned from
2580+ * {@link Optimizely#getFeatureVariableValueForType(String, String, String, Map, LiveVariable.VariableType)}.
2581+ * @throws ConfigParseException
2582+ */
2583+ @ Test
2584+ public void getFeatureVariableStringReturnsWhatInternalReturns () throws ConfigParseException {
2585+ String featureKey = "featureKey" ;
2586+ String variableKey = "variableKey" ;
2587+ String valueNoAttributes = "valueNoAttributes" ;
2588+ String valueWithAttributes = "valueWithAttributes" ;
2589+ Map <String , String > attributes = Collections .singletonMap ("key" , "value" );
2590+
2591+ Optimizely spyOptimizely = spy (Optimizely .builder (validDatafile , mockEventHandler )
2592+ .withConfig (validProjectConfig )
2593+ .build ());
2594+
2595+
2596+ doReturn (valueNoAttributes ).when (spyOptimizely ).getFeatureVariableValueForType (
2597+ eq (featureKey ),
2598+ eq (variableKey ),
2599+ eq (genericUserId ),
2600+ eq (Collections .<String , String >emptyMap ()),
2601+ eq (LiveVariable .VariableType .STRING )
2602+ );
2603+
2604+ doReturn (valueWithAttributes ).when (spyOptimizely ).getFeatureVariableValueForType (
2605+ eq (featureKey ),
2606+ eq (variableKey ),
2607+ eq (genericUserId ),
2608+ eq (attributes ),
2609+ eq (LiveVariable .VariableType .STRING )
2610+ );
2611+
2612+ assertEquals (valueNoAttributes , spyOptimizely .getFeatureVariableString (
2613+ featureKey ,
2614+ variableKey ,
2615+ genericUserId
2616+ ));
2617+
2618+ verify (spyOptimizely ).getFeatureVariableString (
2619+ eq (featureKey ),
2620+ eq (variableKey ),
2621+ eq (genericUserId ),
2622+ eq (Collections .<String , String >emptyMap ())
2623+ );
2624+
2625+ assertEquals (valueWithAttributes , spyOptimizely .getFeatureVariableString (
2626+ featureKey ,
2627+ variableKey ,
2628+ genericUserId ,
2629+ attributes
2630+ ));
2631+ }
2632+
25372633 //======== Helper methods ========//
25382634
25392635 private Experiment createUnknownExperiment () {
0 commit comments