Skip to content

Commit 727f2de

Browse files
authored
Merge pull request flutter#14 from bottlepay/android-rework-test-fpsrange-feature
Added test coverage to FPS range feature
2 parents 996973a + 17e3df6 commit 727f2de

File tree

2 files changed

+89
-1
lines changed

2 files changed

+89
-1
lines changed

packages/camera/camera/android/src/main/java/io/flutter/plugins/camera/features/fpsrange/FpsRangeFeature.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public FpsRangeFeature(CameraProperties cameraProperties) {
4141

4242
@Override
4343
public String getDebugName() {
44-
return "FpsRange";
44+
return "FpsRangeFeature";
4545
}
4646

4747
@Override
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
package io.flutter.plugins.camera.features.fpsrange;
2+
3+
import static org.junit.Assert.assertEquals;
4+
import static org.junit.Assert.assertTrue;
5+
import static org.mockito.ArgumentMatchers.any;
6+
import static org.mockito.ArgumentMatchers.eq;
7+
import static org.mockito.Mockito.mock;
8+
import static org.mockito.Mockito.verify;
9+
import static org.mockito.Mockito.when;
10+
11+
import android.hardware.camera2.CaptureRequest;
12+
import android.util.Range;
13+
import io.flutter.plugins.camera.CameraProperties;
14+
import org.junit.Test;
15+
16+
public class FpsRangeFeatureTest {
17+
@Test
18+
public void ctor_should_initialize_fps_range_with_highest_upper_value_from_range_array() {
19+
FpsRangeFeature fpsRangeFeature = createTestInstance();
20+
assertEquals(13, (int) fpsRangeFeature.getValue().getUpper());
21+
}
22+
23+
@Test
24+
public void getDebugName_should_return_the_name_of_the_feature() {
25+
FpsRangeFeature fpsRangeFeature = createTestInstance();
26+
assertEquals("FpsRangeFeature", fpsRangeFeature.getDebugName());
27+
}
28+
29+
@Test
30+
public void getValue_should_return_highest_upper_range_if_not_set() {
31+
CameraProperties mockCameraProperties = mock(CameraProperties.class);
32+
FpsRangeFeature fpsRangeFeature = createTestInstance();
33+
34+
assertEquals(13, (int)fpsRangeFeature.getValue().getUpper());
35+
}
36+
37+
@Test
38+
public void getValue_should_echo_the_set_value() {
39+
CameraProperties mockCameraProperties = mock(CameraProperties.class);
40+
FpsRangeFeature fpsRangeFeature = new FpsRangeFeature(mockCameraProperties);
41+
@SuppressWarnings("unchecked")
42+
Range<Integer> expectedValue = mock(Range.class);
43+
44+
fpsRangeFeature.setValue(expectedValue);
45+
Range<Integer> actualValue = fpsRangeFeature.getValue();
46+
47+
assertEquals(expectedValue, actualValue);
48+
}
49+
50+
@Test
51+
public void checkIsSupported_should_return_true() {
52+
FpsRangeFeature fpsRangeFeature = createTestInstance();
53+
assertTrue(fpsRangeFeature.checkIsSupported());
54+
}
55+
56+
@Test
57+
@SuppressWarnings("unchecked")
58+
public void updateBuilder_should_set_ae_target_fps_range() {
59+
CaptureRequest.Builder mockBuilder = mock(CaptureRequest.Builder.class);
60+
FpsRangeFeature fpsRangeFeature = createTestInstance();
61+
62+
fpsRangeFeature.updateBuilder(mockBuilder);
63+
64+
verify(mockBuilder).set(eq(CaptureRequest.CONTROL_AE_TARGET_FPS_RANGE), any(Range.class));
65+
}
66+
67+
private static FpsRangeFeature createTestInstance() {
68+
@SuppressWarnings("unchecked")
69+
Range<Integer> rangeOne = mock(Range.class);
70+
@SuppressWarnings("unchecked")
71+
Range<Integer> rangeTwo = mock(Range.class);
72+
@SuppressWarnings("unchecked")
73+
Range<Integer> rangeThree = mock(Range.class);
74+
75+
when(rangeOne.getUpper()).thenReturn(11);
76+
when(rangeTwo.getUpper()).thenReturn(12);
77+
when(rangeThree.getUpper()).thenReturn(13);
78+
79+
@SuppressWarnings("unchecked")
80+
Range<Integer>[] ranges = new Range[] { rangeOne, rangeTwo, rangeThree };
81+
82+
CameraProperties cameraProperties = mock(CameraProperties.class);
83+
84+
when(cameraProperties.getControlAutoExposureAvailableTargetFpsRanges()).thenReturn(ranges);
85+
86+
return new FpsRangeFeature(cameraProperties);
87+
}
88+
}

0 commit comments

Comments
 (0)