blob: 65323e4044def761f88e95fcb025e3c3f9162d25 [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 'package:flutter/services.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:battery_platform_interface/battery_platform_interface.dart';
import 'package:battery_platform_interface/method_channel/method_channel_battery.dart';
void main() {
TestWidgetsFlutterBinding.ensureInitialized();
group("$MethodChannelBattery", () {
MethodChannelBattery methodChannelBattery;
setUp(() async {
methodChannelBattery = MethodChannelBattery();
methodChannelBattery.channel
.setMockMethodCallHandler((MethodCall methodCall) async {
switch (methodCall.method) {
case 'getBatteryLevel':
return 90;
default:
return null;
}
});
MethodChannel(methodChannelBattery.eventChannel.name)
.setMockMethodCallHandler((MethodCall methodCall) async {
switch (methodCall.method) {
case 'listen':
await ServicesBinding.instance.defaultBinaryMessenger
.handlePlatformMessage(
methodChannelBattery.eventChannel.name,
methodChannelBattery.eventChannel.codec
.encodeSuccessEnvelope('full'),
(_) {},
);
break;
case 'cancel':
default:
return null;
}
});
});
/// Test for batetry level call.
test("getBatteryLevel", () async {
final int result = await methodChannelBattery.batteryLevel();
expect(result, 90);
});
/// Test for battery changed state call.
test("onBatteryChanged", () async {
final BatteryState result =
await methodChannelBattery.onBatteryStateChanged().first;
expect(result, BatteryState.full);
});
});
}