|
5 | 5 | package io.flutter.plugins.camera;
|
6 | 6 |
|
7 | 7 | import static org.junit.Assert.assertEquals;
|
| 8 | +import static org.mockito.Mockito.any; |
| 9 | +import static org.mockito.Mockito.anyString; |
| 10 | +import static org.mockito.Mockito.mock; |
| 11 | +import static org.mockito.Mockito.when; |
8 | 12 |
|
| 13 | +import android.app.Activity; |
| 14 | +import android.content.Context; |
| 15 | +import android.hardware.camera2.CameraAccessException; |
| 16 | +import android.hardware.camera2.CameraCharacteristics; |
| 17 | +import android.hardware.camera2.CameraManager; |
| 18 | +import android.hardware.camera2.CameraMetadata; |
9 | 19 | import io.flutter.embedding.engine.systemchannels.PlatformChannel;
|
| 20 | +import java.util.List; |
| 21 | +import java.util.Map; |
10 | 22 | import org.junit.Test;
|
11 | 23 |
|
12 | 24 | public class CameraUtilsTest {
|
@@ -52,4 +64,37 @@ public void deserializeDeviceOrientation_deserializesCorrectly() {
|
52 | 64 | public void deserializeDeviceOrientation_throwsForNull() {
|
53 | 65 | CameraUtils.deserializeDeviceOrientation(null);
|
54 | 66 | }
|
| 67 | + |
| 68 | + @Test |
| 69 | + public void getAvailableCameras_retrievesValidCameras() |
| 70 | + throws CameraAccessException, NumberFormatException { |
| 71 | + final Activity mockActivity = mock(Activity.class); |
| 72 | + final CameraManager mockCameraManager = mock(CameraManager.class); |
| 73 | + final CameraCharacteristics mockCameraCharacteristics = mock(CameraCharacteristics.class); |
| 74 | + final String[] mockCameraIds = {"1394902", "-192930", "0283835", "foobar"}; |
| 75 | + final int mockSensorOrientation0 = 90; |
| 76 | + final int mockSensorOrientation2 = 270; |
| 77 | + final int mockLensFacing0 = CameraMetadata.LENS_FACING_FRONT; |
| 78 | + final int mockLensFacing2 = CameraMetadata.LENS_FACING_EXTERNAL; |
| 79 | + |
| 80 | + when(mockActivity.getSystemService(Context.CAMERA_SERVICE)).thenReturn(mockCameraManager); |
| 81 | + when(mockCameraManager.getCameraIdList()).thenReturn(mockCameraIds); |
| 82 | + when(mockCameraManager.getCameraCharacteristics(anyString())) |
| 83 | + .thenReturn(mockCameraCharacteristics); |
| 84 | + when(mockCameraCharacteristics.get(any())) |
| 85 | + .thenReturn(mockSensorOrientation0) |
| 86 | + .thenReturn(mockLensFacing0) |
| 87 | + .thenReturn(mockSensorOrientation2) |
| 88 | + .thenReturn(mockLensFacing2); |
| 89 | + |
| 90 | + List<Map<String, Object>> availableCameras = CameraUtils.getAvailableCameras(mockActivity); |
| 91 | + |
| 92 | + assertEquals(availableCameras.size(), 2); |
| 93 | + assertEquals(availableCameras.get(0).get("name"), "1394902"); |
| 94 | + assertEquals(availableCameras.get(0).get("sensorOrientation"), mockSensorOrientation0); |
| 95 | + assertEquals(availableCameras.get(0).get("lensFacing"), "front"); |
| 96 | + assertEquals(availableCameras.get(1).get("name"), "0283835"); |
| 97 | + assertEquals(availableCameras.get(1).get("sensorOrientation"), mockSensorOrientation2); |
| 98 | + assertEquals(availableCameras.get(1).get("lensFacing"), "external"); |
| 99 | + } |
55 | 100 | }
|
0 commit comments