5 Commits

  1. 16
      src/main/java/device/cdPlayer/CD.java
  2. 12
      src/main/java/device/cdPlayer/CDPlayer.java
  3. 6
      src/main/java/device/cdPlayer/CDWechseler.java
  4. 7
      src/main/java/device/cdPlayer/exceptions/ChangeCDOnlyOnCDWechselerException.java
  5. 66
      src/test/java/device/cdPlayer/CDPlayerTest.java

16
src/main/java/device/cdPlayer/CD.java

@ -4,6 +4,7 @@ public class CD {
private String format; private String format;
private String albumName; private String albumName;
private String[] playList; private String[] playList;
private String id;
public CD() {} public CD() {}
@ -16,6 +17,13 @@ public class CD {
this.playList = playList; this.playList = playList;
} }
public CD(String format, String albumName, String[] playList, String id) {
this.format = format;
this.albumName = albumName;
this.playList = playList;
this.id = id;
}
public String getFormat() { public String getFormat() {
return format; return format;
} }
@ -39,4 +47,12 @@ public class CD {
public void setAlbumName(String albumName) { public void setAlbumName(String albumName) {
this.albumName = albumName; this.albumName = albumName;
} }
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
} }

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

@ -152,7 +152,17 @@ public class CDPlayer implements Device {
throw new MaxCapacityExceededException(); throw new MaxCapacityExceededException();
} }
cdWechseler.loadOneCD(cd,index); cdWechseler.loadOneCD(cd,index);
System.out.println(index);
this.loadedCD=cdWechseler.getCDList().get(0);
}
public void changeToNextCD(){
if(activeSource.equals("CDDrive")){
throw new ChangeCDOnlyOnCDWechselerException();
}
List<CD> CDList = cdWechseler.getCDList();
int indexOfLoadedCD=CDList.indexOf(loadedCD);
int nextIndex=(indexOfLoadedCD+1)%CDList.size();
this.loadedCD=CDList.get(nextIndex);
} }
//Getters, Setters und SupportMethods //Getters, Setters und SupportMethods

6
src/main/java/device/cdPlayer/CDWechseler.java

@ -4,7 +4,7 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
public class CDWechseler { public class CDWechseler {
private CD[]CDList=new CD[10];
private List<CD> CDList=new ArrayList<>();
private boolean running=false; private boolean running=false;
@ -16,11 +16,11 @@ public class CDWechseler {
this.running = true; this.running = true;
} }
public CD[] getCDList() {
public List<CD> getCDList() {
return CDList; return CDList;
} }
public void loadOneCD(CD cd, int index){ public void loadOneCD(CD cd, int index){
CDList[index]=cd;
CDList.add(cd);
} }
} }

7
src/main/java/device/cdPlayer/exceptions/ChangeCDOnlyOnCDWechselerException.java

@ -0,0 +1,7 @@
package device.cdPlayer.exceptions;
public class ChangeCDOnlyOnCDWechselerException extends RuntimeException{
public ChangeCDOnlyOnCDWechselerException(){
super("Change to next CD olny when CDWechseler is selected");
}
}

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

@ -404,7 +404,7 @@ class CDPlayerTest {
if(cases.equals("Case3")) { if(cases.equals("Case3")) {
_cdPlayer.changePlaySource(); _cdPlayer.changePlaySource();
_cdPlayer.loadCDWechseler(cd,0); _cdPlayer.loadCDWechseler(cd,0);
CD firstCD=_cdPlayer.getCdWechseler().getCDList()[0];
CD firstCD=_cdPlayer.getCdWechseler().getCDList().get(0);
assertThat(firstCD).describedAs(testName).isNotEqualTo(null); assertThat(firstCD).describedAs(testName).isNotEqualTo(null);
} }
if(cases.equals("Case4")) { if(cases.equals("Case4")) {
@ -428,5 +428,69 @@ class CDPlayerTest {
); );
} }
@ParameterizedTest
@MethodSource("changeToNextCDData")
void changeToNextCDTest(String testName,String cases, CDPlayer _cdPlayer,Exception exception) {
if(cases.equals("Case1")) {
Exception newException = assertThrows(exception.getClass(), () -> _cdPlayer.changeToNextCD());
assertEquals(ChangeCDOnlyOnCDWechselerException.class, newException.getClass());
}
if(cases.equals("Case2")) {
CD actualCD=_cdPlayer.getCD();
_cdPlayer.changeToNextCD();
CD nextCD=_cdPlayer.getCD();
assertThat(nextCD).describedAs(testName).isNotEqualTo(null);
}
if(cases.equals("Case3")) {
CD actualCD=_cdPlayer.getCD();
_cdPlayer.changeToNextCD();
CD nextCD=_cdPlayer.getCD();
assertThat(nextCD.getId()==actualCD.getId()).describedAs(testName).isNotEqualTo(true);
}
if(cases.equals("Case4")) {
CD actualCdBefore=_cdPlayer.getCD();
for (int i = 0; i <3 ; i++) {
_cdPlayer.changeToNextCD();
}
CD actualCdAfter=_cdPlayer.getCD();
assertThat(actualCdBefore.getId()==actualCdAfter.getId()).describedAs(testName).isEqualTo(true);
}
}
static Stream<Arguments> changeToNextCDData () {
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");
CD audioCD3=new CD("Audio","SalsaMusic",audioPlayList,"KKRP118");
CDPlayer cdPlayer1 = new CDPlayer();
CDPlayer cdPlayer2 = new CDPlayer();
cdPlayer2.changePlaySource();
cdPlayer2.loadCDWechseler(audioCD1,0);
cdPlayer2.loadCDWechseler(audioCD2,1);
cdPlayer2.loadCDWechseler(audioCD3,2);
CDPlayer cdPlayer3 = new CDPlayer();
cdPlayer3.changePlaySource();
cdPlayer3.loadCDWechseler(audioCD1,0);
cdPlayer3.loadCDWechseler(audioCD2,1);
cdPlayer3.loadCDWechseler(audioCD3,2);
CDPlayer cdPlayer4 = new CDPlayer();
cdPlayer4.changePlaySource();
cdPlayer4.loadCDWechseler(audioCD1,0);
cdPlayer4.loadCDWechseler(audioCD2,1);
cdPlayer4.loadCDWechseler(audioCD3,2);
return Stream.of(
Arguments.of("[changeToNextCD() by CDWechselerNotSelected ] => shouldThrowAnException", "Case1", cdPlayer1,new ChangeCDOnlyOnCDWechselerException()),
Arguments.of("[changeToNextCD() checking the effect ] => loadedCDShouldNotReturnNull", "Case2", cdPlayer2,null),
Arguments.of("[changeToNextCD() checking the effect 2 ] => loadedCDShouldNotHaveTheSameIdAsPrev", "Case3", cdPlayer3,null),
Arguments.of("[3x changeToNextCD() changing from last to first CD] => FirstCDShouldBeTaken", "Case4", cdPlayer4,null)
);
}
} }
Loading…
Cancel
Save