blob: 43155c59692c03acc2eb481cce6fc95c8ae21b4e [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'dart:async';
import 'package:battery_platform_interface/battery_platform_interface.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:plugin_platform_interface/plugin_platform_interface.dart';
import 'package:battery/battery.dart';
import 'package:mockito/mockito.dart';
void main() {
group('battery', () {
late Battery battery;
MockBatteryPlatform fakePlatform;
setUp(() async {
fakePlatform = MockBatteryPlatform();
BatteryPlatform.instance = fakePlatform;
battery = Battery();
});
test('batteryLevel', () async {
int result = await battery.batteryLevel;
expect(result, 42);
});
test('onBatteryStateChanged', () async {
BatteryState result = await battery.onBatteryStateChanged.first;
expect(result, BatteryState.full);
});
});
}
class MockBatteryPlatform extends Mock
with MockPlatformInterfaceMixin
implements BatteryPlatform {
Future<int> batteryLevel() async {
return 42;
}
Stream<BatteryState> onBatteryStateChanged() {
StreamController<BatteryState> result = StreamController<BatteryState>();
result.add(BatteryState.full);
return result.stream;
}
}