Merge branch '75-backend-unit-testing-tommaso' into 'dev'

Resolve "backend-unit-testing"

Closes #75

See merge request sa4-2020/the-sanmarinoes/backend!143
This commit is contained in:
Claudio Maggioni 2020-05-17 12:52:37 +02:00
commit 7b606307df
2 changed files with 116 additions and 17 deletions

View file

@ -6,35 +6,37 @@ import javax.validation.constraints.Min;
import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;
import lombok.Getter;
import lombok.Setter;
@Data @Data
public class AutomationFastUpdateRequest { public class AutomationFastUpdateRequest {
public abstract static class TriggerDTO { public abstract static class TriggerDTO {
@NotNull public long deviceId; @NotNull @Getter @Setter private long deviceId;
public abstract Trigger<?> toModel(); public abstract Trigger<?> toModel();
} }
public static class BooleanTriggerDTO extends TriggerDTO { public static class BooleanTriggerDTO extends TriggerDTO {
@NotNull public boolean on; @NotNull @Getter @Setter private boolean on;
@Override @Override
public Trigger<?> toModel() { public Trigger<?> toModel() {
BooleanTrigger t = new BooleanTrigger(); BooleanTrigger t = new BooleanTrigger();
t.setDeviceId(this.deviceId); t.setDeviceId(this.getDeviceId());
t.setOn(this.on); t.setOn(this.on);
return t; return t;
} }
} }
public static class RangeTriggerDTO extends TriggerDTO { public static class RangeTriggerDTO extends TriggerDTO {
@NotNull Operator operator; @NotNull @Getter @Setter private Operator operator;
@NotNull double range; @NotNull @Getter @Setter private double range;
@Override @Override
public Trigger<?> toModel() { public Trigger<?> toModel() {
RangeTrigger t = new RangeTrigger(); RangeTrigger t = new RangeTrigger();
t.setDeviceId(this.deviceId); t.setDeviceId(this.getDeviceId());
t.setOperator(this.operator); t.setOperator(this.operator);
t.setRange(this.range); t.setRange(this.range);
return t; return t;
@ -42,11 +44,11 @@ public class AutomationFastUpdateRequest {
} }
public static class ScenePriorityDTO { public static class ScenePriorityDTO {
@NotNull public long sceneId; @NotNull @Getter @Setter private long sceneId;
@NotNull @NotNull
@Min(0) @Min(0)
public Integer priority; private @Getter @Setter Integer priority;
public ScenePriority toModel() { public ScenePriority toModel() {
ScenePriority s = new ScenePriority(); ScenePriority s = new ScenePriority();
@ -57,19 +59,19 @@ public class AutomationFastUpdateRequest {
} }
public abstract static class ConditionDTO { public abstract static class ConditionDTO {
@NotNull public long deviceId; @NotNull @Getter @Setter private long deviceId;
public abstract Condition<?> toModel(); public abstract Condition<?> toModel();
} }
public static class BooleanConditionDTO extends ConditionDTO { public static class BooleanConditionDTO extends ConditionDTO {
@NotNull public boolean on; @NotNull @Getter @Setter private boolean on;
@Override @Override
public Condition<?> toModel() { public Condition<?> toModel() {
BooleanCondition t = new BooleanCondition(); BooleanCondition t = new BooleanCondition();
t.setDeviceId(this.deviceId); t.setDeviceId(this.getDeviceId());
t.setOn(this.on); t.setOn(this.on);
return t; return t;
} }
@ -77,13 +79,13 @@ public class AutomationFastUpdateRequest {
public static class RangeConditionDTO extends ConditionDTO { public static class RangeConditionDTO extends ConditionDTO {
@NotNull Operator operator; @NotNull @Getter @Setter private Operator operator;
@NotNull double range; @NotNull @Getter @Setter private double range;
@Override @Override
public Condition<?> toModel() { public Condition<?> toModel() {
RangeCondition t = new RangeCondition(); RangeCondition t = new RangeCondition();
t.setDeviceId(this.deviceId); t.setDeviceId(this.getDeviceId());
t.setOperator(this.operator); t.setOperator(this.operator);
t.setRange(this.range); t.setRange(this.range);
return t; return t;
@ -92,13 +94,13 @@ public class AutomationFastUpdateRequest {
public static class ThermostatConditionDTO extends ConditionDTO { public static class ThermostatConditionDTO extends ConditionDTO {
@NotNull ThermostatCondition.Operator operator; @NotNull @Getter @Setter private ThermostatCondition.Operator operator;
@NotNull private Thermostat.Mode mode; @NotNull @Getter @Setter private Thermostat.Mode mode;
@Override @Override
public Condition<?> toModel() { public Condition<?> toModel() {
ThermostatCondition t = new ThermostatCondition(); ThermostatCondition t = new ThermostatCondition();
t.setDeviceId(this.deviceId); t.setDeviceId(this.getDeviceId());
t.setOperator(this.operator); t.setOperator(this.operator);
t.setMode(this.mode); t.setMode(this.mode);
return t; return t;

View file

@ -0,0 +1,97 @@
package ch.usi.inf.sa4.sanmarinoes.smarthut;
import static org.junit.jupiter.api.Assertions.*;
import ch.usi.inf.sa4.sanmarinoes.smarthut.dto.AutomationFastUpdateRequest;
import ch.usi.inf.sa4.sanmarinoes.smarthut.models.*;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
@DisplayName("Automation Update DTO")
public class AutomationFastUpdateRequestTest {
AutomationFastUpdateRequest.BooleanTriggerDTO booleanTriggerDTO;
AutomationFastUpdateRequest.RangeTriggerDTO rangeTriggerDTO;
AutomationFastUpdateRequest.ScenePriorityDTO scenePriorityDTO;
AutomationFastUpdateRequest.BooleanConditionDTO booleanConditionDTO;
AutomationFastUpdateRequest.RangeConditionDTO rangeConditionDTO;
AutomationFastUpdateRequest.ThermostatConditionDTO thermostatConditionDTO;
@Test
@DisplayName(" checking boolean trigger ")
public void booleanTriggerDTOTest() {
booleanTriggerDTO = new AutomationFastUpdateRequest.BooleanTriggerDTO();
booleanTriggerDTO.setOn(true);
booleanTriggerDTO.setDeviceId(42);
BooleanTrigger booleanTrigger = (BooleanTrigger) booleanTriggerDTO.toModel();
assertEquals(booleanTrigger.isOn(), booleanTriggerDTO.isOn());
assertEquals(booleanTrigger.getDeviceId(), booleanTriggerDTO.getDeviceId());
}
@Test
@DisplayName(" checking range trigger ")
public void rangeTriggerDTOTest() {
rangeTriggerDTO = new AutomationFastUpdateRequest.RangeTriggerDTO();
rangeTriggerDTO.setOperator(Operator.EQUAL);
rangeTriggerDTO.setDeviceId(420);
rangeTriggerDTO.setRange(12);
RangeTrigger rangeTrigger = (RangeTrigger) rangeTriggerDTO.toModel();
assertEquals(rangeTrigger.getOperator(), rangeTriggerDTO.getOperator());
assertEquals(rangeTrigger.getRange(), rangeTriggerDTO.getRange());
assertEquals(rangeTrigger.getDeviceId(), rangeTriggerDTO.getDeviceId());
}
@Test
@DisplayName(" checking scene priority ")
public void scenePriorityDTOTest() {
scenePriorityDTO = new AutomationFastUpdateRequest.ScenePriorityDTO();
scenePriorityDTO.setPriority(67);
scenePriorityDTO.setSceneId(21);
ScenePriority scenePriority = scenePriorityDTO.toModel();
assertEquals(scenePriority.getPriority(), scenePriorityDTO.getPriority());
assertEquals(scenePriority.getSceneId(), scenePriorityDTO.getSceneId());
}
@Test
@DisplayName(" checking boolean condition ")
public void booleanConditionDTOTest() {
booleanConditionDTO = new AutomationFastUpdateRequest.BooleanConditionDTO();
booleanConditionDTO.setOn(true);
booleanConditionDTO.setDeviceId(17);
BooleanCondition booleanCondition = (BooleanCondition) booleanConditionDTO.toModel();
assertEquals(booleanCondition.isOn(), booleanConditionDTO.isOn());
assertEquals(booleanCondition.getDeviceId(), booleanConditionDTO.getDeviceId());
}
@Test
@DisplayName(" checking range condition ")
public void rangeConditionDTOTest() {
rangeConditionDTO = new AutomationFastUpdateRequest.RangeConditionDTO();
rangeConditionDTO.setOperator(Operator.LESS);
rangeConditionDTO.setRange(82.01);
rangeConditionDTO.setDeviceId(13);
RangeCondition rangeCondition = (RangeCondition) rangeConditionDTO.toModel();
assertEquals(rangeCondition.getOperator(), rangeConditionDTO.getOperator());
assertEquals(rangeCondition.getRange(), rangeConditionDTO.getRange());
assertEquals(rangeCondition.getDeviceId(), rangeConditionDTO.getDeviceId());
}
@Test
@DisplayName(" checking thermostat condition ")
public void thermostatConditionDTOTest() {
thermostatConditionDTO = new AutomationFastUpdateRequest.ThermostatConditionDTO();
thermostatConditionDTO.setDeviceId(25);
thermostatConditionDTO.setOperator(ThermostatCondition.Operator.EQUAL);
thermostatConditionDTO.setMode(Thermostat.Mode.HEATING);
ThermostatCondition thermostatCondition =
(ThermostatCondition) thermostatConditionDTO.toModel();
assertEquals(thermostatCondition.getMode(), thermostatConditionDTO.getMode());
assertEquals(thermostatCondition.getOperator(), thermostatConditionDTO.getOperator());
assertEquals(thermostatCondition.getDeviceId(), thermostatConditionDTO.getDeviceId());
}
}