|
15 | 15 |
|
16 | 16 | import io.flutter.plugin.common.MethodChannel;
|
17 | 17 | import org.junit.Test;
|
| 18 | +import org.junit.runner.RunWith; |
| 19 | +import org.robolectric.RobolectricTestRunner; |
18 | 20 |
|
| 21 | +@RunWith(RobolectricTestRunner.class) |
19 | 22 | public class PictureCaptureRequestTest {
|
20 | 23 |
|
21 | 24 | @Test
|
@@ -45,6 +48,21 @@ public void setState_sets_state() {
|
45 | 48 | "State is awaitingPreCapture", req.getState(), PictureCaptureRequestState.STATE_CAPTURING);
|
46 | 49 | }
|
47 | 50 |
|
| 51 | + @Test |
| 52 | + public void setState_sends_camera_error_event_When_already_finished() { |
| 53 | + DartMessenger mockMessenger = mock(DartMessenger.class); |
| 54 | + PictureCaptureRequest req = new PictureCaptureRequest(null, null, mockMessenger); |
| 55 | + |
| 56 | + // Make sure state is set to finished |
| 57 | + req.setState(PictureCaptureRequestState.STATE_FINISHED); |
| 58 | + |
| 59 | + // Try to update state |
| 60 | + req.setState(PictureCaptureRequestState.STATE_CAPTURING); |
| 61 | + |
| 62 | + verify(mockMessenger, times(1)).sendCameraErrorEvent("Request has already been finished"); |
| 63 | + assertEquals("State is finished", req.getState(), PictureCaptureRequestState.STATE_FINISHED); |
| 64 | + } |
| 65 | + |
48 | 66 | @Test
|
49 | 67 | public void setState_resets_timeout() {
|
50 | 68 | PictureCaptureRequest.TimeoutHandler mockTimeoutHandler =
|
@@ -114,6 +132,20 @@ public void isFinished_is_true_When_state_is_finished_or_error() {
|
114 | 132 | assertTrue(req.isFinished());
|
115 | 133 | }
|
116 | 134 |
|
| 135 | + @Test |
| 136 | + public void finish_returns_When_in_error_state() { |
| 137 | + MethodChannel.Result mockResult = mock(MethodChannel.Result.class); |
| 138 | + PictureCaptureRequest req = new PictureCaptureRequest(mockResult, null, null); |
| 139 | + |
| 140 | + // Make sure state is set to error |
| 141 | + req.setState(PictureCaptureRequestState.STATE_ERROR); |
| 142 | + |
| 143 | + req.finish("/test/path"); |
| 144 | + |
| 145 | + assertEquals("State is error", req.getState(), PictureCaptureRequestState.STATE_ERROR); |
| 146 | + verify(mockResult, never()).success(any()); |
| 147 | + } |
| 148 | + |
117 | 149 | @Test(expected = IllegalStateException.class)
|
118 | 150 | public void finish_throws_When_already_finished() {
|
119 | 151 | // Setup
|
@@ -147,6 +179,20 @@ public void error_clears_timeout() {
|
147 | 179 | verify(mockTimeoutHandler).clearTimeout(any());
|
148 | 180 | }
|
149 | 181 |
|
| 182 | + @Test |
| 183 | + public void error_returns_When_in_error_state() { |
| 184 | + MethodChannel.Result mockResult = mock(MethodChannel.Result.class); |
| 185 | + PictureCaptureRequest req = new PictureCaptureRequest(mockResult, null, null); |
| 186 | + |
| 187 | + // Make sure state is set to error |
| 188 | + req.setState(PictureCaptureRequestState.STATE_ERROR); |
| 189 | + |
| 190 | + req.error("ERROR_CODE", "Error Message", null); |
| 191 | + |
| 192 | + assertEquals("State is error", req.getState(), PictureCaptureRequestState.STATE_ERROR); |
| 193 | + verify(mockResult, never()).error(any(), any(), any()); |
| 194 | + } |
| 195 | + |
150 | 196 | @Test(expected = IllegalStateException.class)
|
151 | 197 | public void error_throws_When_already_finished() {
|
152 | 198 | // Setup
|
|
0 commit comments