diff --git a/.flutter-plugins-dependencies b/.flutter-plugins-dependencies index 0bdbb2c..eb69e8f 100644 --- a/.flutter-plugins-dependencies +++ b/.flutter-plugins-dependencies @@ -1 +1 @@ -{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"image_picker_ios","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\image_picker_ios-0.8.5+6\\\\","native_build":true,"dependencies":[]}],"android":[{"name":"flutter_plugin_android_lifecycle","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\flutter_plugin_android_lifecycle-2.0.7\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_android","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\image_picker_android-0.8.5+2\\\\","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]}],"macos":[],"linux":[],"windows":[],"web":[{"name":"image_picker_for_web","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\image_picker_for_web-2.1.8\\\\","dependencies":[]}]},"dependencyGraph":[{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"image_picker","dependencies":["image_picker_android","image_picker_for_web","image_picker_ios"]},{"name":"image_picker_android","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"image_picker_for_web","dependencies":[]},{"name":"image_picker_ios","dependencies":[]}],"date_created":"2022-09-02 16:11:58.043866","version":"3.0.5"} \ No newline at end of file +{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"image_picker_ios","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\image_picker_ios-0.8.5+6\\\\","native_build":true,"dependencies":[]}],"android":[{"name":"flutter_plugin_android_lifecycle","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\flutter_plugin_android_lifecycle-2.0.7\\\\","native_build":true,"dependencies":[]},{"name":"image_picker_android","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\image_picker_android-0.8.5+2\\\\","native_build":true,"dependencies":["flutter_plugin_android_lifecycle"]}],"macos":[],"linux":[],"windows":[],"web":[{"name":"image_picker_for_web","path":"C:\\\\src\\\\flutter\\\\.pub-cache\\\\hosted\\\\pub.dartlang.org\\\\image_picker_for_web-2.1.8\\\\","dependencies":[]}]},"dependencyGraph":[{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"image_picker","dependencies":["image_picker_android","image_picker_for_web","image_picker_ios"]},{"name":"image_picker_android","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"image_picker_for_web","dependencies":[]},{"name":"image_picker_ios","dependencies":[]}],"date_created":"2022-09-02 16:42:31.527883","version":"3.0.5"} \ No newline at end of file diff --git a/lib/src/services/image_picker_service.dart b/lib/src/services/image_picker_service.dart index 02b80b6..ace1c1a 100644 --- a/lib/src/services/image_picker_service.dart +++ b/lib/src/services/image_picker_service.dart @@ -3,13 +3,16 @@ import 'dart:typed_data'; import 'package:image_picker/image_picker.dart'; class ImagePickerService { - final ImagePicker _imagePicker = ImagePicker(); + ImagePickerService({this.imagePicker}); + + ImagePicker? imagePicker; /// [pickImage] is the function that picks the image and returns it as a [Uint8List]. /// The function requires [source], an [ImageSource] that's the method of how the image needs to be picked, for example gallery or camera. Future pickImage(ImageSource source) async { var image = - await (await _imagePicker.pickImage(source: source))?.readAsBytes(); + await (await (imagePicker ?? ImagePicker()).pickImage(source: source)) + ?.readAsBytes(); return image; } } diff --git a/test/mocks/image_picker_mock.dart b/test/mocks/image_picker_mock.dart deleted file mode 100644 index be3c460..0000000 --- a/test/mocks/image_picker_mock.dart +++ /dev/null @@ -1,4 +0,0 @@ -import 'package:image_picker/image_picker.dart'; -import 'package:mocktail/mocktail.dart'; - -class ImagePickerMock extends Mock implements ImagePicker {} diff --git a/test/mocks/image_picker_service_mock.dart b/test/mocks/image_picker_service_mock.dart index 448cc15..31b7722 100644 --- a/test/mocks/image_picker_service_mock.dart +++ b/test/mocks/image_picker_service_mock.dart @@ -1,22 +1,4 @@ -import 'dart:typed_data'; -import 'dart:ui'; - -import 'package:flutter/material.dart'; import 'package:flutter_image_picker/src/services/image_picker_service.dart'; -import 'package:image_picker/image_picker.dart'; import 'package:mocktail/mocktail.dart'; -class ImagePickerServiceMock extends Mock implements ImagePickerService { - // @override - // Future pickImage(ImageSource source) async { - // PictureRecorder recorder = PictureRecorder(); - // Canvas c = Canvas(recorder); - // c.drawRect( - // const Rect.fromLTWH(0, 0, 100, 100), Paint()..color = Colors.red); // et - // Picture p = recorder.endRecording(); - // var image = await p.toImage(100, 100); - // ByteData data = - // await image.toByteData(format: ImageByteFormat.png) as ByteData; - // return Future.value(data.buffer.asUint8List()); - // } -} +class ImagePickerServiceMock extends Mock implements ImagePickerService {} diff --git a/test/src/services/image_picker_service_test.dart b/test/src/services/image_picker_service_test.dart deleted file mode 100644 index 7da95d0..0000000 --- a/test/src/services/image_picker_service_test.dart +++ /dev/null @@ -1,45 +0,0 @@ -// import 'dart:typed_data'; - -// import 'package:flutter/material.dart'; -// import 'package:flutter_image_picker/src/services/image_picker_service.dart'; -// import 'package:flutter_test/flutter_test.dart'; -// import 'package:image_picker/image_picker.dart'; -// import 'package:mocktail/mocktail.dart'; - -// import '../../mocks/image_picker_mock.dart'; - -// void main() { -// WidgetsFlutterBinding.ensureInitialized(); - -// late ImagePickerMock imagePickerMock; -// late ImagePickerService sut; - -// setUp(() { -// imagePickerMock = ImagePickerMock(); -// sut = ImagePickerService(); -// }); - -// group("Image Picker Test with camera option", () { -// setUp(() { -// imagePickerMock = ImagePickerMock(); -// sut = ImagePickerService(); -// }); -// test("When function called with Camera parameter returns correct picture", -// () async { -// // Setup the neccesary variables to test -// XFile? xFile = XFile("Test", bytes: Uint8List(50)); - -// // //Mock the pickImage function of the image picker to return an image -// when(() => imagePickerMock.pickImage(source: ImageSource.gallery)) -// .thenAnswer((_) => Future.value(xFile)); - -// // Execute test -// var image = await sut.pickImage(ImageSource.gallery); - -// // //Assert test -// expect(image, Uint8List(50)); -// }); -// }); - -// group("Image Picker Widget with gallery option", () {}); -// }