import 'package:flutter_test/flutter_test.dart'; import 'package:arc/arc.dart'; import 'package:arc/arc_platform_interface.dart'; import 'package:arc/arc_method_channel.dart'; import 'package:plugin_platform_interface/plugin_platform_interface.dart'; import 'dart:typed_data'; class MockArcPlatform with MockPlatformInterfaceMixin implements ArcPlatform { @override Future getPlatformVersion() => Future.value('42'); @override Future?> activeOnline({ required String appId, required String sdkKey, required String activeKey, }) => Future.value({'success': true, 'errorCode': 0, 'message': 'success'}); @override Future?> init({ int? detectMode, int? orient, int? maxFaceNum, int? combinedMask, }) => Future.value({'success': true, 'errorCode': 0, 'message': 'success'}); @override Future?> detectFaces({ required Uint8List data, required int width, required int height, int format = 2050, }) => Future.value({'success': true, 'errorCode': 0, 'faceList': [], 'rgbLiveness': 1, 'isRgbAlive': true}); @override Future?> extractFaceFeature({ required Uint8List data, required int width, required int height, required int rectLeft, required int rectTop, required int rectRight, required int rectBottom, int format = 2050, int faceOrientation = 0, int faceId = -1, Uint8List? faceData, int extractType = 1, int mask = 0, }) => Future.value({'success': true, 'errorCode': 0, 'featureData': Uint8List(512)}); @override Future?> compareFaceFeature({ required Uint8List featureData1, required Uint8List featureData2, int compareModel = 0, }) => Future.value({'success': true, 'errorCode': 0, 'similarity': 0.95}); @override Future?> registerFaceFeature({ required int searchId, required Uint8List featureData, String? faceTag, }) => Future.value({'success': true, 'errorCode': 0, 'message': 'success'}); @override Future?> registerFaceFeatureBatch({ required List> faceList, }) => Future.value({'success': true, 'errorCode': 0, 'message': 'success'}); } void main() { final ArcPlatform initialPlatform = ArcPlatform.instance; test('$MethodChannelArc is the default instance', () { expect(initialPlatform, isInstanceOf()); }); test('getPlatformVersion', () async { Arc arcPlugin = Arc(); MockArcPlatform fakePlatform = MockArcPlatform(); ArcPlatform.instance = fakePlatform; expect(await arcPlugin.getPlatformVersion(), '42'); }); }