Browse Source

BordComputer.play; instance of CDPlayer -> after all preconditions ShouldReturnAnItemToPlay.

feature-pr-lastUpdate
JPANZO 3 years ago
parent
commit
f526cacb40
  1. 43
      src/main/java/BordComputer.java
  2. 9
      src/main/java/device/cdPlayer/CDPlayer.java
  3. 17
      src/test/java/BordComputerTest.java
  4. 3
      src/test/java/device/cdPlayer/CDPlayerTest.java

43
src/main/java/BordComputer.java

@ -1,4 +1,8 @@
import device.Device; import device.Device;
import device.cdPlayer.CD;
import device.cdPlayer.CDPlayer;
import device.radioPlayer.RadioPlayer;
import device.usbPlayer.UsbPlayer;
import java.io.FileReader; import java.io.FileReader;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
@ -35,4 +39,43 @@ public class BordComputer {
installedDevices[i] = (Device) c.getConstructor().newInstance(); installedDevices[i] = (Device) c.getConstructor().newInstance();
} }
} }
public String play(){
String itemToPlay=activeDevice.play();
return itemToPlay;
}
//===== Hilf-Funktionen ======
public Object getInstanceByName(String deviceName){
for (int i = 0; i <installedDevices.length ; i++) {
if(installedDevices[i].getClass().getSimpleName().equals(deviceName)){
if(deviceName.equals("CDPlayer")){
return (CDPlayer)installedDevices[i];
}
if(deviceName.equals("RadioPlayer")){
return (RadioPlayer)installedDevices[i];
}
if(deviceName.equals("UsbPlayer")){
return (UsbPlayer)installedDevices[i];
}
}
}
return null;
}
public void meetAllPreconditionForPlay(){
String[] audioPlayList = new String[]{"Audio 01", "Audio 02", "Audio 03", "Audio 04", "Audio 05"};
CD audioCD1 = new CD("Audio", "PopMusic", audioPlayList, "XAc20044");
CD audioCD2=new CD("Audio","RockMusic",audioPlayList,"BLXPP78");
CDPlayer cdPlayer=(CDPlayer) activeDevice;
cdPlayer.changePlaySource();
cdPlayer.loadCDWechseler(audioCD1, 0);
cdPlayer.loadCDWechseler(audioCD2, 1);
cdPlayer.setCD(cdPlayer.getCdWechseler().getCDList().get(0));
activeDevice=cdPlayer;
}
} }

9
src/main/java/device/cdPlayer/CDPlayer.java

@ -28,6 +28,8 @@ public class CDPlayer implements Device {
private boolean muted=false; private boolean muted=false;
private int oldVolume=0; private int oldVolume=0;
private String status="";
@Override @Override
public void louder() { public void louder() {
if(volume < 100) { if(volume < 100) {
@ -138,8 +140,8 @@ public class CDPlayer implements Device {
throw new FormatNotSupportedException(); throw new FormatNotSupportedException();
} }
else if(!isCdFlapOpen()&&getCdDriveContent()==1&&checkFormat(loadedCD.getFormat())){ else if(!isCdFlapOpen()&&getCdDriveContent()==1&&checkFormat(loadedCD.getFormat())){
System.out.println(loadedCD.getFormat()+" "+this.actualPlayTrack+" is playing.");
return "AllConditionsForPlayMet";
status="AllConditionsForPlayMet";
return (loadedCD.getFormat()+":"+this.actualPlayTrack+" is playing.");
} }
return null; return null;
} }
@ -247,4 +249,7 @@ public class CDPlayer implements Device {
return oldVolume; return oldVolume;
} }
public String getStatus() {
return status;
}
} }

17
src/test/java/BordComputerTest.java

@ -81,4 +81,21 @@ class BordComputerTest {
} }
return count; return count;
} }
@ParameterizedTest
@MethodSource("playDate")
void playTest(String testName, String testCase,BordComputer bordComputer,String instanceName) {
bordComputer.meetAllPreconditionForPlay();
assertThat(bordComputer.play()).describedAs(testName).isNotEqualTo(null);
}
static Stream<Arguments> playDate()throws ClassNotFoundException, InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException {
BordComputer bordComputer = new BordComputer();
bordComputer.readConfig();
return Stream.of(
Arguments.of("[CDPlayer-> play(): after all preconditions are met] => ShouldReturnAnItemToPlay","Case1",bordComputer,"CDPlayer")
);
}
} }

3
src/test/java/device/cdPlayer/CDPlayerTest.java

@ -30,7 +30,8 @@ class CDPlayerTest {
Exception newException=assertThrows(exception.getClass(),()->_cdPlayer.play()); Exception newException=assertThrows(exception.getClass(),()->_cdPlayer.play());
assertEquals(expectedResult, newException.getMessage()); assertEquals(expectedResult, newException.getMessage());
}else{ }else{
assertThat(_cdPlayer.play()).describedAs(testName).isEqualTo(expectedResult);
_cdPlayer.play();
assertThat(_cdPlayer.getStatus()).describedAs(testName).isEqualTo(expectedResult);
} }
} }
static Stream<Arguments> playTestData () { static Stream<Arguments> playTestData () {

Loading…
Cancel
Save