diff --git a/src/main/java/device/usbPlayer/UsbPlayer.java b/src/main/java/device/usbPlayer/UsbPlayer.java index 75f6a21..0a6e75d 100644 --- a/src/main/java/device/usbPlayer/UsbPlayer.java +++ b/src/main/java/device/usbPlayer/UsbPlayer.java @@ -118,7 +118,12 @@ public class UsbPlayer implements Device { @Override public void prev() { - + int currentIdex = Playlist.indexOf(playTrack); + int nextIndex = Playlist.size() - 1; + if (currentIdex != 0) { + nextIndex = (currentIdex - 1); + } + playTrack = Playlist.get(nextIndex); } @Override diff --git a/src/test/java/device/usbPlayer/UsbPlayerTest.java b/src/test/java/device/usbPlayer/UsbPlayerTest.java index 2d5e721..70c0f7a 100644 --- a/src/test/java/device/usbPlayer/UsbPlayerTest.java +++ b/src/test/java/device/usbPlayer/UsbPlayerTest.java @@ -114,4 +114,27 @@ void louderTest(String testName, UsbPlayer inputPlay, int expectedResult) { ); } + //////////////// + @ParameterizedTest + @MethodSource("PrevOptions") + void PrevTest(String testName, UsbPlayer inputPlay, String expectedResult) { + String current_Track = inputPlay.getPlayTrack(); + assertThat(current_Track).describedAs(testName).isEqualTo(expectedResult); + } + + static Stream PrevOptions() { + UsbPlayer up1 = new UsbPlayer(); + up1.prev(); + UsbPlayer up2 = new UsbPlayer(); + for (int i = 1; i < up2.getPlaylist().size(); i++) {//3 + up2.prev(); + } + + + return Stream.of( + Arguments.of("From first-Song to last-Song : Musik 03.mp3 ", up1, "Musik 03.mp3"), + Arguments.of("From first-Song to second-Song(Backward) : Musik 02.mp3 ", up2, "Musik 02.mp3") + ); + } + } \ No newline at end of file