diff --git a/src/main/java/BordComputer.java b/src/main/java/BordComputer.java index 156e191..2eb7168 100644 --- a/src/main/java/BordComputer.java +++ b/src/main/java/BordComputer.java @@ -1,6 +1,8 @@ import device.Device; import device.cdPlayer.CD; import device.cdPlayer.CDPlayer; +import device.cdPlayer.CD; +import device.cdPlayer.CDPlayer; import device.radioPlayer.RadioPlayer; import device.usbPlayer.USB_Stick; import device.usbPlayer.UsbPlayer; @@ -42,6 +44,35 @@ public class BordComputer { } } + public String changeDevice() { + Device[] tempDevices = new Device[installedDevices.length]; + tempDevices[0] = installedDevices[1]; + tempDevices[1] = installedDevices[2]; + tempDevices[2] = installedDevices[0]; + //replaces the lists + installedDevices = tempDevices; + //setting activeDevice + activeDevice = installedDevices[0]; + + String infoText=""; + if(activeDevice instanceof CDPlayer){ + CDPlayer cdPlayer=(CDPlayer) activeDevice; + String[] audioPlayList=new String[]{"Audio 01","Audio 02","Audio 03","Audio 04","Audio 05"}; + //some CDs + CD audioCD1=new CD("Audio",audioPlayList); + audioCD1.setAlbumName("Love Songs"); + + cdPlayer.tapOnCdFlap(); + cdPlayer.setCD(audioCD1); + cdPlayer.tapOnCdFlap(); + cdPlayer.setInfoText(); + infoText = cdPlayer.getInfoText(); + }else{ + infoText=activeDevice.getInfoText()+" ist activate"; + } + return infoText; + } + public String play(){ String itemToPlay=null; try { diff --git a/src/main/java/device/radioPlayer/RadioPlayer.java b/src/main/java/device/radioPlayer/RadioPlayer.java index 0b341d4..7d9c503 100644 --- a/src/main/java/device/radioPlayer/RadioPlayer.java +++ b/src/main/java/device/radioPlayer/RadioPlayer.java @@ -24,7 +24,7 @@ public class RadioPlayer implements Device { int savedVolume; String playedStation; - public String getYouFMInfoByTime(int x) { + String getYouFMInfoByTime(int x) { if (x >= 5 && x < 10) return YouFMInfo[0]; else if (x >= 10 && x < 14) return YouFMInfo[1]; else if (x >= 14 && x < 18) return YouFMInfo[2]; @@ -36,7 +36,7 @@ public class RadioPlayer implements Device { String[] YouFMInfo = {"YOUFM Good Morning Show", "YOUFM Worktime", "YOUFM am Nachmittag", "YOUFM am Abend", "YOUFM Wir feiern euch", "YOUFM Deutschrap ideal", "YOUFM Junge Nacht der ARD"}; - public String getBR3InfoByTime(int x) { + String getBR3InfoByTime(int x) { if (x >= 5 && x < 9) return BR3Info[0]; else if (x >= 9 && x < 12) return BR3Info[1]; else if (x == 12) return BR3Info[2]; @@ -49,7 +49,7 @@ public class RadioPlayer implements Device { String[] BR3Info = {"Sebastian Winkler und die Frühaufdreher", "BAYERN 3 - und DU mittendrin!", "Update", "Hits, Hits, Hits für euren Nachmittag", "Die Zwei für euren Feierabend", "Was geht?!", "Matuschke - der etwas andere Abend", "Die Nacht"}; - public String getAntenneBYInfoByTime(int x) { + String getAntenneBYInfoByTime(int x) { if (x >= 5 && x < 9) return AntenneBYInfo[0]; else if (x >= 9 && x < 12) return AntenneBYInfo[1]; else if (x >= 12 && x < 15) return AntenneBYInfo[2]; diff --git a/src/main/java/device/usbPlayer/UsbPlayer.java b/src/main/java/device/usbPlayer/UsbPlayer.java index acf923b..391d563 100644 --- a/src/main/java/device/usbPlayer/UsbPlayer.java +++ b/src/main/java/device/usbPlayer/UsbPlayer.java @@ -70,10 +70,7 @@ public class UsbPlayer implements Device { super(); isDefect = false; isConnected = true; - /*Playlist.add("Musik 01.mp3"); - Playlist.add("Musik 02.mp3"); - Playlist.add("Musik 03.mp3"); - playTrack = Playlist.get(0);*/ + try { Playlist = stick.getAlbum(); } catch (NoFolderFound e) { diff --git a/src/test/java/BordComputerTest.java b/src/test/java/BordComputerTest.java index e9a8309..2708ecc 100644 --- a/src/test/java/BordComputerTest.java +++ b/src/test/java/BordComputerTest.java @@ -84,6 +84,102 @@ class BordComputerTest { return count; } + //// + @ParameterizedTest + @MethodSource("changeDeviceOptions") + void changeDeviceTest(String testName, BordComputer inputBC, Device[] oldDevices,Device prvDevice,String message ,int caseNr) { + Device[] newDevicesList = inputBC.installedDevices.clone(); + if (caseNr == 1 ) { + assertThat(newDevicesList).describedAs(testName).isNotEqualTo(oldDevices); + }else if (caseNr == 2) { + Device currentDevice = inputBC.activeDevice; + assertThat(currentDevice).describedAs(testName).isNotEqualTo(prvDevice); + }else if (caseNr == 3) { + assertThat(inputBC.changeDevice()).describedAs(testName).isNotNull(); + }else if (caseNr == 4) { + assertThat(inputBC.changeDevice()).describedAs(testName).isNotNull(); + }else if (caseNr == 5) { + assertThat(inputBC.changeDevice()).describedAs(testName).isNotNull(); + }else if (caseNr == 6) { + assertThat(inputBC.changeDevice()).describedAs(testName).contains("USB Player"); + }else if (caseNr == 7) { + assertThat(inputBC.changeDevice()).describedAs(testName).contains("CDPlayer"); + }else if (caseNr == 8) { + assertThat(inputBC.changeDevice()).describedAs(testName).contains("playlist"); + } + } + + static Stream changeDeviceOptions() throws ClassNotFoundException, InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException { + + //first case + BordComputer bc = new BordComputer(); + bc.readConfig(); + bc.setDevices(); + Device[] currentDevices = new Device[bc.installedDevices.length]; + currentDevices = bc.installedDevices.clone(); + String m = bc.changeDevice(); + + //second case + BordComputer bc1 = new BordComputer(); + bc1.readConfig(); + bc1.setDevices(); + Device prvDevice = bc1.activeDevice; + m =bc1.changeDevice(); + + //third case + BordComputer bc2 = new BordComputer(); + bc2.readConfig(); + bc2.setDevices(); + m =bc2.changeDevice(); + + //forth case + BordComputer bc3 = new BordComputer(); + bc3.readConfig(); + bc3.setDevices(); + m =bc3.changeDevice(); + m =bc3.changeDevice(); //CDPlayer + + //fifth case + BordComputer bc4 = new BordComputer(); + bc4.readConfig(); + bc4.setDevices(); + m =bc4.changeDevice(); + m =bc4.changeDevice(); //CDPlayer + m =bc4.changeDevice(); + + //sixth case + BordComputer bc5 = new BordComputer(); + bc5.readConfig(); + bc5.setDevices(); + m =bc5.changeDevice(); + + //seventh case + BordComputer bc6 = new BordComputer(); + bc6.readConfig(); + bc6.setDevices(); + m =bc6.changeDevice(); + m =bc6.changeDevice(); + + //eighth case + BordComputer bc7 = new BordComputer(); + bc7.readConfig(); + bc7.setDevices(); + m =bc7.changeDevice(); + m =bc7.changeDevice(); + m =bc7.changeDevice(); + + return Stream.of( + Arguments.of("The order of the installedDevices should be changed ", bc,currentDevices,null,"",1), + Arguments.of("The active Device should be changed ", bc1,null,prvDevice,"",2), + Arguments.of("The new Device returns a String ", bc2,null,prvDevice,bc2.activeDevice.toString(),3), + Arguments.of("The new Device returns a String ", bc3,null,prvDevice,null,4), + Arguments.of("The new Device returns a String ", bc4,null,prvDevice,null,5), + Arguments.of("The new Device returns Info ", bc5,null,prvDevice,null,6), + Arguments.of("The new Device returns Info ", bc6,null,prvDevice,null,7), + Arguments.of("The new Device returns Info ", bc6,null,prvDevice,null,8) + ); + } + @ParameterizedTest @MethodSource("playDate") void playTest(String testName, String testCase,BordComputer bordComputer,String instanceName) { diff --git a/src/test/java/device/radioPlayer/RadioPlayerTest.java b/src/test/java/device/radioPlayer/RadioPlayerTest.java index 680109c..3cc6ad0 100644 --- a/src/test/java/device/radioPlayer/RadioPlayerTest.java +++ b/src/test/java/device/radioPlayer/RadioPlayerTest.java @@ -6,7 +6,6 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; - import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Arrays; @@ -104,9 +103,12 @@ class RadioPlayerTest { @ParameterizedTest @MethodSource("infoByTimeOptions") void infoByTimeInfo(String testName, RadioPlayer testRp, String testTyp, int hour, String expectedResult) { - if(testTyp.equals("YouFM")) assertThat(testRp.getYouFMInfoByTime(hour)).describedAs(testName).isEqualTo(expectedResult); - if(testTyp.equals("BR3")) assertThat(testRp.getBR3InfoByTime(hour)).describedAs(testName).isEqualTo(expectedResult); - if(testTyp.equals("AntenneBY")) assertThat(testRp.getAntenneBYInfoByTime(hour)).describedAs(testName).isEqualTo(expectedResult); + if (testTyp.equals("YouFM")) + assertThat(testRp.getYouFMInfoByTime(hour)).describedAs(testName).isEqualTo(expectedResult); + if (testTyp.equals("BR3")) + assertThat(testRp.getBR3InfoByTime(hour)).describedAs(testName).isEqualTo(expectedResult); + if (testTyp.equals("AntenneBY")) + assertThat(testRp.getAntenneBYInfoByTime(hour)).describedAs(testName).isEqualTo(expectedResult); } static Stream infoByTimeOptions() {