From ed09fadd07623ee9e30b47eaf9eccc7e2b124181 Mon Sep 17 00:00:00 2001 From: Vadim Date: Thu, 22 Jun 2023 17:01:01 +0200 Subject: [PATCH] `LightSensorService` tests (wip) --- test/data/light_sensor_service_test.dart | 71 ++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 test/data/light_sensor_service_test.dart diff --git a/test/data/light_sensor_service_test.dart b/test/data/light_sensor_service_test.dart new file mode 100644 index 0000000..1256e18 --- /dev/null +++ b/test/data/light_sensor_service_test.dart @@ -0,0 +1,71 @@ +import 'package:flutter/services.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:lightmeter/data/light_sensor_service.dart'; + +void main() { + TestWidgetsFlutterBinding.ensureInitialized(); + + late LightSensorService service; + + const methodChannel = MethodChannel('system_feature'); + // TODO: add event channel mock + //const eventChannel = EventChannel('light.eventChannel'); + + setUp(() { + service = const LightSensorService(); + }); + + tearDown(() { + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(methodChannel, null); + }); + + group( + 'hasSensor()', + () { + test('true', () async { + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(methodChannel, null); + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(methodChannel, (methodCall) async { + switch (methodCall.method) { + case "sensor": + return true; + default: + return null; + } + }); + expectLater(service.hasSensor(), completion(true)); + }); + + test('false', () async { + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(methodChannel, null); + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(methodChannel, (methodCall) async { + switch (methodCall.method) { + case "sensor": + return false; + default: + return null; + } + }); + expectLater(service.hasSensor(), completion(false)); + }); + test('null', () async { + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(methodChannel, null); + TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger + .setMockMethodCallHandler(methodChannel, (methodCall) async { + switch (methodCall.method) { + case "sensor": + return null; + default: + return null; + } + }); + expectLater(service.hasSensor(), completion(false)); + }); + }, + ); +}