Fix unit tests

pull/704/head
Mattia Iavarone 6 years ago
parent acf00f0de8
commit 6e937843c9
  1. 8
      cameraview/src/main/java/com/otaliastudios/cameraview/frame/ByteBufferFrameManager.java
  2. 1
      cameraview/src/main/java/com/otaliastudios/cameraview/frame/Frame.java
  3. 15
      cameraview/src/test/java/com/otaliastudios/cameraview/frame/FrameTest.java

@ -21,15 +21,15 @@ import java.util.concurrent.LinkedBlockingQueue;
*
* 1. {@link #BUFFER_MODE_DISPATCH}: in this mode, as soon as we have a buffer, it is dispatched to
* the {@link BufferCallback}. The callback should then fill the buffer, and finally call
* {@link #getFrame(byte[], long, int)} to receive a frame.
* {@link FrameManager#getFrame(Object, long, int)} to receive a frame.
* This is used for Camera1.
*
* 2. {@link #BUFFER_MODE_ENQUEUE}: in this mode, the manager internally keeps a queue of byte
* buffers, instead of handing them to the callback. The users can ask for buffers through
* {@link #getBuffer()}.
* This buffer can be filled with data and used to get a frame
* {@link #getFrame(byte[], long, int)}, or, in case it was not filled, returned to the queue
* using {@link #onBufferUnused(byte[])}.
* {@link FrameManager#getFrame(Object, long, int)}, or, in case it was not filled, returned to
* the queue using {@link #onBufferUnused(byte[])}.
* This is used for Camera2.
*/
public class ByteBufferFrameManager extends FrameManager<byte[]> {
@ -97,7 +97,7 @@ public class ByteBufferFrameManager extends FrameManager<byte[]> {
* manager also holds a queue of the byte buffers.
*
* If not null, the buffer returned by this method can be filled and used to get
* a new frame through {@link #getFrame(byte[], long, int)}.
* a new frame through {@link FrameManager#getFrame(Object, long, int)}.
*
* @return a buffer, or null
*/

@ -127,7 +127,6 @@ public class Frame {
* - {@link Engine#CAMERA2} will produce {@link android.media.Image}s
* @return the data class
*/
@SuppressWarnings("WeakerAccess")
@NonNull
public Class<?> getDataClass() {
return mDataClass;

@ -23,10 +23,11 @@ import static org.mockito.Mockito.verify;
public class FrameTest {
private FrameManager manager;
private FrameManager<byte[]> manager;
@Before
public void setUp() {
//noinspection unchecked
manager = mock(FrameManager.class);
}
@ -38,10 +39,10 @@ public class FrameTest {
@Test
public void testEquals() {
// Only time should count.
Frame f1 = new Frame(manager);
Frame f1 = new Frame(manager, byte[].class);
long time = 1000;
f1.setContent(new byte[3], time, 90, new Size(5, 5), ImageFormat.NV21);
Frame f2 = new Frame(manager);
Frame f2 = new Frame(manager, byte[].class);
f2.setContent(new byte[2], time, 0, new Size(10, 10), ImageFormat.NV21);
assertEquals(f1, f2);
@ -51,7 +52,7 @@ public class FrameTest {
@Test
public void testReleaseThrows() {
final Frame frame = new Frame(manager);
final Frame frame = new Frame(manager, byte[].class);
frame.setContent(new byte[2], 1000, 90, new Size(10, 10), ImageFormat.NV21);
frame.release();
verify(manager, times(1)).onFrameReleased(eq(frame), any(byte[].class));
@ -74,7 +75,7 @@ public class FrameTest {
@Test
public void testFreeze() {
Frame frame = new Frame(manager);
Frame frame = new Frame(manager, byte[].class);
byte[] data = new byte[]{0, 1, 5, 0, 7, 3, 4, 5};
long time = 1000;
int rotation = 90;
@ -83,14 +84,14 @@ public class FrameTest {
frame.setContent(data, time, rotation, size, format);
Frame frozen = frame.freeze();
assertArrayEquals(data, frozen.getData());
assertArrayEquals(data, (byte[]) frozen.getData());
assertEquals(time, frozen.getTime());
assertEquals(rotation, frozen.getRotation());
assertEquals(size, frozen.getSize());
// Mutate the first, ensure that frozen is not affected
frame.setContent(new byte[]{3, 2, 1}, 50, 180, new Size(1, 1), ImageFormat.JPEG);
assertArrayEquals(data, frozen.getData());
assertArrayEquals(data, (byte[]) frozen.getData());
assertEquals(time, frozen.getTime());
assertEquals(rotation, frozen.getRotation());
assertEquals(size, frozen.getSize());

Loading…
Cancel
Save