@@ -29,6 +29,8 @@ using ::testing::EndsWith;
2929using  ::testing::Eq;
3030using  ::testing::Pointee;
3131using  ::testing::Return;
32+ using  ::testing::Optional;
33+ using  ::testing::Property;
3234
3335void  MockInitCamera (MockCamera* camera, bool  success) {
3436  EXPECT_CALL (*camera,
@@ -366,34 +368,14 @@ TEST(CameraPlugin, StartImageStreamHandlerCallsStartImageStream) {
366368        return  cam->camera_id_  == camera_id;
367369      });
368370
369-   EXPECT_CALL (*camera,
370-               HasPendingResultByType (Eq (PendingResultType::kStartStream )))
371-       .Times (1 )
372-       .WillOnce (Return (false ));
373- 
374-   EXPECT_CALL (*camera,
375-               AddPendingVoidResult (Eq (PendingResultType::kStartStream ), _))
376-       .Times (1 )
377-       .WillOnce ([cam = camera.get ()](
378-                     PendingResultType type,
379-                     std::function<void (std::optional<FlutterError>)> result) {
380-         cam->pending_void_result_  = std::move (result);
381-         return  true ;
382-       });
383- 
384371  EXPECT_CALL (*camera, GetCaptureController)
385372      .Times (1 )
386373      .WillOnce ([cam = camera.get ()]() {
387-         assert (cam->pending_void_result_ );
388374        return  cam->capture_controller_ .get ();
389375      });
390376
391377  EXPECT_CALL (*capture_controller, StartImageStream)
392-       .Times (1 )
393-       .WillOnce ([cam = camera.get ()]() {
394-         assert (cam->pending_void_result_ );
395-         return  cam->pending_void_result_ (std::nullopt );
396-       });
378+       .Times (1 );
397379
398380  camera->camera_id_  = mock_camera_id;
399381  camera->capture_controller_  = std::move (capture_controller);
@@ -402,24 +384,14 @@ TEST(CameraPlugin, StartImageStreamHandlerCallsStartImageStream) {
402384                          std::make_unique<MockBinaryMessenger>().get (),
403385                          std::make_unique<MockCameraFactory>());
404386
405-   //  Add mocked camera to plugins camera list.
406-   plugin.AddCamera (std::move (camera));
407- 
408387  //  Set the event sink to a mocked event sink.
409388  auto  mock_event_sink = std::make_unique<MockEventSink>();
410389  plugin.SetEventSink (std::move (mock_event_sink));
411390
412-   bool  result_called = false ;
413-   std::function<void (std::optional<FlutterError>)> start_image_stream_result =
414-       [&result_called](std::optional<FlutterError> reply) {
415-         EXPECT_FALSE (result_called);  //  Ensure only one reply call.
416-         result_called = true ;
417-         EXPECT_FALSE (reply);
418-       };
419- 
420-   plugin.StartImageStream (mock_camera_id, std::move (start_image_stream_result));
391+   //  Add mocked camera to plugins camera list.
392+   plugin.AddCamera (std::move (camera));
421393
422-   EXPECT_TRUE (result_called );
394+   EXPECT_EQ (plugin. StartImageStream (mock_camera_id), std:: nullopt );
423395}
424396
425397TEST (CameraPlugin, StartImageStreamHandlerErrorOnInvalidCameraId) {
@@ -452,18 +424,7 @@ TEST(CameraPlugin, StartImageStreamHandlerErrorOnInvalidCameraId) {
452424  //  Add mocked camera to plugins camera list.
453425  plugin.AddCamera (std::move (camera));
454426
455-   bool  result_called = false ;
456-   std::function<void (std::optional<FlutterError>)> start_image_stream_result =
457-       [&result_called](std::optional<FlutterError> reply) {
458-         EXPECT_FALSE (result_called);  //  Ensure only one reply call.
459-         result_called = true ;
460-         EXPECT_TRUE (reply);
461-       };
462- 
463-   plugin.StartImageStream (missing_camera_id,
464-                           std::move (start_image_stream_result));
465- 
466-   EXPECT_TRUE (result_called);
427+   EXPECT_THAT (plugin.StartImageStream (missing_camera_id), Optional (Property (" code"  , &FlutterError::code, " camera_error"  )));
467428}
468429
469430TEST (CameraPlugin, StopImageStreamHandlerCallsStopImageStream) {
@@ -481,34 +442,14 @@ TEST(CameraPlugin, StopImageStreamHandlerCallsStopImageStream) {
481442        return  cam->camera_id_  == camera_id;
482443      });
483444
484-   EXPECT_CALL (*camera,
485-               HasPendingResultByType (Eq (PendingResultType::kStopStream )))
486-       .Times (1 )
487-       .WillOnce (Return (false ));
488- 
489-   EXPECT_CALL (*camera,
490-               AddPendingVoidResult (Eq (PendingResultType::kStopStream ), _))
491-       .Times (1 )
492-       .WillOnce ([cam = camera.get ()](
493-                     PendingResultType type,
494-                     std::function<void (std::optional<FlutterError>)> result) {
495-         cam->pending_void_result_  = std::move (result);
496-         return  true ;
497-       });
498- 
499445  EXPECT_CALL (*camera, GetCaptureController)
500446      .Times (1 )
501447      .WillOnce ([cam = camera.get ()]() {
502-         assert (cam->pending_void_result_ );
503448        return  cam->capture_controller_ .get ();
504449      });
505450
506451  EXPECT_CALL (*capture_controller, StopImageStream)
507-       .Times (1 )
508-       .WillOnce ([cam = camera.get ()]() {
509-         assert (cam->pending_void_result_ );
510-         return  cam->pending_void_result_ (std::nullopt );
511-       });
452+       .Times (1 );
512453
513454  camera->camera_id_  = mock_camera_id;
514455  camera->capture_controller_  = std::move (capture_controller);
@@ -520,17 +461,7 @@ TEST(CameraPlugin, StopImageStreamHandlerCallsStopImageStream) {
520461  //  Add mocked camera to plugins camera list.
521462  plugin.AddCamera (std::move (camera));
522463
523-   bool  result_called = false ;
524-   std::function<void (std::optional<FlutterError>)> stop_image_stream_result =
525-       [&result_called](std::optional<FlutterError> reply) {
526-         EXPECT_FALSE (result_called);  //  Ensure only one reply call.
527-         result_called = true ;
528-         EXPECT_FALSE (reply);
529-       };
530- 
531-   plugin.StopImageStream (mock_camera_id, std::move (stop_image_stream_result));
532- 
533-   EXPECT_TRUE (result_called);
464+   EXPECT_EQ (plugin.StopImageStream (mock_camera_id), std::nullopt );
534465}
535466
536467TEST (CameraPlugin, StopImageStreamHandlerErrorOnInvalidCameraId) {
@@ -563,18 +494,7 @@ TEST(CameraPlugin, StopImageStreamHandlerErrorOnInvalidCameraId) {
563494  //  Add mocked camera to plugins camera list.
564495  plugin.AddCamera (std::move (camera));
565496
566-   bool  result_called = false ;
567-   std::function<void (std::optional<FlutterError>)> stop_image_stream_result =
568-       [&result_called](std::optional<FlutterError> reply) {
569-         EXPECT_FALSE (result_called);  //  Ensure only one reply call.
570-         result_called = true ;
571-         EXPECT_TRUE (reply);
572-       };
573- 
574-   plugin.StopImageStream (missing_camera_id,
575-                          std::move (stop_image_stream_result));
576- 
577-   EXPECT_TRUE (result_called);
497+   EXPECT_THAT (plugin.StopImageStream (missing_camera_id), Optional (Property (" code"  , &FlutterError::code, " camera_error"  )));
578498}
579499
580500TEST (CameraPlugin, InitializeHandlerErrorOnInvalidCameraId) {
0 commit comments