diff --git a/src/main/java/device/cdPlayer/CDPlayer.java b/src/main/java/device/cdPlayer/CDPlayer.java index b7134fa..ff1caf2 100644 --- a/src/main/java/device/cdPlayer/CDPlayer.java +++ b/src/main/java/device/cdPlayer/CDPlayer.java @@ -42,7 +42,10 @@ public class CDPlayer implements Device { @Override public void next() { + List playList = Arrays.asList(loadedCD.getPlayList()); + int indexOfActualPlayTrack=playList.indexOf(actualPlayTrack); + this.actualPlayTrack=playList.get(indexOfActualPlayTrack +1); } @Override @@ -114,4 +117,13 @@ public class CDPlayer implements Device { return false; } + public String getSongByNumber(int songNr){ + List playList = Arrays.asList(loadedCD.getPlayList()); + return playList.get(songNr); + } + + public String getActualPlayTrack() { + return actualPlayTrack; + } + } diff --git a/src/test/java/device/cdPlayer/CDPlayerTest.java b/src/test/java/device/cdPlayer/CDPlayerTest.java index 91ef68a..694460a 100644 --- a/src/test/java/device/cdPlayer/CDPlayerTest.java +++ b/src/test/java/device/cdPlayer/CDPlayerTest.java @@ -153,4 +153,29 @@ class CDPlayerTest { ); } + @ParameterizedTest + @MethodSource("nextTestData") + void nextTest(String testName,String testDirection, CDPlayer _cdPlayer,int anzClicks, String expectedResult){ + for (int i = 0; i < anzClicks; i++) { + _cdPlayer.next(); + } + if(testDirection.equals("SecondSongSelected")){ + assertThat(_cdPlayer.getActualPlayTrack()).describedAs(testName).isEqualTo(expectedResult); + } + } + static Stream nextTestData () { + + String[] audioPlayList=new String[]{"Audio 01","Audio 02","Audio 03","Audio 04","Audio 05"}; + CD audioCD=new CD("Audio",audioPlayList); + + CDPlayer cdPlayer=new CDPlayer(); + cdPlayer.tapOnCdFlap(); + cdPlayer.setCD(audioCD); + cdPlayer.tapOnCdFlap(); + + return Stream.of( + Arguments.of("[getActualPlayTrack() after 1x next() starting by firstSong] => SecondSongSelected","SecondSongSelected", cdPlayer, 1, cdPlayer.getSongByNumber(1)) + ); + } + } \ No newline at end of file