Added some tests for Regular Light and for Switch

This commit is contained in:
Jacob Salvi 2020-03-17 17:44:57 +01:00
parent 313e6ed88e
commit 5e7bd298de
2 changed files with 143 additions and 0 deletions

View file

@ -0,0 +1,47 @@
package ch.usi.inf.sa4.sanmarinoes.smarthut;
import static org.junit.jupiter.api.Assertions.*;
import ch.usi.inf.sa4.sanmarinoes.smarthut.models.RegularLight;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
@DisplayName("A RegularLight")
public class RegularLightTests {
RegularLight regularLight;
@BeforeEach
public void createRegularLight() {
this.regularLight = new RegularLight();
}
@Test
@DisplayName("State when just created")
public void beginningState() {
assertFalse(regularLight.isOn());
}
@Test
@DisplayName("Changing state to on after creating the light")
public void createAndSetOn() {
regularLight.setOn(true);
assertTrue(regularLight.isOn());
}
@Test
@DisplayName("Change state of the light to off after creating it")
public void createAndSetOff() {
regularLight.setOn(false);
assertFalse(regularLight.isOn());
}
@Test
@DisplayName("Checks whether a turned on light getting turned on is still in the on State")
public void setOn() {
regularLight.setOn(true);
regularLight.setOn(true);
assertTrue(regularLight.isOn());
}
}

View file

@ -0,0 +1,96 @@
package ch.usi.inf.sa4.sanmarinoes.smarthut;
import static org.junit.jupiter.api.Assertions.*;
import ch.usi.inf.sa4.sanmarinoes.smarthut.models.*;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
@DisplayName("A switch")
public class SwitchTests {
Switch aSwitch;
@BeforeEach
public void createNewSwitch() {
this.aSwitch = new Switch();
RegularLight regularLight = new RegularLight();
DimmableLight dimmableLight = new DimmableLight();
SmartPlug smartPlug = new SmartPlug();
this.aSwitch.getOutputs().add(regularLight);
this.aSwitch.getOutputs().add(dimmableLight);
this.aSwitch.getOutputs().add(smartPlug);
}
@Test
@DisplayName("check state when switch created")
public void createdSwitch() {
assertFalse(aSwitch.isOn());
}
@Test
@DisplayName("Check toggle on a switch in its off state")
public void offToggle() {
aSwitch.toggle();
assertTrue(aSwitch.isOn());
}
@Test
@DisplayName("Checks whether setting on a off switch works as intended")
public void offSetOn() {
aSwitch.setOn(true);
assertTrue(aSwitch.isOn());
}
@Test
@DisplayName("Checks whether setting off a on switch works as intended")
public void onSetOff() {
aSwitch.toggle();
aSwitch.setOn(false);
assertFalse(aSwitch.isOn());
}
@Test
@DisplayName("Checks that setting off an off switch results in a off state")
public void offSetOff() {
aSwitch.setOn(false);
assertFalse(aSwitch.isOn());
}
@Test
@DisplayName("Checks that setting on an on switch results in a on state")
public void onSetOn() {
aSwitch.toggle();
aSwitch.setOn(true);
assertTrue(aSwitch.isOn());
}
@Test
@DisplayName("Checks wheter toggling a on switch set its state to off")
public void onToggle() {
aSwitch.setOn(true);
aSwitch.toggle();
assertFalse(aSwitch.isOn());
}
@Test
@DisplayName("Checks that toggling on sets all elements of the Set on as well")
public void toggleEffctOnSet() {
aSwitch.toggle();
for (final Switchable s : aSwitch.getOutputs()) {
assertTrue(s.isOn());
}
}
@Test
@DisplayName("Checks that toggling the switch off also sets all elements of its set off")
public void toggleOffEffectOnElementes() {
aSwitch.setOn(true);
aSwitch.toggle();
for (final Switchable s : aSwitch.getOutputs()) {
assertFalse(s.isOn());
}
}
}