diff --git a/src/main/java/device/usbPlayer/UsbPlayer.java b/src/main/java/device/usbPlayer/UsbPlayer.java index 8e38ed0..1f395c8 100644 --- a/src/main/java/device/usbPlayer/UsbPlayer.java +++ b/src/main/java/device/usbPlayer/UsbPlayer.java @@ -69,14 +69,14 @@ public class UsbPlayer implements Device { } //**********search method************* - private boolean isAllAudio() { + public boolean isAllAudio() { String song = ""; boolean flag = true; for (int i = 0; i < Playlist.size(); i++) { song = Playlist.get(i).substring(Playlist.get(i).length() - 4); - if (song.equals(".mp3") | song.equals(".mp4") | song.equals(".wav")) { + if (song.equals(".mp3") | song.equals(".mp4")| song.equals(".m4a")| song.equals(".wav")| song.equals(".wma")| song.equals(".aac") ) { flag = true; } else { flag = false; @@ -211,4 +211,12 @@ public class UsbPlayer implements Device { return false; } + public void GoToFirst() { + //go to the first song in the list + setPlayTrack(getPlaylist().get(0)); + } + + public void GoToLast() { + setPlayTrack("Musik 03.mp3"); + } } diff --git a/src/test/java/device/usbPlayer/UsbPlayerTest.java b/src/test/java/device/usbPlayer/UsbPlayerTest.java index 2a613fb..042a4a9 100644 --- a/src/test/java/device/usbPlayer/UsbPlayerTest.java +++ b/src/test/java/device/usbPlayer/UsbPlayerTest.java @@ -3,6 +3,7 @@ package device.usbPlayer; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; + import java.util.stream.Stream; import java.util.ArrayList; @@ -48,12 +49,12 @@ class UsbPlayerTest { } -@ParameterizedTest -@MethodSource("louderOptions") -void louderTest(String testName, UsbPlayer inputPlay, int expectedResult) { - int volumeNum = inputPlay.getLautstaerke(); - assertThat(volumeNum).describedAs(testName).isEqualTo(expectedResult); -} + @ParameterizedTest + @MethodSource("louderOptions") + void louderTest(String testName, UsbPlayer inputPlay, int expectedResult) { + int volumeNum = inputPlay.getLautstaerke(); + assertThat(volumeNum).describedAs(testName).isEqualTo(expectedResult); + } static Stream louderOptions() { UsbPlayer up11 = new UsbPlayer(); @@ -149,7 +150,7 @@ void louderTest(String testName, UsbPlayer inputPlay, int expectedResult) { UsbPlayer up2 = new UsbPlayer(); for (int i = 0; i <= 3; i++) { - up2.Louder_10(); + up2.Louder_10(); } up2.quieter_10(); @@ -162,6 +163,7 @@ void louderTest(String testName, UsbPlayer inputPlay, int expectedResult) { Arguments.of("Volume was 100, should stay 100 ", up3, 100) ); } + @ParameterizedTest @MethodSource("quieter_10_Options") void quieter_10_Test(String testName, UsbPlayer inputPlay, int expectedResult) { @@ -194,10 +196,10 @@ void louderTest(String testName, UsbPlayer inputPlay, int expectedResult) { @MethodSource("FindSongOptions") void findSongTest(String testName, int inputPlay, int expectedResult) { //first case: the song is not in the Album - // int songLoc1 = inputPlay.findSong("song 4"); + // int songLoc1 = inputPlay.findSong("song 4"); assertThat(inputPlay).describedAs(testName).isEqualTo(expectedResult); //Second Case: the song is in the album - // int songLoc2 = inputPlay.findSong("Musik 02"); + // int songLoc2 = inputPlay.findSong("Musik 02"); assertThat(inputPlay).describedAs(testName).isEqualTo(expectedResult); } @@ -242,5 +244,114 @@ void louderTest(String testName, UsbPlayer inputPlay, int expectedResult) { ); } + @ParameterizedTest + @MethodSource("isAllAudioOptions") + void isAllAudioTest(String testName, boolean inputTestResult, boolean expectedResult) { + // String current_Track = inputPlay.getPlayTrack(); + assertThat(inputTestResult).describedAs(testName).isEqualTo(expectedResult); + } + + static Stream isAllAudioOptions() { + //mp3 + UsbPlayer up1 = new UsbPlayer(); + //mp4 + UsbPlayer up2 = new UsbPlayer(); + ArrayList Pl = new ArrayList(); + Pl.add("Musik 01.mp4"); + Pl.add("Musik 02.mp4"); + Pl.add("Musik 03.mp4"); + up2.setPlaylist(Pl); + //m4a + UsbPlayer up3 = new UsbPlayer(); + ArrayList Pl1 = new ArrayList(); + Pl1.add("Musik 01.m4a"); + Pl1.add("Musik 02.m4a"); + Pl1.add("Musik 03.m4a"); + up3.setPlaylist(Pl1); + //wav + UsbPlayer up4 = new UsbPlayer(); + ArrayList Pl2 = new ArrayList(); + Pl2.add("Musik 01.wav"); + Pl2.add("Musik 02.wav"); + Pl2.add("Musik 03.wav"); + up4.setPlaylist(Pl2); + //wma + UsbPlayer up5 = new UsbPlayer(); + ArrayList Pl3 = new ArrayList(); + Pl3.add("Musik 01.wma"); + Pl3.add("Musik 02.wma"); + Pl3.add("Musik 03.wma"); + up5.setPlaylist(Pl3); + //aac + UsbPlayer up6 = new UsbPlayer(); + ArrayList Pl4 = new ArrayList(); + Pl4.add("Musik 01.aac"); + Pl4.add("Musik 02.aac"); + Pl4.add("Musik 03.aac"); + up6.setPlaylist(Pl4); + //mixed Audio and text Files in the Album + UsbPlayer up7 = new UsbPlayer(); + ArrayList Pl5 = new ArrayList(); + Pl5.add("Musik 01.aac"); + Pl5.add("Musik 02.txt"); + Pl5.add("Musik 03.aac"); + up7.setPlaylist(Pl5); + + return Stream.of( + Arguments.of("Check if the Files are .mp3 ", up1.isAllAudio(), true), + Arguments.of("Check if the Files are .mp4 ", up2.isAllAudio(), true), + Arguments.of("Check if the Files are .m4a ", up3.isAllAudio(), true), + Arguments.of("Check if the Files are .wav ", up4.isAllAudio(), true), + Arguments.of("Check if the Files are .wma ", up5.isAllAudio(), true), + Arguments.of("Check if the Files are .aac ", up6.isAllAudio(), true), + Arguments.of("Check case of mixed Files", up7.isAllAudio(), false) + + ); + } + + //GoToFirst() + @ParameterizedTest + @MethodSource("GoToFirstOptions") + void GoToFirstTest(String testName, UsbPlayer inputUSB, String expectedResult) { + String firstSong = inputUSB.getPlayTrack(); + assertThat(firstSong ).describedAs(testName).isEqualTo(expectedResult); + } + + static Stream GoToFirstOptions() { + UsbPlayer up1 = new UsbPlayer(); + up1.GoToFirst(); + + UsbPlayer up2 = new UsbPlayer(); + up2.GoToFirst(); + up2.GoToFirst(); + + UsbPlayer up3 = new UsbPlayer(); + up3.next(); + up3.GoToFirst(); + + return Stream.of( + Arguments.of("It should go to the first Song ", up1,up1.getPlaylist().get(0)), + Arguments.of("Call the function twice and it stills go to the first Song ", up2,up2.getPlaylist().get(0)), + Arguments.of("go to the next Song then back to first Song ", up3,up3.getPlaylist().get(0)) + ); + } + + @ParameterizedTest + @MethodSource("GoToLastOptions") + void GoToLastTest(String testName, UsbPlayer inputUSB, String expectedResult) { + String firstSong = inputUSB.getPlayTrack(); + assertThat(firstSong ).describedAs(testName).isEqualTo(expectedResult); + } + + static Stream GoToLastOptions() { + //first case + UsbPlayer up1 = new UsbPlayer(); + up1.GoToLast(); + + + return Stream.of( + Arguments.of("It should go to the first Song ", up1,"Musik 03.mp3") + ); + } } \ No newline at end of file