diff --git a/src/main/java/device/usbPlayer/UsbPlayer.java b/src/main/java/device/usbPlayer/UsbPlayer.java index 65a2be0..75f6a21 100644 --- a/src/main/java/device/usbPlayer/UsbPlayer.java +++ b/src/main/java/device/usbPlayer/UsbPlayer.java @@ -111,7 +111,9 @@ public class UsbPlayer implements Device { @Override public void next() { - + int currentIdex = Playlist.indexOf(playTrack); + int nextIndex = (currentIdex + 1) % Playlist.size(); + playTrack = Playlist.get(nextIndex); } @Override diff --git a/src/test/java/device/usbPlayer/UsbPlayerTest.java b/src/test/java/device/usbPlayer/UsbPlayerTest.java index bd85948..2d5e721 100644 --- a/src/test/java/device/usbPlayer/UsbPlayerTest.java +++ b/src/test/java/device/usbPlayer/UsbPlayerTest.java @@ -86,4 +86,32 @@ void louderTest(String testName, UsbPlayer inputPlay, int expectedResult) { ); } + + @ParameterizedTest + @MethodSource("NextOptions") + void NextTest(String testName, UsbPlayer inputPlay, String expectedResult) { + String current_Track = inputPlay.getPlayTrack(); + assertThat(current_Track).describedAs(testName).isEqualTo(expectedResult); + } + + static Stream NextOptions() { + UsbPlayer up1 = new UsbPlayer(); + up1.next(); + UsbPlayer up2 = new UsbPlayer(); + for (int i = 1; i < up2.getPlaylist().size(); i++) { + up2.next(); + } + UsbPlayer up3 = new UsbPlayer(); + for (int i = 1; i < up3.getPlaylist().size(); i++) { + up3.next(); + } + up3.next(); + return Stream.of( + Arguments.of("Second-Song : Musik 02.mp3 ", up1, "Musik 02.mp3"), + Arguments.of("Last-Song : Musik 03.mp3 ", up2, "Musik 03.mp3"), + Arguments.of("From last to first Song : Musik 01.mp3 ", up3, "Musik 01.mp3") + + ); + } + } \ No newline at end of file