77import org .schabi .newpipe .extractor .stream .StreamInfoItem ;
88import org .schabi .newpipe .extractor .stream .StreamType ;
99
10+ import java .util .ArrayList ;
1011import java .util .Collections ;
1112import java .util .List ;
1213
1314import static org .junit .Assert .assertEquals ;
1415import 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