1
0
mirror of https://github.com/flutter/samples.git synced 2026-04-04 18:51:05 +00:00

[federated_plugin_sample] modify the sample to expose battery API instead of geolocation API (#526)

This commit is contained in:
Ayush Bherwani
2020-08-25 11:52:42 +05:30
committed by GitHub
parent 033ae11733
commit 60691d00c0
17 changed files with 116 additions and 211 deletions

View File

@@ -9,45 +9,35 @@ import 'package:federated_plugin_web/federated_plugin_web.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:mockito/mockito.dart';
const kLatitude = 4;
const kLongitude = 3;
const kBatteryLevel = 0.49;
class GeoLocationMock extends Mock implements Geolocation {}
class NavigatorMock extends Mock implements Navigator {}
class GeoPositionMock extends Mock implements Geoposition {
class BatteryManagerMock extends Mock implements BatteryManager {
@override
Coordinates get coords => MockCoordinates();
}
class MockCoordinates extends Mock implements Coordinates {
@override
num get latitude => kLatitude;
@override
num get longitude => kLongitude;
num get level => kBatteryLevel;
}
void main() {
E2EWidgetsFlutterBinding.ensureInitialized();
group('FederatedPlugin test', () {
final geoLocationMock = GeoLocationMock();
final navigatorMock = NavigatorMock();
setUp(() {
when(geoLocationMock.getCurrentPosition())
.thenAnswer((realInvocation) async => GeoPositionMock());
when(navigatorMock.getBattery())
.thenAnswer((realInvocation) async => BatteryManagerMock());
});
testWidgets('getLocation Method', (tester) async {
final federatedPlugin = FederatedPlugin(geolocation: geoLocationMock);
final location = await federatedPlugin.getLocation();
testWidgets('getBatteryLevel Method', (tester) async {
final federatedPlugin = FederatedPlugin(navigator: navigatorMock);
final batteryLevel = await federatedPlugin.getBatteryLevel();
// Verify that getCurrentPosition was called.
verify(geoLocationMock.getCurrentPosition());
// Verify that getBattery was called.
verify(navigatorMock.getBattery());
// Verify the values of Location.longitude and Location.latitude.
expect(location.longitude, kLongitude);
expect(location.latitude, kLatitude);
// Verify the battery level.
expect(batteryLevel, kBatteryLevel * 100);
});
});
}