diff --git a/src/main/java/device/radioPlayer/RadioPlayer.java b/src/main/java/device/radioPlayer/RadioPlayer.java index 075cd4a..73d5625 100644 --- a/src/main/java/device/radioPlayer/RadioPlayer.java +++ b/src/main/java/device/radioPlayer/RadioPlayer.java @@ -210,4 +210,22 @@ public class RadioPlayer implements Device { } return "You are already in saved Playlist!"; } + + public String changeOrderInSavedPlaylist(int nr) { + String station = playedStation; + if((nr-1) > savedPlaylist.size()) { + savedPlaylist.remove(playedStation); + savedPlaylist.add(savedPlaylist.size(),station); + return"Station " + playedStation + " is now on place 0" + (savedPlaylist.size()+1) + "in saved playlist"; + }else if(nr < 0) { + savedPlaylist.remove(playedStation); + savedPlaylist.add(0,station); + return"Station " + playedStation + " is now on place 01 in saved playlist"; + } + else { + savedPlaylist.remove(playedStation); + savedPlaylist.add(nr - 1, station); + return "Station " + playedStation + " is now on place 0" + nr + "in saved playlist"; + } + } } diff --git a/src/test/java/device/radioPlayer/RadioPlayerTest.java b/src/test/java/device/radioPlayer/RadioPlayerTest.java index a92b654..109e1d1 100644 --- a/src/test/java/device/radioPlayer/RadioPlayerTest.java +++ b/src/test/java/device/radioPlayer/RadioPlayerTest.java @@ -265,4 +265,28 @@ class RadioPlayerTest { ); } + + @ParameterizedTest + @MethodSource("changeOrderInSavedPlaylistOptions") + void testChangeOrderInSavedPlaylist(String testName, RadioPlayer testRp, int nr, String expectedResult) { + String savedStation = testRp.savedPlaylist.get(nr); + assertThat(savedStation).describedAs(testName).isEqualTo(expectedResult); + } + + static Stream changeOrderInSavedPlaylistOptions() { + RadioPlayer rp = new RadioPlayer(); + rp.next(); + rp.changeOrderInSavedPlaylist(1); + RadioPlayer rp1 = new RadioPlayer(); + rp1.changeOrderInSavedPlaylist(5); + RadioPlayer rp2 = new RadioPlayer(); + rp2.next(); + rp2.changeOrderInSavedPlaylist(-1); + + return Stream.of( + Arguments.of("Test for change order in saved playlist with nr isn`t bigger than playlist size", rp, 0, "Teddy"), + Arguments.of("Test for change order in saved playlist with nr is than bigger playlist size put at the end of playlist", rp1, 2, "YouFM"), + Arguments.of("Test for change order in saved playlist with nr is than smaller than 0 at front of playlist", rp2, 0, "Teddy") + ); + } } \ No newline at end of file