diff --git a/example/lib/core.dart b/example/lib/core.dart index 8cd1d56..158bfa6 100644 --- a/example/lib/core.dart +++ b/example/lib/core.dart @@ -13,7 +13,6 @@ import 'package:flutter/material.dart'; import 'dart:developer'; import 'package:flutter/services.dart'; import 'package:flutter_aepcore/flutter_aepcore.dart'; -import 'package:flutter_aepcore/flutter_aepcore_data.dart'; import 'package:flutter_aepcore/flutter_aeplifecycle.dart'; import 'package:flutter_aepcore/flutter_aepsignal.dart'; import 'util.dart'; diff --git a/example/lib/identity.dart b/example/lib/identity.dart index 397e9ed..885d56b 100644 --- a/example/lib/identity.dart +++ b/example/lib/identity.dart @@ -12,7 +12,6 @@ governing permissions and limitations under the License. import 'dart:developer'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:flutter_aepcore/flutter_aepcore_data.dart'; import 'package:flutter_aepcore/flutter_aepidentity.dart'; import 'util.dart'; diff --git a/example/lib/messaging.dart b/example/lib/messaging.dart index 24a28e8..67cd85c 100644 --- a/example/lib/messaging.dart +++ b/example/lib/messaging.dart @@ -11,9 +11,7 @@ governing permissions and limitations under the License. import 'dart:developer'; import 'package:flutter/material.dart'; -import 'package:flutter/services.dart'; import 'package:flutter_aepcore/flutter_aepcore.dart'; -import 'package:flutter_aepcore/flutter_aepcore_data.dart'; import 'package:flutter_aepmessaging/flutter_aepmessaging.dart'; import 'util.dart'; diff --git a/plugins/flutter_aepcore/CHANGELOG.md b/plugins/flutter_aepcore/CHANGELOG.md index c174567..7f27c6c 100644 --- a/plugins/flutter_aepcore/CHANGELOG.md +++ b/plugins/flutter_aepcore/CHANGELOG.md @@ -1,3 +1,7 @@ +## 5.0.2 + +* Add `MobileCore.setPushIdentifier` API to register a push notification token with the Adobe SDK. Accepts a push token string on Android and an APNs hex token string on iOS. The iOS native bridge converts the hex string to `NSData` internally before forwarding to the AEP SDK. + ## 5.0.1 * Add `MobileCore.setApplication` call in Android FlutterPlugin's `onAttachedToEngine` to accurately register lifecycle callbacks for launcher activity. diff --git a/plugins/flutter_aepcore/README.md b/plugins/flutter_aepcore/README.md index 88fec90..b3afdbd 100644 --- a/plugins/flutter_aepcore/README.md +++ b/plugins/flutter_aepcore/README.md @@ -327,6 +327,26 @@ static Future trackState MobileCore.trackState("myState", data: {"key1": "value1"}); ``` +### setPushIdentifier +Register a push notification token with the Adobe SDK. Pass `null` to clear a previously registered token. + +On **Android**, pass the push token string provided by your push notification service. +On **iOS**, pass the APNs device token as a lowercase hex string. The native bridge converts it to the raw bytes expected by the AEP SDK internally. + +**Syntax** +```dart +static Future setPushIdentifier(String? token) +``` + +**Example** +```dart +// Register a push token +MobileCore.setPushIdentifier(token); + +// Clear the push token +MobileCore.setPushIdentifier(null); +``` + ### Identity For more information on the Core Identity APIs, visit the documentation [here](https://developer.adobe.com/client-sdks/documentation/mobile-core/identity/). diff --git a/plugins/flutter_aepcore/android/src/main/java/com/adobe/marketing/mobile/flutter/flutter_aepcore/FlutterAEPCorePlugin.java b/plugins/flutter_aepcore/android/src/main/java/com/adobe/marketing/mobile/flutter/flutter_aepcore/FlutterAEPCorePlugin.java index 52c5db5..abd32cb 100644 --- a/plugins/flutter_aepcore/android/src/main/java/com/adobe/marketing/mobile/flutter/flutter_aepcore/FlutterAEPCorePlugin.java +++ b/plugins/flutter_aepcore/android/src/main/java/com/adobe/marketing/mobile/flutter/flutter_aepcore/FlutterAEPCorePlugin.java @@ -90,6 +90,9 @@ public void onMethodCall(MethodCall call, @NonNull Result result) { } else if ("setAdvertisingIdentifier".equals(call.method)) { handleSetAdvertisingIdentifier(call.arguments); result.success(null); + } else if ("setPushIdentifier".equals(call.method)) { + handleSetPushIdentifier(call.arguments); + result.success(null); } else if ("dispatchEvent".equals(call.method)) { handleDispatchEvent(result, call.arguments); } else if ("dispatchEventWithResponseCallback".equals(call.method)) { @@ -191,6 +194,16 @@ private void handleSetAdvertisingIdentifier(final Object arguments) { } } + private void handleSetPushIdentifier(final Object arguments) { + if (arguments == null) { + MobileCore.setPushIdentifier(null); + } + + if (arguments instanceof String) { + MobileCore.setPushIdentifier((String) arguments); + } + } + private void handleDispatchEvent(final Result result, final Object arguments) { if (!(arguments instanceof Map)) { Log.e(TAG, "Dispatch event failed because arguments were invalid"); diff --git a/plugins/flutter_aepcore/ios/Classes/FlutterAEPCorePlugin.m b/plugins/flutter_aepcore/ios/Classes/FlutterAEPCorePlugin.m index c48fce8..d4efee6 100644 --- a/plugins/flutter_aepcore/ios/Classes/FlutterAEPCorePlugin.m +++ b/plugins/flutter_aepcore/ios/Classes/FlutterAEPCorePlugin.m @@ -44,6 +44,9 @@ - (void)handleMethodCall:(FlutterMethodCall *)call NSString *aid = call.arguments; [AEPMobileCore setAdvertisingIdentifier:aid]; result(nil); + } else if ([@"setPushIdentifier" isEqualToString:call.method]) { + [self handleSetPushIdentifier:call]; + result(nil); } else if ([@"dispatchEvent" isEqualToString:call.method]) { [self handleDispatchEvent:call result:result]; } else if ([@"dispatchEventWithResponseCallback" @@ -198,6 +201,32 @@ - (void)handleResetIdentities:(FlutterMethodCall *)call { [AEPMobileCore resetIdentities]; } +- (void)handleSetPushIdentifier:(FlutterMethodCall *)call { + if (call.arguments == nil || call.arguments == [NSNull null]) { + [AEPMobileCore setPushIdentifier:nil]; + return; + } + + // The Dart layer sends the APNs token as a lowercase hex string (e.g. "a1b2c3d4..."). + // Convert it back to the original NSData bytes that AEP SDK expects. + NSString *hexString = call.arguments; + NSUInteger length = hexString.length; + if (length % 2 != 0) { + // Malformed hex string — clear the identifier rather than registering garbage. + [AEPMobileCore setPushIdentifier:nil]; + return; + } + NSMutableData *tokenData = [NSMutableData dataWithCapacity:length / 2]; + for (NSUInteger i = 0; i < length; i += 2) { + NSString *byteString = [hexString substringWithRange:NSMakeRange(i, 2)]; + unsigned int byte = 0; + [[NSScanner scannerWithString:byteString] scanHexInt:&byte]; + uint8_t byteValue = (uint8_t)byte; + [tokenData appendBytes:&byteValue length:1]; + } + [AEPMobileCore setPushIdentifier:tokenData]; +} + - (FlutterError *)flutterErrorFromNSError:(NSError *)error { return [FlutterError errorWithCode:[NSString stringWithFormat:@"%ld", (long)error.code] diff --git a/plugins/flutter_aepcore/lib/flutter_aepcore.dart b/plugins/flutter_aepcore/lib/flutter_aepcore.dart index eca771f..66400ab 100644 --- a/plugins/flutter_aepcore/lib/flutter_aepcore.dart +++ b/plugins/flutter_aepcore/lib/flutter_aepcore.dart @@ -26,7 +26,8 @@ class MobileCore { /// Initializes the AEP Mobile SDK with the provided initialization options. /// @param initOptions The [InitOptions] to configure the SDK. static Future initialize({required InitOptions initOptions}) { - return _channel.invokeMethod('initialize', {'initOptions': initOptions.toMap()}); + return _channel + .invokeMethod('initialize', {'initOptions': initOptions.toMap()}); } /// Initializes the AEP Mobile SDK with the provided App ID. @@ -69,6 +70,18 @@ class MobileCore { static Future setAdvertisingIdentifier(String aid) => _channel.invokeMethod('setAdvertisingIdentifier', aid); + /// Submits a generic event containing the provided push token with event type `generic.identity`. + /// + /// On **Android**, pass the push token string as provided by your push notification service. + /// On **iOS**, pass the APNs device token as a lowercase hex string. The native bridge + /// converts it to the raw bytes expected by the AEP SDK internally. + /// + /// Pass `null` to clear a previously registered token. + /// + /// @param token The push notification token string. Pass `null` to clear the identifier. + static Future setPushIdentifier(String? token) => + _channel.invokeMethod('setPushIdentifier', token); + /// Called by the extension public API to dispatch an event for other extensions or the internal SDK to consume. Any events dispatched by this call will not be processed until after `start` has been called. static Future dispatchEvent(Event event) => _channel.invokeMethod('dispatchEvent', event.data); diff --git a/plugins/flutter_aepcore/test/flutter_aepcore_test.dart b/plugins/flutter_aepcore/test/flutter_aepcore_test.dart index 1ab2da1..46a69be 100644 --- a/plugins/flutter_aepcore/test/flutter_aepcore_test.dart +++ b/plugins/flutter_aepcore/test/flutter_aepcore_test.dart @@ -20,34 +20,36 @@ void main() { TestWidgetsFlutterBinding.ensureInitialized(); group('extensionVersion', () { - final String testVersion = "2.5.0"; - final List log = []; + final String testVersion = "2.5.0"; + final List log = []; - setUp(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, (MethodCall methodCall) async { - log.add(methodCall); - return testVersion; + setUp(() { + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, (MethodCall methodCall) async { + log.add(methodCall); + return testVersion; + }); }); - }); - tearDown(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, null); - }); + tearDown(() { + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, null); + }); - test('invokes correct method', () async { - await MobileCore.extensionVersion; + test('invokes correct method', () async { + await MobileCore.extensionVersion; - expect(log, [ - isMethodCall( - 'extensionVersion', - arguments: null, - ), - ]); - }); + expect(log, [ + isMethodCall( + 'extensionVersion', + arguments: null, + ), + ]); + }); - test('returns correct result', () async { - expect(await MobileCore.extensionVersion, testVersion); - }); + test('returns correct result', () async { + expect(await MobileCore.extensionVersion, testVersion); + }); }); group('initialize', () { @@ -66,18 +68,20 @@ void main() { final List log = []; setUp(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, (MethodCall methodCall) async { + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, (MethodCall methodCall) async { log.add(methodCall); return null; }); }); tearDown(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, null); + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, null); }); test('invokes correct method', () async { - await MobileCore.initialize(initOptions:initOptions); + await MobileCore.initialize(initOptions: initOptions); expect(log, [ isMethodCall( @@ -85,7 +89,8 @@ void main() { arguments: { 'initOptions': { 'appId': appId, - 'lifecycleAutomaticTrackingEnabled': lifecycleAutomaticTrackingEnabled, + 'lifecycleAutomaticTrackingEnabled': + lifecycleAutomaticTrackingEnabled, 'lifecycleAdditionalContextData': lifecycleAdditionalContextData, 'appGroupIOS': appGroup, }, @@ -101,18 +106,20 @@ void main() { final List log = []; setUp(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, (MethodCall methodCall) async { + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, (MethodCall methodCall) async { log.add(methodCall); return null; }); }); tearDown(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, null); + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, null); }); test('invokes correct method', () async { - await MobileCore.initializeWithAppId(appId:appId); + await MobileCore.initializeWithAppId(appId: appId); expect(log, [ isMethodCall( @@ -138,14 +145,16 @@ void main() { final List log = []; setUp(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, (MethodCall methodCall) async { + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, (MethodCall methodCall) async { log.add(methodCall); return null; }); }); tearDown(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, null); + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, null); }); test('invokes correct method', () async { @@ -163,7 +172,6 @@ void main() { ]); }); }); - group('trackState', () { final String testState = "myTestState"; @@ -173,17 +181,18 @@ void main() { final List log = []; setUp(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, (MethodCall methodCall) async { + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, (MethodCall methodCall) async { log.add(methodCall); return null; }); }); tearDown(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, null); + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, null); }); - test('invokes correct method', () async { await MobileCore.trackState(testState, data: testContextData); @@ -204,18 +213,19 @@ void main() { final String testAdId = "test-aid"; final List log = []; - setUp(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, (MethodCall methodCall) async { + setUp(() { + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, (MethodCall methodCall) async { log.add(methodCall); return null; }); }); tearDown(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, null); + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, null); }); - test('invokes correct method', () async { await MobileCore.setAdvertisingIdentifier(testAdId); @@ -228,6 +238,47 @@ void main() { }); }); + group('setPushIdentifier', () { + final String testPushToken = "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4"; + final List log = []; + + setUp(() { + log.clear(); + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, (MethodCall methodCall) async { + log.add(methodCall); + return null; + }); + }); + + tearDown(() { + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, null); + }); + + test('invokes correct method with token', () async { + await MobileCore.setPushIdentifier(testPushToken); + + expect(log, [ + isMethodCall( + 'setPushIdentifier', + arguments: testPushToken, + ), + ]); + }); + + test('invokes correct method with null token', () async { + await MobileCore.setPushIdentifier(null); + + expect(log, [ + isMethodCall( + 'setPushIdentifier', + arguments: null, + ), + ]); + }); + }); + group('dispatchEvent', () { final Map eventConstructorData = { "eventName": "testresponseEvent", @@ -239,17 +290,18 @@ void main() { final List log = []; setUp(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, (MethodCall methodCall) async { + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, (MethodCall methodCall) async { log.add(methodCall); return true; }); }); tearDown(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, null); + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, null); }); - test('invokes correct method', () async { await MobileCore.dispatchEvent(expectedEvent); @@ -280,17 +332,18 @@ void main() { final List log = []; setUp(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, (MethodCall methodCall) async { - log.add(methodCall); - return returnedEvent.data; + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, (MethodCall methodCall) async { + log.add(methodCall); + return returnedEvent.data; }); }); tearDown(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, null); + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, null); }); - test('invokes correct method', () async { await MobileCore.dispatchEventWithResponseCallback(expectedEvent, 1000); @@ -337,18 +390,19 @@ void main() { final String testSdkIdentities = "sdkIdentities"; final List log = []; - setUp(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, (MethodCall methodCall) async { + setUp(() { + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, (MethodCall methodCall) async { log.add(methodCall); return testSdkIdentities; }); }); tearDown(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, null); + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, null); }); - test('invokes correct method', () async { await MobileCore.sdkIdentities; @@ -369,18 +423,19 @@ void main() { group('getPrivacyStatus', () { final List log = []; - setUp(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, (MethodCall methodCall) async { + setUp(() { + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, (MethodCall methodCall) async { log.add(methodCall); return PrivacyStatus.opt_in.value; }); }); tearDown(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, null); + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, null); }); - test('invokes correct method', () async { await MobileCore.privacyStatus; @@ -403,17 +458,18 @@ void main() { final List log = []; setUp(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, (MethodCall methodCall) async { + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, (MethodCall methodCall) async { log.add(methodCall); return null; }); }); tearDown(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, null); + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, null); }); - test('invokes correct method', () async { await MobileCore.setLogLevel(logLevel); @@ -430,15 +486,17 @@ void main() { final PrivacyStatus privacyStatus = PrivacyStatus.opt_in; final List log = []; - setUp(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, (MethodCall methodCall) async { + setUp(() { + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, (MethodCall methodCall) async { log.add(methodCall); return null; }); }); tearDown(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, null); + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, null); }); test('invokes correct method', () async { @@ -458,17 +516,18 @@ void main() { final List log = []; setUp(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, (MethodCall methodCall) async { + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, (MethodCall methodCall) async { log.add(methodCall); return null; }); }); tearDown(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, null); + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, null); }); - test('invokes correct method', () async { await MobileCore.updateConfiguration(testConfig); @@ -485,17 +544,18 @@ void main() { final List log = []; setUp(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, (MethodCall methodCall) async { + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, (MethodCall methodCall) async { log.add(methodCall); return null; }); }); tearDown(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, null); + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, null); }); - test('invokes correct method', () async { await MobileCore.clearUpdatedConfiguration(); @@ -509,18 +569,19 @@ void main() { final Map testPiiData = {"testKey": "testValue"}; final List log = []; - setUp(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, (MethodCall methodCall) async { + setUp(() { + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, (MethodCall methodCall) async { log.add(methodCall); return null; }); }); tearDown(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, null); + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, null); }); - test('invokes correct method', () async { await MobileCore.collectPii(testPiiData); @@ -538,17 +599,18 @@ void main() { final List log = []; setUp(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, (MethodCall methodCall) async { + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, (MethodCall methodCall) async { log.add(methodCall); return null; }); }); tearDown(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, null); + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, null); }); - test('invokes correct method', () async { await MobileCore.setAppGroup(testAppGroup); diff --git a/plugins/flutter_aepedgeidentity/test/flutter_aepedgeidentitymap_test.dart b/plugins/flutter_aepedgeidentity/test/flutter_aepedgeidentitymap_test.dart index 63a0505..e02a557 100644 --- a/plugins/flutter_aepedgeidentity/test/flutter_aepedgeidentitymap_test.dart +++ b/plugins/flutter_aepedgeidentity/test/flutter_aepedgeidentitymap_test.dart @@ -40,14 +40,16 @@ void main() { final List log = []; setUp(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, (MethodCall methodCall) async { + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, (MethodCall methodCall) async { log.add(methodCall); return expectedItemsForNamespace1; }); }); tearDown(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, null); + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, null); }); test('is validated', () async { @@ -96,16 +98,16 @@ void main() { item2 ]; - final List log = []; - setUp(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, (MethodCall methodCall) async { + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, (MethodCall methodCall) async { return expectedItemsForNamespace1; }); }); tearDown(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, null); + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, null); }); test('test an invalid namespace', () async { @@ -143,14 +145,16 @@ void main() { final List log = []; setUp(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, (MethodCall methodCall) async { + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, (MethodCall methodCall) async { log.add(methodCall); return {}; }); }); tearDown(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, null); + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, null); }); test('same id and same item, should ignore the new added item', () async { @@ -204,14 +208,16 @@ void main() { final List log = []; setUp(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, (MethodCall methodCall) async { + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, (MethodCall methodCall) async { log.add(methodCall); return expectedItemsForNamespace2; }); }); tearDown(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, null); + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, null); }); test('is validated', () async { @@ -254,14 +260,16 @@ void main() { final List log = []; setUp(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, (MethodCall methodCall) async { + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, (MethodCall methodCall) async { log.add(methodCall); return null; }); }); tearDown(() { - TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger.setMockMethodCallHandler(channel, null); + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(channel, null); }); test('is validated', () async {