Skip to content

Commit 8d0f2d3

Browse files
committed
Test PlayQueue.setIndex(...)
1 parent 8efe285 commit 8d0f2d3

1 file changed

Lines changed: 71 additions & 0 deletions

File tree

app/src/test/java/org/schabi/newpipe/player/playqueue/PlayQueueTest.java

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,15 @@
77
import org.schabi.newpipe.extractor.stream.StreamInfoItem;
88
import org.schabi.newpipe.extractor.stream.StreamType;
99

10+
import java.util.ArrayList;
1011
import java.util.Collections;
1112
import java.util.List;
1213

1314
import static org.junit.Assert.assertEquals;
1415
import static org.junit.Assert.assertNotEquals;
16+
import static org.mockito.Mockito.doReturn;
17+
import static org.mockito.Mockito.mock;
18+
import static org.mockito.Mockito.spy;
1519

1620
@SuppressWarnings("checkstyle:HideUtilityClassConstructor")
1721
@RunWith(Enclosed.class)
@@ -31,6 +35,73 @@ public void fetch() {
3135
};
3236
}
3337

38+
public static class SetIndexTests {
39+
private static final int SIZE = 5;
40+
private PlayQueue nonEmptyQueue;
41+
private PlayQueue emptyQueue;
42+
43+
@Before
44+
public void setup() {
45+
nonEmptyQueue = spy(mockPlayQueue(
46+
0, Collections.nCopies(SIZE, mock(PlayQueueItem.class))
47+
));
48+
emptyQueue = spy(mockPlayQueue(0, new ArrayList<>()));
49+
}
50+
51+
@Test
52+
public void negative() {
53+
nonEmptyQueue.setIndex(-5);
54+
assertEquals(0, nonEmptyQueue.getIndex());
55+
56+
emptyQueue.setIndex(-5);
57+
assertEquals(0, nonEmptyQueue.getIndex());
58+
}
59+
60+
@Test
61+
public void inBounds() {
62+
nonEmptyQueue.setIndex(2);
63+
assertEquals(2, nonEmptyQueue.getIndex());
64+
65+
// emptyQueue not tested because 0 isn't technically inBounds
66+
}
67+
68+
@Test
69+
public void outOfBoundIsComplete() {
70+
doReturn(true).when(nonEmptyQueue).isComplete();
71+
nonEmptyQueue.setIndex(7);
72+
assertEquals(2, nonEmptyQueue.getIndex());
73+
74+
doReturn(true).when(emptyQueue).isComplete();
75+
emptyQueue.setIndex(2);
76+
assertEquals(0, emptyQueue.getIndex());
77+
}
78+
79+
@Test
80+
public void outOfBoundsNotComplete() {
81+
doReturn(false).when(nonEmptyQueue).isComplete();
82+
nonEmptyQueue.setIndex(7);
83+
assertEquals(SIZE - 1, nonEmptyQueue.getIndex());
84+
85+
doReturn(false).when(emptyQueue).isComplete();
86+
emptyQueue.setIndex(2);
87+
assertEquals(0, emptyQueue.getIndex());
88+
}
89+
90+
@Test
91+
public void indexZero() {
92+
nonEmptyQueue.setIndex(0);
93+
assertEquals(0, nonEmptyQueue.getIndex());
94+
95+
doReturn(true).when(emptyQueue).isComplete();
96+
emptyQueue.setIndex(0);
97+
assertEquals(0, emptyQueue.getIndex());
98+
99+
doReturn(false).when(emptyQueue).isComplete();
100+
emptyQueue.setIndex(0);
101+
assertEquals(0, emptyQueue.getIndex());
102+
}
103+
}
104+
34105
public static class EqualsTests {
35106
private PlayQueueItem item1;
36107
private PlayQueueItem item2;

0 commit comments

Comments
 (0)