1616import androidx .camera .core .CameraInfo ;
1717import androidx .camera .lifecycle .ProcessCameraProvider ;
1818import androidx .test .core .app .ApplicationProvider ;
19- import com .google .common .util .concurrent .SettableFuture ;
19+ import com .google .common .util .concurrent .Futures ;
20+ import com .google .common .util .concurrent .ListenableFuture ;
2021import io .flutter .plugin .common .BinaryMessenger ;
2122import java .util .Arrays ;
2223import java .util .Objects ;
2526import org .junit .Rule ;
2627import org .junit .Test ;
2728import org .junit .runner .RunWith ;
29+ import org .mockito .ArgumentCaptor ;
2830import org .mockito .Mock ;
2931import org .mockito .MockedStatic ;
3032import org .mockito .Mockito ;
@@ -58,8 +60,8 @@ public void tearDown() {
5860 public void getInstanceTest () {
5961 final ProcessCameraProviderHostApiImpl processCameraProviderHostApi =
6062 new ProcessCameraProviderHostApiImpl (mockBinaryMessenger , testInstanceManager , context );
61- SettableFuture processCameraProviderFuture = SettableFuture . create ();
62- processCameraProviderFuture . set (processCameraProvider );
63+ final ListenableFuture < ProcessCameraProvider > processCameraProviderFuture =
64+ spy ( Futures . immediateFuture (processCameraProvider ) );
6365 final GeneratedCameraXLibrary .Result <Long > mockResult =
6466 mock (GeneratedCameraXLibrary .Result .class );
6567
@@ -69,9 +71,15 @@ public void getInstanceTest() {
6971 Mockito .mockStatic (ProcessCameraProvider .class )) {
7072 mockedProcessCameraProvider
7173 .when (() -> ProcessCameraProvider .getInstance (context ))
72- .thenAnswer ((Answer <SettableFuture >) invocation -> processCameraProviderFuture );
74+ .thenAnswer (
75+ (Answer <ListenableFuture <ProcessCameraProvider >>)
76+ invocation -> processCameraProviderFuture );
77+
78+ final ArgumentCaptor <Runnable > runnableCaptor = ArgumentCaptor .forClass (Runnable .class );
7379
7480 processCameraProviderHostApi .getInstance (mockResult );
81+ verify (processCameraProviderFuture ).addListener (runnableCaptor .capture (), any ());
82+ runnableCaptor .getValue ().run ();
7583 verify (mockResult ).success (0L );
7684 }
7785 }
0 commit comments