diff --git a/src/main/java/device/Device.java b/src/main/java/device/Device.java index 621e540..a2a8c3f 100644 --- a/src/main/java/device/Device.java +++ b/src/main/java/device/Device.java @@ -7,13 +7,14 @@ public interface Device { int getVolume(); void next(); void prev(); + //get deviceName, Album and current Item String getInfoText(); - //returns an array with Method-Names to bee listed + //get a list of public methods String[] getOptions(); - //returns an array with contents to bee played + //get an Item of the Album + String chooseItem(int itemNr); + // get the actual album String[] getItemList(); - String play(); - } diff --git a/src/main/java/device/cdPlayer/CDPlayer.java b/src/main/java/device/cdPlayer/CDPlayer.java index 618159d..bdf1995 100644 --- a/src/main/java/device/cdPlayer/CDPlayer.java +++ b/src/main/java/device/cdPlayer/CDPlayer.java @@ -2,6 +2,8 @@ package device.cdPlayer; import device.Device; import device.cdPlayer.exceptions.*; + +import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -69,7 +71,18 @@ public class CDPlayer implements Device { @Override public String[] getOptions() { - return new String[0]; + Method[] methods=this.getClass().getDeclaredMethods(); + String[] outMethods=new String[methods.length]; + + for (int i = 0; i FirstSongSelected", "StartingByFirstSong", cdPlayer1, 1, cdPlayer1.getSongByNumber(0)) ); } + + @ParameterizedTest + @MethodSource("getOptionsTestData") + void getOptionsTest(String testName,String testDirection, CDPlayer _cdPlayer, String expectedResult){ + if(testDirection.equals("ReturnValueNotNull")) { + assertThat(_cdPlayer.getOptions()).describedAs(testName).isNotEqualTo(null); + } + if(testDirection.equals("ArrayLengthGreaterThen0")) { + assertThat(_cdPlayer.getOptions().length).describedAs(testName).isNotEqualTo(0); + } + } + static Stream getOptionsTestData () { + CDPlayer cdPlayer1 = new CDPlayer(); + return Stream.of( + Arguments.of("[getOptions(): shouldNotReturnNull] => ReturnValueNotNull", "ReturnValueNotNull", cdPlayer1,null), + Arguments.of("[getOptions(): shouldReturnAnArrayWithLengthGreaterThen0] => ArrayLengthGreaterThen0", "ArrayLengthGreaterThen0", cdPlayer1,null) + ); + } + + + } \ No newline at end of file