15 changed files with 463 additions and 0 deletions
			
			
		@ -0,0 +1,131 @@
					 | 
				
			||||
#!/bin/bash | 
				
			||||
 | 
				
			||||
## Copyright (c) 2023. Open Mobile Platform LLC. | 
				
			||||
## License: Proprietary. | 
				
			||||
## | 
				
			||||
## SPDX-FileCopyrightText: 2023 Open Mobile Platform LLC <community@omp.ru> | 
				
			||||
# SPDX-License-Identifier: BSD-3-Clause | 
				
			||||
## Contact: https://community.omprussia.ru/open-source | 
				
			||||
## | 
				
			||||
## This file is part of the Aurora OS Application Template project. | 
				
			||||
## | 
				
			||||
## Redistribution and use in source and binary forms, | 
				
			||||
## with or without modification, are permitted provided | 
				
			||||
## that the following conditions are met: | 
				
			||||
## | 
				
			||||
## * Redistributions of source code must retain the above copyright notice, | 
				
			||||
##   this list of conditions and the following disclaimer. | 
				
			||||
## * Redistributions in binary form must reproduce the above copyright notice, | 
				
			||||
##   this list of conditions and the following disclaimer | 
				
			||||
##   in the documentation and/or other materials provided with the distribution. | 
				
			||||
## * Neither the name of the copyright holder nor the names of its contributors | 
				
			||||
##   may be used to endorse or promote products derived from this software | 
				
			||||
##   without specific prior written permission. | 
				
			||||
## | 
				
			||||
## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | 
				
			||||
## AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, | 
				
			||||
## THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS | 
				
			||||
## FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | 
				
			||||
## IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE | 
				
			||||
## FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, | 
				
			||||
## OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | 
				
			||||
## PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 
				
			||||
## LOSS OF USE, DATA, OR PROFITS; | 
				
			||||
## OR BUSINESS INTERRUPTION) | 
				
			||||
## HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, | 
				
			||||
## WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 
				
			||||
## (INCLUDING NEGLIGENCE OR OTHERWISE) | 
				
			||||
## ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, | 
				
			||||
## EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 
				
			||||
 | 
				
			||||
## Build example, sign rpm, upload/install/run rpm to device | 
				
			||||
 | 
				
			||||
## Usage | 
				
			||||
## | 
				
			||||
## chmod +x ./run.sh | 
				
			||||
## | 
				
			||||
## ./run.sh \ | 
				
			||||
##   -d <ip>:<password> \ | 
				
			||||
##   -s /home/user/sign/folder | 
				
			||||
 | 
				
			||||
sudo echo 'Start...'; | 
				
			||||
 | 
				
			||||
## Flutter path | 
				
			||||
FLUTTER="$HOME/.local/opt/flutter/bin/flutter" | 
				
			||||
 | 
				
			||||
## https://developer.auroraos.ru/doc/software_development/psdk/setup | 
				
			||||
## Install Platform SDK path | 
				
			||||
## You may not have set the PSDK_DIR environment variable. | 
				
			||||
## export PSDK_DIR=$HOME/AuroraPlatformSDK/sdks/aurora_psdk | 
				
			||||
 | 
				
			||||
while getopts d:s: flag; do | 
				
			||||
  case "${flag}" in | 
				
			||||
  d) device=${OPTARG} ;; | 
				
			||||
  s) sign=${OPTARG} ;; | 
				
			||||
  *) | 
				
			||||
    echo "usage: $0 [-d] [-s]" >&2 | 
				
			||||
    exit 1 | 
				
			||||
    ;; | 
				
			||||
  esac | 
				
			||||
done | 
				
			||||
 | 
				
			||||
## Update dependency | 
				
			||||
$FLUTTER pub get | 
				
			||||
 | 
				
			||||
## Generate internationalizing | 
				
			||||
$FLUTTER pub run build_runner build | 
				
			||||
 | 
				
			||||
## Run ffigen | 
				
			||||
# $FLUTTER pub run ffigen | 
				
			||||
 | 
				
			||||
## Build aurora example app | 
				
			||||
{ | 
				
			||||
    $FLUTTER build aurora --release | 
				
			||||
} || { | 
				
			||||
  exit 1; | 
				
			||||
} | 
				
			||||
 | 
				
			||||
if [ -n "$sign" ]; then | 
				
			||||
 | 
				
			||||
  key=$(ls "$sign"/*key.pem) | 
				
			||||
 | 
				
			||||
  if [ -z "$key" ]; then | 
				
			||||
    echo "Key *key.pem not found." | 
				
			||||
    exit | 
				
			||||
  fi | 
				
			||||
 | 
				
			||||
  cert=$(ls "$sign"/*cert.pem) | 
				
			||||
 | 
				
			||||
  if [ -z "$cert" ]; then | 
				
			||||
    echo "Key *cert.pem not found." | 
				
			||||
    exit | 
				
			||||
  fi | 
				
			||||
 | 
				
			||||
  ## Sign rpm system key | 
				
			||||
  "$PSDK_DIR"/sdk-chroot rpmsign-external sign \ | 
				
			||||
    --key "$key" \ | 
				
			||||
    --cert "$cert" \ | 
				
			||||
    build/aurora/arm/release/RPMS/*.rpm | 
				
			||||
fi | 
				
			||||
 | 
				
			||||
if [ -n "$device" ]; then | 
				
			||||
 | 
				
			||||
  PACKAGE="ru.auroraos.flutter_example_packages" | 
				
			||||
 | 
				
			||||
  IFS=':' read -ra ADDR <<< "$device" | 
				
			||||
 | 
				
			||||
  D_IP="${ADDR[0]}" | 
				
			||||
  D_PASS="${ADDR[1]}" | 
				
			||||
 | 
				
			||||
  # shellcheck disable=SC2012 | 
				
			||||
  rpm=$(ls "$PWD"/build/aurora/arm/release/RPMS/*.rpm | sort -r | head -n 1) | 
				
			||||
 | 
				
			||||
  # upload rpm | 
				
			||||
  scp "$rpm" defaultuser@"$D_IP:/home/defaultuser/Downloads" | 
				
			||||
 | 
				
			||||
  # install rpm | 
				
			||||
  ssh -t defaultuser@"$D_IP" "echo $D_PASS | devel-su pkcon -y install-local /home/defaultuser/Downloads/$PACKAGE*.rpm" | 
				
			||||
 | 
				
			||||
  # run application | 
				
			||||
  ssh -t defaultuser@"$D_IP" "/usr/bin/$PACKAGE" | 
				
			||||
fi | 
				
			||||
@ -0,0 +1,30 @@
					 | 
				
			||||
# Miscellaneous | 
				
			||||
*.class | 
				
			||||
*.log | 
				
			||||
*.pyc | 
				
			||||
*.swp | 
				
			||||
.DS_Store | 
				
			||||
.atom/ | 
				
			||||
.buildlog/ | 
				
			||||
.history | 
				
			||||
.svn/ | 
				
			||||
migrate_working_dir/ | 
				
			||||
 | 
				
			||||
# IntelliJ related | 
				
			||||
*.iml | 
				
			||||
*.ipr | 
				
			||||
*.iws | 
				
			||||
.idea/ | 
				
			||||
 | 
				
			||||
# The .vscode folder contains launch configuration and tasks you configure in | 
				
			||||
# VS Code which you may wish to be included in version control, so this line | 
				
			||||
# is commented out by default. | 
				
			||||
#.vscode/ | 
				
			||||
 | 
				
			||||
# Flutter/Dart/Pub related | 
				
			||||
# Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock. | 
				
			||||
/pubspec.lock | 
				
			||||
**/doc/api/ | 
				
			||||
.dart_tool/ | 
				
			||||
.packages | 
				
			||||
build/ | 
				
			||||
@ -0,0 +1,30 @@
					 | 
				
			||||
# This file tracks properties of this Flutter project. | 
				
			||||
# Used by Flutter tool to assess capabilities and perform upgrades etc. | 
				
			||||
# | 
				
			||||
# This file should be version controlled. | 
				
			||||
 | 
				
			||||
version: | 
				
			||||
  revision: 135454af32477f815a7525073027a3ff9eff1bfd | 
				
			||||
  channel: aurora | 
				
			||||
 | 
				
			||||
project_type: plugin | 
				
			||||
 | 
				
			||||
# Tracks metadata for the flutter migrate command | 
				
			||||
migration: | 
				
			||||
  platforms: | 
				
			||||
    - platform: root | 
				
			||||
      create_revision: 135454af32477f815a7525073027a3ff9eff1bfd | 
				
			||||
      base_revision: 135454af32477f815a7525073027a3ff9eff1bfd | 
				
			||||
    - platform: aurora | 
				
			||||
      create_revision: 135454af32477f815a7525073027a3ff9eff1bfd | 
				
			||||
      base_revision: 135454af32477f815a7525073027a3ff9eff1bfd | 
				
			||||
 | 
				
			||||
  # User provided section | 
				
			||||
 | 
				
			||||
  # List of Local paths (relative to this file) that should be | 
				
			||||
  # ignored by the migrate tool. | 
				
			||||
  # | 
				
			||||
  # Files that are not part of the templates will be ignored by default. | 
				
			||||
  unmanaged_files: | 
				
			||||
    - 'lib/main.dart' | 
				
			||||
    - 'ios/Runner.xcodeproj/project.pbxproj' | 
				
			||||
@ -0,0 +1,22 @@
					 | 
				
			||||
# sensors_plus_aurora | 
				
			||||
 | 
				
			||||
The Aurora implementation of [`sensors_plus`](https://pub.dev/packages/sensors_plus). | 
				
			||||
 | 
				
			||||
## Usage | 
				
			||||
 | 
				
			||||
This package is not an _endorsed_ implementation of `sensors_plus`. | 
				
			||||
Therefore, you have to include `sensors_plus_aurora` alongside `sensors_plus` as dependencies in your `pubspec.yaml` file. | 
				
			||||
 | 
				
			||||
**pubspec.yaml** | 
				
			||||
 | 
				
			||||
```yaml | 
				
			||||
dependencies: | 
				
			||||
  sensors_plus: ^3.0.2 | 
				
			||||
  sensors_plus_aurora: ^0.0.0 # @todo Not published  | 
				
			||||
``` | 
				
			||||
 | 
				
			||||
***.dart** | 
				
			||||
 | 
				
			||||
```dart | 
				
			||||
// @todo | 
				
			||||
``` | 
				
			||||
@ -0,0 +1,4 @@
					 | 
				
			||||
# SPDX-FileCopyrightText: 2023 Open Mobile Platform LLC <community@omp.ru> | 
				
			||||
# SPDX-License-Identifier: BSD-3-Clause | 
				
			||||
 | 
				
			||||
include: package:flutter_lints/flutter.yaml | 
				
			||||
@ -0,0 +1,26 @@
					 | 
				
			||||
# SPDX-FileCopyrightText: 2023 Open Mobile Platform LLC <community@omp.ru> | 
				
			||||
# SPDX-License-Identifier: BSD-3-Clause | 
				
			||||
 | 
				
			||||
cmake_minimum_required(VERSION 3.10) | 
				
			||||
 | 
				
			||||
set(PROJECT_NAME sensors_plus_aurora) | 
				
			||||
set(PLUGIN_NAME  sensors_plus_aurora_platform_plugin) | 
				
			||||
 | 
				
			||||
project(${PROJECT_NAME} LANGUAGES CXX) | 
				
			||||
 | 
				
			||||
set(CMAKE_CXX_STANDARD 17) | 
				
			||||
set(CMAKE_CXX_STANDARD_REQUIRED ON) | 
				
			||||
 | 
				
			||||
set(CMAKE_CXX_FLAGS "-Wall -Wextra -Wno-psabi") | 
				
			||||
set(CMAKE_CXX_FLAGS_RELEASE "-O3") | 
				
			||||
 | 
				
			||||
find_package(PkgConfig REQUIRED) | 
				
			||||
pkg_check_modules(FlutterEmbedder REQUIRED IMPORTED_TARGET flutter-embedder) | 
				
			||||
 | 
				
			||||
add_library(${PLUGIN_NAME} SHARED sensors_plus_aurora_plugin.cpp) | 
				
			||||
 | 
				
			||||
set_target_properties(${PLUGIN_NAME} PROPERTIES CXX_VISIBILITY_PRESET hidden) | 
				
			||||
target_link_libraries(${PLUGIN_NAME} PRIVATE PkgConfig::FlutterEmbedder) | 
				
			||||
 | 
				
			||||
target_include_directories(${PLUGIN_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) | 
				
			||||
target_compile_definitions(${PLUGIN_NAME} PRIVATE PLUGIN_IMPL) | 
				
			||||
@ -0,0 +1,15 @@
					 | 
				
			||||
/**
 | 
				
			||||
 * SPDX-FileCopyrightText: 2023 Open Mobile Platform LLC <community@omp.ru> | 
				
			||||
 * SPDX-License-Identifier: BSD-3-Clause | 
				
			||||
 */ | 
				
			||||
 | 
				
			||||
#ifndef FLUTTER_PLUGIN_SENSORS_PLUS_AURORA_PLUGIN_GLOBALS_H | 
				
			||||
#define FLUTTER_PLUGIN_SENSORS_PLUS_AURORA_PLUGIN_GLOBALS_H | 
				
			||||
 | 
				
			||||
#ifdef PLUGIN_IMPL | 
				
			||||
#define PLUGIN_EXPORT __attribute__((visibility("default"))) | 
				
			||||
#else | 
				
			||||
#define PLUGIN_EXPORT | 
				
			||||
#endif | 
				
			||||
 | 
				
			||||
#endif /* FLUTTER_PLUGIN_SENSORS_PLUS_AURORA_PLUGIN_GLOBALS_H */ | 
				
			||||
@ -0,0 +1,23 @@
					 | 
				
			||||
/**
 | 
				
			||||
 * SPDX-FileCopyrightText: 2023 Open Mobile Platform LLC <community@omp.ru> | 
				
			||||
 * SPDX-License-Identifier: BSD-3-Clause | 
				
			||||
 */ | 
				
			||||
 | 
				
			||||
#ifndef FLUTTER_PLUGIN_SENSORS_PLUS_AURORA_PLUGIN_H | 
				
			||||
#define FLUTTER_PLUGIN_SENSORS_PLUS_AURORA_PLUGIN_H | 
				
			||||
 | 
				
			||||
#include <flutter/plugin-interface.h> | 
				
			||||
#include <sensors_plus_aurora/globals.h> | 
				
			||||
 | 
				
			||||
class PLUGIN_EXPORT SensorsPlusAuroraPlugin final : public PluginInterface | 
				
			||||
{ | 
				
			||||
public: | 
				
			||||
    void RegisterWithRegistrar(PluginRegistrar ®istrar) override; | 
				
			||||
 | 
				
			||||
private: | 
				
			||||
    void onMethodCall(const MethodCall &call); | 
				
			||||
    void onGetPlatformVersion(const MethodCall &call); | 
				
			||||
    void unimplemented(const MethodCall &call); | 
				
			||||
}; | 
				
			||||
 | 
				
			||||
#endif /* FLUTTER_PLUGIN_SENSORS_PLUS_AURORA_PLUGIN_H */ | 
				
			||||
@ -0,0 +1,43 @@
					 | 
				
			||||
/**
 | 
				
			||||
 * SPDX-FileCopyrightText: 2023 Open Mobile Platform LLC <community@omp.ru> | 
				
			||||
 * SPDX-License-Identifier: BSD-3-Clause | 
				
			||||
 */ | 
				
			||||
 | 
				
			||||
#include <sensors_plus_aurora/sensors_plus_aurora_plugin.h> | 
				
			||||
#include <flutter/method-channel.h> | 
				
			||||
#include <sys/utsname.h> | 
				
			||||
 | 
				
			||||
void SensorsPlusAuroraPlugin::RegisterWithRegistrar(PluginRegistrar ®istrar) | 
				
			||||
{ | 
				
			||||
    registrar.RegisterMethodChannel("sensors_plus_aurora", | 
				
			||||
                                    MethodCodecType::Standard, | 
				
			||||
                                    [this](const MethodCall &call) { this->onMethodCall(call); }); | 
				
			||||
} | 
				
			||||
 | 
				
			||||
void SensorsPlusAuroraPlugin::onMethodCall(const MethodCall &call) | 
				
			||||
{ | 
				
			||||
    const auto &method = call.GetMethod(); | 
				
			||||
 | 
				
			||||
    if (method == "getPlatformVersion") { | 
				
			||||
        onGetPlatformVersion(call); | 
				
			||||
        return; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    unimplemented(call); | 
				
			||||
} | 
				
			||||
 | 
				
			||||
void SensorsPlusAuroraPlugin::onGetPlatformVersion(const MethodCall &call) | 
				
			||||
{ | 
				
			||||
    utsname uname_data{}; | 
				
			||||
    uname(&uname_data); | 
				
			||||
 | 
				
			||||
    std::string preamble = "Aurora (Linux): "; | 
				
			||||
    std::string version = preamble + uname_data.version; | 
				
			||||
 | 
				
			||||
    call.SendSuccessResponse(version); | 
				
			||||
} | 
				
			||||
 | 
				
			||||
void SensorsPlusAuroraPlugin::unimplemented(const MethodCall &call) | 
				
			||||
{ | 
				
			||||
    call.SendSuccessResponse(nullptr); | 
				
			||||
} | 
				
			||||
@ -0,0 +1,8 @@
					 | 
				
			||||
 | 
				
			||||
import 'sensors_plus_aurora_platform_interface.dart'; | 
				
			||||
 | 
				
			||||
class SensorsPlusAurora { | 
				
			||||
  Future<String?> getPlatformVersion() { | 
				
			||||
    return SensorsPlusAuroraPlatform.instance.getPlatformVersion(); | 
				
			||||
  } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,17 @@
					 | 
				
			||||
import 'package:flutter/foundation.dart'; | 
				
			||||
import 'package:flutter/services.dart'; | 
				
			||||
 | 
				
			||||
import 'sensors_plus_aurora_platform_interface.dart'; | 
				
			||||
 | 
				
			||||
/// An implementation of [SensorsPlusAuroraPlatform] that uses method channels. | 
				
			||||
class MethodChannelSensorsPlusAurora extends SensorsPlusAuroraPlatform { | 
				
			||||
  /// The method channel used to interact with the native platform. | 
				
			||||
  @visibleForTesting | 
				
			||||
  final methodChannel = const MethodChannel('sensors_plus_aurora'); | 
				
			||||
 | 
				
			||||
  @override | 
				
			||||
  Future<String?> getPlatformVersion() async { | 
				
			||||
    final version = await methodChannel.invokeMethod<String>('getPlatformVersion'); | 
				
			||||
    return version; | 
				
			||||
  } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,29 @@
					 | 
				
			||||
import 'package:plugin_platform_interface/plugin_platform_interface.dart'; | 
				
			||||
 | 
				
			||||
import 'sensors_plus_aurora_method_channel.dart'; | 
				
			||||
 | 
				
			||||
abstract class SensorsPlusAuroraPlatform extends PlatformInterface { | 
				
			||||
  /// Constructs a SensorsPlusAuroraPlatform. | 
				
			||||
  SensorsPlusAuroraPlatform() : super(token: _token); | 
				
			||||
 | 
				
			||||
  static final Object _token = Object(); | 
				
			||||
 | 
				
			||||
  static SensorsPlusAuroraPlatform _instance = MethodChannelSensorsPlusAurora(); | 
				
			||||
 | 
				
			||||
  /// The default instance of [SensorsPlusAuroraPlatform] to use. | 
				
			||||
  /// | 
				
			||||
  /// Defaults to [MethodChannelSensorsPlusAurora]. | 
				
			||||
  static SensorsPlusAuroraPlatform get instance => _instance; | 
				
			||||
 | 
				
			||||
  /// Platform-specific implementations should set this with their own | 
				
			||||
  /// platform-specific class that extends [SensorsPlusAuroraPlatform] when | 
				
			||||
  /// they register themselves. | 
				
			||||
  static set instance(SensorsPlusAuroraPlatform instance) { | 
				
			||||
    PlatformInterface.verifyToken(instance, _token); | 
				
			||||
    _instance = instance; | 
				
			||||
  } | 
				
			||||
 | 
				
			||||
  Future<String?> getPlatformVersion() { | 
				
			||||
    throw UnimplementedError('platformVersion() has not been implemented.'); | 
				
			||||
  } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,26 @@
					 | 
				
			||||
# SPDX-FileCopyrightText: 2023 Open Mobile Platform LLC <community@omp.ru> | 
				
			||||
# SPDX-License-Identifier: BSD-3-Clause | 
				
			||||
 | 
				
			||||
name: sensors_plus_aurora | 
				
			||||
description: A new Flutter plugin project. | 
				
			||||
version: 0.0.1 | 
				
			||||
 | 
				
			||||
environment: | 
				
			||||
  sdk: '>=2.18.6 <3.0.0' | 
				
			||||
  flutter: ">=3.0.0" | 
				
			||||
 | 
				
			||||
dependencies: | 
				
			||||
  flutter: | 
				
			||||
    sdk: flutter | 
				
			||||
  plugin_platform_interface: ^2.0.2 | 
				
			||||
 | 
				
			||||
dev_dependencies: | 
				
			||||
  flutter_test: | 
				
			||||
    sdk: flutter | 
				
			||||
  flutter_lints: ^2.0.0 | 
				
			||||
 | 
				
			||||
flutter: | 
				
			||||
  plugin: | 
				
			||||
    platforms: | 
				
			||||
      aurora: | 
				
			||||
        pluginClass: SensorsPlusAuroraPlugin | 
				
			||||
@ -0,0 +1,27 @@
					 | 
				
			||||
// SPDX-FileCopyrightText: 2023 Open Mobile Platform LLC <community@omp.ru> | 
				
			||||
// SPDX-License-Identifier: BSD-3-Clause | 
				
			||||
 | 
				
			||||
import 'package:flutter/services.dart'; | 
				
			||||
import 'package:flutter_test/flutter_test.dart'; | 
				
			||||
import 'package:sensors_plus_aurora/sensors_plus_aurora_method_channel.dart'; | 
				
			||||
 | 
				
			||||
void main() { | 
				
			||||
  MethodChannelSensorsPlusAurora platform = MethodChannelSensorsPlusAurora(); | 
				
			||||
  const MethodChannel channel = MethodChannel('sensors_plus_aurora'); | 
				
			||||
 | 
				
			||||
  TestWidgetsFlutterBinding.ensureInitialized(); | 
				
			||||
 | 
				
			||||
  setUp(() { | 
				
			||||
    channel.setMockMethodCallHandler((MethodCall methodCall) async { | 
				
			||||
      return '42'; | 
				
			||||
    }); | 
				
			||||
  }); | 
				
			||||
 | 
				
			||||
  tearDown(() { | 
				
			||||
    channel.setMockMethodCallHandler(null); | 
				
			||||
  }); | 
				
			||||
 | 
				
			||||
  test('getPlatformVersion', () async { | 
				
			||||
    expect(await platform.getPlatformVersion(), '42'); | 
				
			||||
  }); | 
				
			||||
} | 
				
			||||
@ -0,0 +1,32 @@
					 | 
				
			||||
// SPDX-FileCopyrightText: 2023 Open Mobile Platform LLC <community@omp.ru> | 
				
			||||
// SPDX-License-Identifier: BSD-3-Clause | 
				
			||||
 | 
				
			||||
import 'package:flutter_test/flutter_test.dart'; | 
				
			||||
import 'package:sensors_plus_aurora/sensors_plus_aurora.dart'; | 
				
			||||
import 'package:sensors_plus_aurora/sensors_plus_aurora_platform_interface.dart'; | 
				
			||||
import 'package:sensors_plus_aurora/sensors_plus_aurora_method_channel.dart'; | 
				
			||||
import 'package:plugin_platform_interface/plugin_platform_interface.dart'; | 
				
			||||
 | 
				
			||||
class MockSensorsPlusAuroraPlatform | 
				
			||||
    with MockPlatformInterfaceMixin | 
				
			||||
    implements SensorsPlusAuroraPlatform { | 
				
			||||
 | 
				
			||||
  @override | 
				
			||||
  Future<String?> getPlatformVersion() => Future.value('42'); | 
				
			||||
} | 
				
			||||
 | 
				
			||||
void main() { | 
				
			||||
  final SensorsPlusAuroraPlatform initialPlatform = SensorsPlusAuroraPlatform.instance; | 
				
			||||
 | 
				
			||||
  test('$MethodChannelSensorsPlusAurora is the default instance', () { | 
				
			||||
    expect(initialPlatform, isInstanceOf<MethodChannelSensorsPlusAurora>()); | 
				
			||||
  }); | 
				
			||||
 | 
				
			||||
  test('getPlatformVersion', () async { | 
				
			||||
    SensorsPlusAurora sensorsPlusAuroraPlugin = SensorsPlusAurora(); | 
				
			||||
    MockSensorsPlusAuroraPlatform fakePlatform = MockSensorsPlusAuroraPlatform(); | 
				
			||||
    SensorsPlusAuroraPlatform.instance = fakePlatform; | 
				
			||||
 | 
				
			||||
    expect(await sensorsPlusAuroraPlugin.getPlatformVersion(), '42'); | 
				
			||||
  }); | 
				
			||||
} | 
				
			||||
					Loading…
					
					
				
		Reference in new issue