import 'dart:typed_data'; import 'package:flutter_test/flutter_test.dart'; import 'package:plugin_platform_interface/plugin_platform_interface.dart'; import 'package:wechat_kit/src/constant.dart'; import 'package:wechat_kit/src/model/qrauth.dart'; import 'package:wechat_kit/src/model/req.dart'; import 'package:wechat_kit/src/model/resp.dart'; import 'package:wechat_kit/src/wechat_kit_method_channel.dart'; import 'package:wechat_kit/src/wechat_kit_platform_interface.dart'; class MockWechatKitPlatform with MockPlatformInterfaceMixin implements WechatKitPlatform { @override Future registerApp({ required String appId, required String? universalLink, }) { throw UnimplementedError(); } @override Stream reqStream() { throw UnimplementedError(); } @override Stream respStream() { throw UnimplementedError(); } @override Stream qrauthRespStream() { throw UnimplementedError(); } @override Future handleInitialWXReq() { throw UnimplementedError(); } @override Future isInstalled() { return Future.value(true); } @override Future isSupportApi() { throw UnimplementedError(); } @override Future isSupportStateApi() { throw UnimplementedError(); } @override Future openWechat() { throw UnimplementedError(); } // --- 微信APP授权登录 @override Future auth({ required List scope, String? state, int type = WechatAuthType.kNormal, }) { throw UnimplementedError(); } // --- 微信APP扫码登录 @override Future startQrauth({ required String appId, required List scope, required String noncestr, required String ticket, }) { throw UnimplementedError(); } @override Future stopQrauth() { throw UnimplementedError(); } // @override Future openUrl({ required String url, }) { throw UnimplementedError(); } @override Future openRankList() { throw UnimplementedError(); } @override Future shareText({ required int scene, required String text, }) { throw UnimplementedError(); } @override Future shareImage({ required int scene, String? title, String? description, Uint8List? thumbData, Uint8List? imageData, Uri? imageUri, }) { throw UnimplementedError(); } @override Future shareFile({ required int scene, String? title, String? description, Uint8List? thumbData, Uint8List? fileData, Uri? fileUri, String? fileExtension, }) { throw UnimplementedError(); } @override Future shareEmoji({ required int scene, String? title, String? description, required Uint8List thumbData, Uint8List? emojiData, Uri? emojiUri, }) { throw UnimplementedError(); } @override Future shareMediaMusic({ required int scene, String? title, String? description, Uint8List? thumbData, String? musicUrl, String? musicDataUrl, String? musicLowBandUrl, String? musicLowBandDataUrl, }) { throw UnimplementedError(); } @override Future shareVideo({ required int scene, String? title, String? description, Uint8List? thumbData, String? videoUrl, String? videoLowBandUrl, }) { throw UnimplementedError(); } @override Future shareWebpage({ required int scene, String? title, String? description, Uint8List? thumbData, required String webpageUrl, }) { throw UnimplementedError(); } @override Future shareMiniProgram({ required int scene, String? title, String? description, Uint8List? thumbData, required String webpageUrl, required String userName, String? path, Uint8List? hdImageData, bool withShareTicket = false, int type = WechatMiniProgram.kRelease, bool disableForward = false, }) { throw UnimplementedError(); } @override Future subscribeMsg({ required int scene, required String templateId, String? reserved, }) { throw UnimplementedError(); } @override Future launchMiniProgram({ required String userName, String? path, int type = WechatMiniProgram.kRelease, }) { throw UnimplementedError(); } @override Future openCustomerServiceChat({ required String corpId, required String url, }) { throw UnimplementedError(); } @override Future openBusinessView({ required String businessType, String? query, String? extInfo, }) { throw UnimplementedError(); } @override Future openBusinessWebview({ required int businessType, Map? resultInfo, }) { throw UnimplementedError(); } @override Future pay({ required String appId, required String partnerId, required String prepayId, required String package, required String nonceStr, required String timeStamp, required String sign, }) { throw UnimplementedError(); } } void main() { final WechatKitPlatform initialPlatform = WechatKitPlatform.instance; test('$MethodChannelWechatKit is the default instance', () { expect(initialPlatform, isInstanceOf()); }); test('isInstalled', () async { final MockWechatKitPlatform fakePlatform = MockWechatKitPlatform(); WechatKitPlatform.instance = fakePlatform; expect(await WechatKitPlatform.instance.isInstalled(), true); }); }