Skip to content

Commit 8481ea7

Browse files
Unit test cases added for vuid
1 parent 09a2081 commit 8481ea7

File tree

3 files changed

+42
-9
lines changed

3 files changed

+42
-9
lines changed

ios/Classes/HelperClasses/Constants.swift

+1
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ struct RequestParameterKey {
114114
static let timeoutForSegmentFetchInSecs = "timeoutForSegmentFetchInSecs"
115115
static let timeoutForOdpEventInSecs = "timeoutForOdpEventInSecs"
116116
static let disableOdp = "disableOdp"
117+
static let enableVuid = "enableVuid"
117118
static let sdkVersion = "sdkVersion";
118119
}
119120

lib/src/data_objects/get_vuid_response.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import 'package:optimizely_flutter_sdk/src/data_objects/base_response.dart';
1818
import 'package:optimizely_flutter_sdk/src/utils/constants.dart';
1919

2020
class GetVuidResponse extends BaseResponse {
21-
String vuid = "";
21+
String? vuid;
2222

2323
GetVuidResponse(Map<String, dynamic> json) : super(json) {
2424
if (json[Constants.responseResult] is Map<dynamic, dynamic>) {

test/optimizely_flutter_sdk_test.dart

+40-8
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ void main() {
5656
SDKSettings sdkSettings = const SDKSettings();
5757
int datafilePeriodicDownloadInterval = 0;
5858
String defaultLogLevel = "error";
59-
6059
const MethodChannel channel = MethodChannel("optimizely_flutter_sdk");
6160
dynamic mockOptimizelyConfig;
6261

@@ -106,6 +105,7 @@ void main() {
106105
timeoutForOdpEventInSecs:
107106
settings[Constants.timeoutForOdpEventInSecs],
108107
disableOdp: settings[Constants.disableOdp],
108+
enableVuid: settings[Constants.enableVuid],
109109
);
110110
}
111111

@@ -175,17 +175,27 @@ void main() {
175175
};
176176
case Constants.createUserContextMethod:
177177
expect(methodCall.arguments[Constants.sdkKey], isNotEmpty);
178-
if (methodCall.arguments[Constants.userId] != null) {
178+
var resultUserId = userContextId;
179+
if (methodCall.arguments[Constants.userId] == null) {
180+
if (sdkSettings.enableVuid) {
181+
resultUserId = vuid;
182+
} else {
183+
return {
184+
Constants.responseSuccess: false,
185+
};
186+
}
187+
} else if (methodCall.arguments[Constants.userId] != null) {
179188
expect(methodCall.arguments[Constants.userId], equals(userId));
180189
}
190+
181191
if (methodCall.arguments[Constants.attributes]["abc"] != null) {
182192
expect(methodCall.arguments[Constants.attributes]["abc"],
183193
equals(attributes["abc"]));
184194
}
185195
expect(methodCall.arguments[Constants.userContextId], isNull);
186196
return {
187197
Constants.responseSuccess: true,
188-
Constants.responseResult: {Constants.userContextId: userContextId},
198+
Constants.responseResult: {Constants.userContextId: resultUserId},
189199
};
190200
case Constants.getUserIdMethod:
191201
expect(methodCall.arguments[Constants.sdkKey], isNotEmpty);
@@ -266,6 +276,8 @@ void main() {
266276
case Constants.getVuidMethod:
267277
expect(methodCall.arguments[Constants.sdkKey], isNotEmpty);
268278
expect(methodCall.arguments[Constants.userContextId], isNull);
279+
expect(methodCall.arguments[Constants.vuid], isNull);
280+
var vuid = sdkSettings.enableVuid ? "vuid_123" : null;
269281
return {
270282
Constants.responseSuccess: true,
271283
Constants.responseResult: {Constants.vuid: vuid},
@@ -376,6 +388,7 @@ void main() {
376388

377389
tearDown(() {
378390
tester?.setMockMethodCallHandler(channel, null);
391+
sdkSettings = const SDKSettings();
379392
});
380393

381394
group("Integration: OptimizelyFlutterSdk MethodChannel", () {
@@ -650,8 +663,17 @@ void main() {
650663
expect(userContext, isNotNull);
651664
});
652665

653-
test("should succeed null userId", () async {
666+
test("should fail when disable vuid and userId null", () async {
654667
var sdk = OptimizelyFlutterSdk(testSDKKey);
668+
sdk.initializeClient();
669+
var userContext = await sdk.createUserContext(attributes: attributes);
670+
expect(userContext, isNull);
671+
});
672+
673+
test("should succed when enable vuid and userId null", () async {
674+
const settings = SDKSettings(enableVuid: true);
675+
var sdk = OptimizelyFlutterSdk(testSDKKey, sdkSettings: settings);
676+
sdk.initializeClient();
655677
var userContext = await sdk.createUserContext(attributes: attributes);
656678
expect(userContext, isNotNull);
657679
});
@@ -662,10 +684,11 @@ void main() {
662684
expect(userContext, isNotNull);
663685
});
664686

665-
test("should succeed null userId and attributes", () async {
687+
test("should not succeed null userId and attributes", () async {
666688
var sdk = OptimizelyFlutterSdk(testSDKKey);
689+
sdk.initializeClient();
667690
var userContext = await sdk.createUserContext();
668-
expect(userContext, isNotNull);
691+
expect(userContext, isNull);
669692
});
670693
});
671694

@@ -769,11 +792,20 @@ void main() {
769792
});
770793

771794
group("getVuid()", () {
772-
test("should succeed", () async {
795+
test("by default should return null vuid", () async {
773796
var sdk = OptimizelyFlutterSdk(testSDKKey);
797+
sdk.initializeClient();
798+
var response = await sdk.getVuid();
799+
expect(response.success, isTrue);
800+
expect(response.vuid, isNull);
801+
});
802+
test("should return vuid when enableVuid true", () async {
803+
const settings = SDKSettings(enableVuid: true);
804+
var sdk = OptimizelyFlutterSdk(testSDKKey, sdkSettings: settings);
805+
sdk.initializeClient();
774806
var response = await sdk.getVuid();
775807
expect(response.success, isTrue);
776-
expect(response.vuid, equals(vuid));
808+
expect(response.vuid, "vuid_123");
777809
});
778810
});
779811

0 commit comments

Comments
 (0)