diff --git a/src/main/java/device/Device.java b/src/main/java/device/Device.java index a2a8c3f..276e029 100644 --- a/src/main/java/device/Device.java +++ b/src/main/java/device/Device.java @@ -7,6 +7,7 @@ public interface Device { int getVolume(); void next(); void prev(); + String play(); //get deviceName, Album and current Item String getInfoText(); //get a list of public methods @@ -15,6 +16,8 @@ public interface Device { String chooseItem(int itemNr); // get the actual album String[] getItemList(); - String play(); - + //mute the Volume and returns an Info. + String mute(); + //unmute the Volume and returns an Info. + String unmute(); } diff --git a/src/main/java/device/cdPlayer/CDPlayer.java b/src/main/java/device/cdPlayer/CDPlayer.java index bdf1995..f5f93cc 100644 --- a/src/main/java/device/cdPlayer/CDPlayer.java +++ b/src/main/java/device/cdPlayer/CDPlayer.java @@ -90,6 +90,16 @@ public class CDPlayer implements Device { return loadedCD.getPlayList(); } + @Override + public String mute() { + return null; + } + + @Override + public String unmute() { + return null; + } + @Override public String play() { if(isCdFlapOpen()){ diff --git a/src/main/java/device/radioPlayer/RadioPlayer.java b/src/main/java/device/radioPlayer/RadioPlayer.java index 849fb11..d7f35f1 100644 --- a/src/main/java/device/radioPlayer/RadioPlayer.java +++ b/src/main/java/device/radioPlayer/RadioPlayer.java @@ -188,6 +188,16 @@ public class RadioPlayer implements Device { return null; } + @Override + public String mute() { + return null; + } + + @Override + public String unmute() { + return null; + } + @Override public String play() { diff --git a/src/main/java/device/usbPlayer/UsbPlayer.java b/src/main/java/device/usbPlayer/UsbPlayer.java index bf403d6..b1440e3 100644 --- a/src/main/java/device/usbPlayer/UsbPlayer.java +++ b/src/main/java/device/usbPlayer/UsbPlayer.java @@ -160,6 +160,16 @@ public class UsbPlayer implements Device { return null; } + @Override + public String mute() { + return null; + } + + @Override + public String unmute() { + return null; + } + @Override public String play() { diff --git a/src/test/java/device/cdPlayer/CDPlayerTest.java b/src/test/java/device/cdPlayer/CDPlayerTest.java index dd985ed..3bcc1db 100644 --- a/src/test/java/device/cdPlayer/CDPlayerTest.java +++ b/src/test/java/device/cdPlayer/CDPlayerTest.java @@ -1,12 +1,18 @@ package device.cdPlayer; +import device.Device; import device.cdPlayer.exceptions.*; +import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; import org.mockito.junit.jupiter.MockitoExtension; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; import java.util.stream.Stream; import static org.assertj.core.api.Assertions.assertThat; @@ -231,22 +237,39 @@ class CDPlayerTest { @ParameterizedTest @MethodSource("getOptionsTestData") - void getOptionsTest(String testName,String testDirection, CDPlayer _cdPlayer, String expectedResult){ + void getOptionsTest(String testName,String testDirection, CDPlayer _cdPlayer){ if(testDirection.equals("ReturnValueNotNull")) { assertThat(_cdPlayer.getOptions()).describedAs(testName).isNotEqualTo(null); } if(testDirection.equals("ArrayLengthGreaterThen0")) { assertThat(_cdPlayer.getOptions().length).describedAs(testName).isNotEqualTo(0); } + if(testDirection.equals("ArrayContainsInterfaceMethods")) { + Method[]interfaceMethods=Device.class.getDeclaredMethods(); + List deviceMethods = new ArrayList(Arrays.asList(_cdPlayer.getOptions())); + for (int i = 0; i < interfaceMethods.length; i++) { + assertThat(deviceMethods.contains(interfaceMethods[i].getName())).describedAs(testName).isEqualTo(true); + } + } } 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) + Arguments.of("[getOptions(): shouldNotReturnNull] => ReturnValueNotNull", "ReturnValueNotNull", cdPlayer1), + Arguments.of("[getOptions(): shouldReturnAnArrayWithLengthGreaterThen0] => ArrayLengthGreaterThen0", "ArrayLengthGreaterThen0", cdPlayer1), + Arguments.of("[getOptions(): shouldReturnAnArrayWithInAllInterfaceMethods] => ArrayContainsInterfaceMethods", "ArrayContainsInterfaceMethods", cdPlayer1) ); } - + @Test + void getVolumeReturnValueBetween0And100(){ + CDPlayer cdPlayer1 = new CDPlayer(); + boolean volumeIstInValueRange=false; + int volume=cdPlayer1.getVolume(); + if(volume>=0 && volume <=100){ + volumeIstInValueRange=true; + } + assertThat(volumeIstInValueRange).isEqualTo(true); + } } \ No newline at end of file