@@ -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