@@ -2371,6 +2371,102 @@ public void getFeatureVariableValueReturnsVariationValueWhenUserGetsBucketedToVa
23712371 assertEquals (expectedValue , value );
23722372 }
23732373
2374+ /**
2375+ * Verify {@link Optimizely#getFeatureVariableString(String, String, String)}
2376+ * calls through to {@link Optimizely#getFeatureVariableString(String, String, String, Map<String, String>)}
2377+ * and returns null
2378+ * when {@link Optimizely#getFeatureVariableValueForType(String, String, String, Map, LiveVariable.VariableType)}
2379+ * returns null
2380+ * @throws ConfigParseException
2381+ */
2382+ @ Test
2383+ public void getFeatureVariableStringReturnsNullFromInternal () throws ConfigParseException {
2384+ String featureKey = "featureKey" ;
2385+ String variableKey = "variableKey" ;
2386+
2387+ Optimizely spyOptimizely = spy (Optimizely .builder (validDatafile , mockEventHandler )
2388+ .withConfig (validProjectConfig )
2389+ .build ());
2390+
2391+ doReturn (null ).when (spyOptimizely ).getFeatureVariableValueForType (
2392+ eq (featureKey ),
2393+ eq (variableKey ),
2394+ eq (genericUserId ),
2395+ eq (Collections .<String , String >emptyMap ()),
2396+ eq (LiveVariable .VariableType .STRING )
2397+ );
2398+
2399+ assertNull (spyOptimizely .getFeatureVariableString (
2400+ featureKey ,
2401+ variableKey ,
2402+ genericUserId
2403+ ));
2404+
2405+ verify (spyOptimizely ).getFeatureVariableString (
2406+ eq (featureKey ),
2407+ eq (variableKey ),
2408+ eq (genericUserId ),
2409+ eq (Collections .<String , String >emptyMap ())
2410+ );
2411+ }
2412+
2413+ /**
2414+ * Verify {@link Optimizely#getFeatureVariableString(String, String, String)}
2415+ * calls through to {@link Optimizely#getFeatureVariableString(String, String, String, Map)}
2416+ * and both return the value returned from
2417+ * {@link Optimizely#getFeatureVariableValueForType(String, String, String, Map, LiveVariable.VariableType)}.
2418+ * @throws ConfigParseException
2419+ */
2420+ @ Test
2421+ public void getFeatureVariableStringReturnsWhatInternalReturns () throws ConfigParseException {
2422+ String featureKey = "featureKey" ;
2423+ String variableKey = "variableKey" ;
2424+ String valueNoAttributes = "valueNoAttributes" ;
2425+ String valueWithAttributes = "valueWithAttributes" ;
2426+ Map <String , String > attributes = Collections .singletonMap ("key" , "value" );
2427+
2428+ Optimizely spyOptimizely = spy (Optimizely .builder (validDatafile , mockEventHandler )
2429+ .withConfig (validProjectConfig )
2430+ .build ());
2431+
2432+
2433+ doReturn (valueNoAttributes ).when (spyOptimizely ).getFeatureVariableValueForType (
2434+ eq (featureKey ),
2435+ eq (variableKey ),
2436+ eq (genericUserId ),
2437+ eq (Collections .<String , String >emptyMap ()),
2438+ eq (LiveVariable .VariableType .STRING )
2439+ );
2440+
2441+ doReturn (valueWithAttributes ).when (spyOptimizely ).getFeatureVariableValueForType (
2442+ eq (featureKey ),
2443+ eq (variableKey ),
2444+ eq (genericUserId ),
2445+ eq (attributes ),
2446+ eq (LiveVariable .VariableType .STRING )
2447+ );
2448+
2449+ assertEquals (valueNoAttributes , spyOptimizely .getFeatureVariableString (
2450+ featureKey ,
2451+ variableKey ,
2452+ genericUserId
2453+ ));
2454+
2455+ verify (spyOptimizely ).getFeatureVariableString (
2456+ eq (featureKey ),
2457+ eq (variableKey ),
2458+ eq (genericUserId ),
2459+ eq (Collections .<String , String >emptyMap ())
2460+ );
2461+
2462+ assertEquals (valueWithAttributes , spyOptimizely .getFeatureVariableString (
2463+ featureKey ,
2464+ variableKey ,
2465+ genericUserId ,
2466+ attributes
2467+ ));
2468+ }
2469+
23742470 //======== Helper methods ========//
23752471
23762472 private Experiment createUnknownExperiment () {
0 commit comments