Skip to content

Commit fe14ce2

Browse files
committed
add unit tests for getFeatureVariableString calling through to internal support for feature variable accessors
1 parent 9acfab2 commit fe14ce2

File tree

1 file changed

+96
-0
lines changed

1 file changed

+96
-0
lines changed

core-api/src/test/java/com/optimizely/ab/OptimizelyTest.java

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)