diff --git a/src/main/java/object/fredainsworth/Radio.java b/src/main/java/object/fredainsworth/Radio.java new file mode 100644 index 0000000..c598fde --- /dev/null +++ b/src/main/java/object/fredainsworth/Radio.java @@ -0,0 +1,75 @@ +package object.fredainsworth; + +public class Radio { + private int serialNum; + private double frequency; + private String activationPhrase; + private boolean poweredOn; + private boolean isListening; + + public Radio(int serialNum, double frequency, String activationPhrase, boolean poweredOn, boolean isListening) { + this.serialNum = serialNum; + this.frequency = frequency; + this.activationPhrase = activationPhrase; + this.poweredOn = poweredOn; + this.isListening = isListening; + } + + public int getSerialNum() { + return serialNum; + } + + public void setSerialNum(int serialNum) { + if (serialNum==0){ + throw new IllegalArgumentException("serial number cannot be 0"); + } + this.serialNum = serialNum; + } + + public double getFrequency() { + return frequency; + } + + public void setFrequency(double frequency) { + this.frequency = frequency; + } + + public boolean isListening() { + return isListening; + } + + public void setListening(boolean listening) { + isListening = listening; + } + + public boolean isPoweredOn() { + return poweredOn; + } + + public void setPoweredOn(boolean poweredOn) { + this.poweredOn = poweredOn; + } + + public String getActivationPhrase() { + return activationPhrase; + } + + public void setActivationPhrase(String activationPhrase) { + this.activationPhrase = activationPhrase; + } + + public void setCustomPhrase(String customPhrase){ + System.out.println("Custom activation phrase has been updated to: "+ customPhrase); + setActivationPhrase(customPhrase); + } + public void activelyListen(String activationPhrase){ + if (activationPhrase.equals(this.getActivationPhrase())){ + setListening(true); + } + + + + + + } +} diff --git a/src/test/java/object/fredainsworth/RadioTest.java b/src/test/java/object/fredainsworth/RadioTest.java new file mode 100644 index 0000000..ede20e0 --- /dev/null +++ b/src/test/java/object/fredainsworth/RadioTest.java @@ -0,0 +1,39 @@ +package object.fredainsworth; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +public class RadioTest { + +@Test +public void constructorShouldCreateRadioWithValidData() { + Radio radio= new Radio(215302,911.0,"Dispatch!", true,false); + assertEquals(215302, radio.getSerialNum()); + assertEquals(911.0, radio.getFrequency()); + assertEquals("Dispatch!", radio.getActivationPhrase()); + assertTrue(radio.isPoweredOn()); + assertFalse(radio.isListening()); +} +@Test +public void doesActiveListeningWork(){ + Radio radio= new Radio(215302,911.0,"Dispatch!", true,false); + radio.activelyListen("Dispatch!"); + assertTrue(radio.isListening()); +} +@Test +public void doesSettingNewActivationPhraseWork(){ + Radio radio= new Radio(215302,911.0,"Dispatch!", true,false); + radio.setCustomPhrase("Officer down!"); + assertEquals("Officer down!",radio.getActivationPhrase()); + +} +@Test + public void serialNumber0ThrowsException(){ + Radio radio= new Radio(215302,911.0,"Dispatch!", true,false); + assertThrows( + IllegalArgumentException.class, + () -> radio.setSerialNum(0)); +} + +}