diff --git a/example/lib/core.dart b/example/lib/core.dart index 8cd1d566..158bfa60 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 397e9ed5..885d56b6 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 24a28e83..67cd85cf 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/README.md b/plugins/flutter_aepcore/README.md index 88fec909..b3afdbd0 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 52c5db54..abd32cb5 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 c48fce8e..8d6e8e08 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,35 @@ - (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) { + NSLog(@"[FlutterAEPCore] setPushIdentifier - Invalid APNs token: hex string has odd length (%lu), skipping.", (unsigned long)length); + return; + } + NSMutableData *tokenData = [NSMutableData dataWithCapacity:length / 2]; + for (NSUInteger i = 0; i < length; i += 2) { + NSString *byteString = [hexString substringWithRange:NSMakeRange(i, 2)]; + NSScanner *scanner = [NSScanner scannerWithString:byteString]; + unsigned int byte = 0; + if (![scanner scanHexInt:&byte] || !scanner.isAtEnd) { + NSLog(@"[FlutterAEPCore] setPushIdentifier - Invalid APNs token: non-hex character found at index %lu, skipping.", (unsigned long)i); + return; + } + 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 eca771f7..66400ab5 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 1ab2da1b..46a69beb 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 63a05059..e02a557d 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 {