Skip to content

Commit 4ca1e42

Browse files
committed
fix cmab
1 parent a749f11 commit 4ca1e42

File tree

2 files changed

+59
-5
lines changed

2 files changed

+59
-5
lines changed

android-sdk/src/main/java/com/optimizely/ab/android/sdk/OptimizelyClient.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -816,8 +816,8 @@ public OptimizelyConfig getOptimizelyConfig() {
816816
* @return An OptimizelyUserContext associated with this OptimizelyClient.
817817
*/
818818
@Nullable
819-
public OptimizelyUserContext createUserContext(@NonNull String userId,
820-
@NonNull Map<String, Object> attributes) {
819+
public OptimizelyUserContextAndroid createUserContext(@NonNull String userId,
820+
@NonNull Map<String, Object> attributes) {
821821
if (optimizely == null) {
822822
logger.warn("Optimizely is not initialized, could not create a user context");
823823
return null;
@@ -832,17 +832,17 @@ public OptimizelyUserContext createUserContext(@NonNull String userId,
832832
}
833833

834834
@Nullable
835-
public OptimizelyUserContext createUserContext(@NonNull String userId) {
835+
public OptimizelyUserContextAndroid createUserContext(@NonNull String userId) {
836836
return createUserContext(userId, Collections.emptyMap());
837837
}
838838

839839
@Nullable
840-
public OptimizelyUserContext createUserContext() {
840+
public OptimizelyUserContextAndroid createUserContext() {
841841
return createUserContext(Collections.emptyMap());
842842
}
843843

844844
@Nullable
845-
public OptimizelyUserContext createUserContext(@NonNull Map<String, Object> attributes) {
845+
public OptimizelyUserContextAndroid createUserContext(@NonNull Map<String, Object> attributes) {
846846
if (vuid == null) {
847847
logger.warn("Optimizely vuid is not available. A userId is required to create a user context.");
848848
return null;

android-sdk/src/test/java/com/optimizely/ab/android/sdk/OptimizelyClientTest.java

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package com.optimizely.ab.android.sdk;
1818

1919
import com.optimizely.ab.Optimizely;
20+
import com.optimizely.ab.OptimizelyUserContext;
2021
import com.optimizely.ab.config.Experiment;
2122
import com.optimizely.ab.config.Variation;
2223
import com.optimizely.ab.internal.ReservedEventKey;
@@ -39,6 +40,7 @@
3940

4041
import static junit.framework.Assert.assertTrue;
4142
import static junit.framework.Assert.assertFalse;
43+
import static junit.framework.Assert.assertEquals;
4244
import static org.mockito.Mockito.verify;
4345
import static org.mockito.Mockito.when;
4446
import org.powermock.reflect.Whitebox;
@@ -277,4 +279,56 @@ public void testBadClearNotificationCenterListeners() {
277279
notificationCenter.clearAllNotificationListeners();
278280
verify(logger).warn("Optimizely is not initialized, could not get the notification listener");
279281
}
282+
283+
@Test
284+
public void testCreateUserContext_withUserIdAndAttributes() {
285+
OptimizelyClient optimizelyClient = new OptimizelyClient(optimizely, logger);
286+
String userId = "testUser123";
287+
Map<String, Object> attributes = new HashMap<>();
288+
attributes.put("isLoggedIn", true);
289+
attributes.put("userType", "premium");
290+
291+
OptimizelyUserContext userContext = optimizelyClient.createUserContext(userId, attributes);
292+
293+
assertTrue(userContext instanceof OptimizelyUserContextAndroid);
294+
assertEquals(userId, userContext.getUserId());
295+
assertEquals(attributes, userContext.getAttributes());
296+
}
297+
298+
@Test
299+
public void testCreateUserContext_withUserIdOnly() {
300+
OptimizelyClient optimizelyClient = new OptimizelyClient(optimizely, logger);
301+
String userId = "testUser123";
302+
303+
OptimizelyUserContext userContext = optimizelyClient.createUserContext(userId);
304+
305+
assertTrue(userContext instanceof OptimizelyUserContextAndroid);
306+
assertEquals(userId, userContext.getUserId());
307+
assertEquals(Collections.emptyMap(), userContext.getAttributes());
308+
}
309+
310+
@Test
311+
public void testCreateUserContext_withNullOptimizely() {
312+
OptimizelyClient optimizelyClient = new OptimizelyClient(null, logger);
313+
String userId = "testUser123";
314+
Map<String, Object> attributes = new HashMap<>();
315+
316+
OptimizelyUserContext userContext = optimizelyClient.createUserContext(userId, attributes);
317+
318+
assertEquals(null, userContext);
319+
verify(logger).warn("Optimizely is not initialized, could not create a user context");
320+
}
321+
322+
@Test
323+
public void testCreateUserContext_withEmptyAttributes() {
324+
OptimizelyClient optimizelyClient = new OptimizelyClient(optimizely, logger);
325+
String userId = "testUser123";
326+
Map<String, Object> emptyAttributes = Collections.emptyMap();
327+
328+
OptimizelyUserContext userContext = optimizelyClient.createUserContext(userId, emptyAttributes);
329+
330+
assertTrue(userContext instanceof OptimizelyUserContextAndroid);
331+
assertEquals(userId, userContext.getUserId());
332+
assertEquals(emptyAttributes, userContext.getAttributes());
333+
}
280334
}

0 commit comments

Comments
 (0)