16
16
import androidx .camera .core .CameraInfo ;
17
17
import androidx .camera .lifecycle .ProcessCameraProvider ;
18
18
import 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 ;
20
21
import io .flutter .plugin .common .BinaryMessenger ;
21
22
import java .util .Arrays ;
22
23
import java .util .Objects ;
25
26
import org .junit .Rule ;
26
27
import org .junit .Test ;
27
28
import org .junit .runner .RunWith ;
29
+ import org .mockito .ArgumentCaptor ;
28
30
import org .mockito .Mock ;
29
31
import org .mockito .MockedStatic ;
30
32
import org .mockito .Mockito ;
@@ -58,8 +60,8 @@ public void tearDown() {
58
60
public void getInstanceTest () {
59
61
final ProcessCameraProviderHostApiImpl processCameraProviderHostApi =
60
62
new ProcessCameraProviderHostApiImpl (mockBinaryMessenger , testInstanceManager , context );
61
- SettableFuture processCameraProviderFuture = SettableFuture . create ();
62
- processCameraProviderFuture . set (processCameraProvider );
63
+ final ListenableFuture < ProcessCameraProvider > processCameraProviderFuture =
64
+ spy ( Futures . immediateFuture (processCameraProvider ) );
63
65
final GeneratedCameraXLibrary .Result <Long > mockResult =
64
66
mock (GeneratedCameraXLibrary .Result .class );
65
67
@@ -69,9 +71,15 @@ public void getInstanceTest() {
69
71
Mockito .mockStatic (ProcessCameraProvider .class )) {
70
72
mockedProcessCameraProvider
71
73
.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 );
73
79
74
80
processCameraProviderHostApi .getInstance (mockResult );
81
+ verify (processCameraProviderFuture ).addListener (runnableCaptor .capture (), any ());
82
+ runnableCaptor .getValue ().run ();
75
83
verify (mockResult ).success (0L );
76
84
}
77
85
}
0 commit comments