Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 75 additions & 0 deletions src/main/java/object/fredainsworth/Radio.java
Original file line number Diff line number Diff line change
@@ -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);
}





}
}
39 changes: 39 additions & 0 deletions src/test/java/object/fredainsworth/RadioTest.java
Original file line number Diff line number Diff line change
@@ -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));
}

}