import 'package:flutter_test/flutter_test.dart';
import 'package:seos_mobile_keys_plugin/app_usage_api.dart';
import 'package:seos_mobile_keys_plugin/seos_mobile_keys_plugin_platform_interface.dart';
import 'package:plugin_platform_interface/plugin_platform_interface.dart';

class MockSeosMobileKeysPluginPlatform with MockPlatformInterfaceMixin implements SeosMobileKeysPluginPlatform {
  @override
  Future<bool> isEndpointSetup() => Future.value(true);

  @override
  Future<void> setupEndpoint(String invitationCode) => Future.value();

  @override
  Future<void> startUp(Map<String?, Object?> options) => Future.value();

  @override
  Future<bool> activateMobileKey(MobileKeysKey key) {
    // TODO: implement activateMobileKey
    throw UnimplementedError();
  }

  @override
  Future<void> analytics(bool enable) {
    // TODO: implement analytics
    throw UnimplementedError();
  }

  @override
  Future<String> apiVersion() {
    // TODO: implement apiVersion
    throw UnimplementedError();
  }

  @override
  Future<void> cancelReaderConnection(MobileKeysReader reader) {
    // TODO: implement cancelReaderConnection
    throw UnimplementedError();
  }

  @override
  Future<MobileKeysReader?> closestReaderWithinRangeOfOpeningType(MobileKeysOpeningType type) {
    // TODO: implement closestReaderWithinRangeOfOpeningType
    throw UnimplementedError();
  }

  @override
  Future<void> connectToReader(MobileKeysReader reader, MobileKeysOpeningType openingType) {
    // TODO: implement connectToReader
    throw UnimplementedError();
  }

  @override
  Future<bool> deactivateMobileKey(MobileKeysKey key) {
    // TODO: implement deactivateMobileKey
    throw UnimplementedError();
  }

  @override
  Future<bool> deviceHasBluetoothTurnedOn() {
    // TODO: implement deviceHasBluetoothTurnedOn
    throw UnimplementedError();
  }

  @override
  Future<bool> deviceSupportsBluetoothLowEnergy() {
    // TODO: implement deviceSupportsBluetoothLowEnergy
    throw UnimplementedError();
  }

  @override
  Future<MobileKeysEndpointInfo> endpointInfo() {
    // TODO: implement endpointInfo
    throw UnimplementedError();
  }

  @override
  Future<void> forceConnectToReader(MobileKeysReader reader, MobileKeysOpeningType openingType) {
    // TODO: implement forceConnectToReader
    throw UnimplementedError();
  }

  @override
  Future<String> generateOTPForKey(MobileKeysKey key) {
    // TODO: implement generateOTPForKey
    throw UnimplementedError();
  }

  @override
  Future<List<MobileKeysInfoType>> healthCheck() {
    // TODO: implement healthCheck
    throw UnimplementedError();
  }

  @override
  Future<bool> isAnalyticsEnabled() {
    // TODO: implement isAnalyticsEnabled
    throw UnimplementedError();
  }

  @override
  Future<bool> isScanning() {
    // TODO: implement isScanning
    throw UnimplementedError();
  }

  @override
  Future<MobileKeysLastAuthenticationInfo> lastAuthenticationInfo() {
    // TODO: implement lastAuthenticationInfo
    throw UnimplementedError();
  }

  @override
  Future<List<MobileKeysKey>> listMobileKeys() {
    // TODO: implement listMobileKeys
    throw UnimplementedError();
  }

  @override
  Future<List<MobileKeysReader>> listReaders() {
    // TODO: implement listReaders
    throw UnimplementedError();
  }

  @override
  Future<void> openClosestReader() {
    // TODO: implement openClosestReader
    throw UnimplementedError();
  }

  @override
  Future<int> otpCounterForKey(MobileKeysKey key) {
    // TODO: implement otpCounterForKey
    throw UnimplementedError();
  }

  @override
  Future<void> removeRootOpeningTrigger() {
    // TODO: implement removeRootOpeningTrigger
    throw UnimplementedError();
  }

  @override
  Future<void> setRootOpeningTrigger() {
    // TODO: implement setRootOpeningTrigger
    throw UnimplementedError();
  }

  @override
  Future<void> setSupportedOpeningTypes(List<MobileKeysOpeningType> supportedOpeningTypes) {
    // TODO: implement setSupportedOpeningTypes
    throw UnimplementedError();
  }

  @override
  Future<void> setTimeoutConfiguration(MobileKeysTimeoutConfiguration timeoutConfiguration) {
    // TODO: implement setTimeoutConfiguration
    throw UnimplementedError();
  }

  @override
  Future<void> startReaderScan(MobileKeysScanMode mode, List<MobileKeysOpeningType?> supportedOpeningTypes, List<int?> lockServiceCodes   ) {
    // TODO: implement startReaderScan
    throw UnimplementedError();
  }

  @override
  Future<void> stopReaderScan() {
    // TODO: implement stopReaderScan
    throw UnimplementedError();
  }

  @override
  Future<void> terminateEndpoint() {
    // TODO: implement terminateEndpoint
    throw UnimplementedError();
  }

  @override
  Future<void> updateEndpoint() {
    // TODO: implement updateEndpoint
    throw UnimplementedError();
  }
}

void main() {
  final SeosMobileKeysPluginPlatform initialPlatform = SeosMobileKeysPluginPlatform.instance;
}