Merge branch 'tests' into 'dev'
Tests See merge request sa4-2020/the-sanmarinoes/backend!208
This commit is contained in:
commit
2708c438ba
3 changed files with 66 additions and 9 deletions
|
@ -20,19 +20,37 @@ import org.springframework.stereotype.Component;
|
||||||
@Component
|
@Component
|
||||||
public class UpdateTasks {
|
public class UpdateTasks {
|
||||||
|
|
||||||
@Autowired private SensorRepository sensorRepository;
|
private final SensorRepository sensorRepository;
|
||||||
|
|
||||||
@Autowired private MotionSensorRepository motionSensorRepository;
|
private final MotionSensorRepository motionSensorRepository;
|
||||||
|
|
||||||
@Autowired private SmartPlugRepository smartPlugRepository;
|
private final SmartPlugRepository smartPlugRepository;
|
||||||
|
|
||||||
@Autowired private SensorService sensorService;
|
private final SensorService sensorService;
|
||||||
|
|
||||||
@Autowired private ThermostatService thermostatService;
|
private final ThermostatService thermostatService;
|
||||||
|
|
||||||
@Autowired private MotionSensorService motionSensorService;
|
private final MotionSensorService motionSensorService;
|
||||||
|
|
||||||
@Autowired private SensorSocketEndpoint sensorSocketEndpoint;
|
private final SensorSocketEndpoint sensorSocketEndpoint;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
public UpdateTasks(
|
||||||
|
SensorRepository sensorRepository,
|
||||||
|
MotionSensorRepository motionSensorRepository,
|
||||||
|
SmartPlugRepository smartPlugRepository,
|
||||||
|
SensorService sensorService,
|
||||||
|
ThermostatService thermostatService,
|
||||||
|
MotionSensorService motionSensorService,
|
||||||
|
SensorSocketEndpoint sensorSocketEndpoint) {
|
||||||
|
this.sensorRepository = sensorRepository;
|
||||||
|
this.motionSensorRepository = motionSensorRepository;
|
||||||
|
this.smartPlugRepository = smartPlugRepository;
|
||||||
|
this.sensorService = sensorService;
|
||||||
|
this.thermostatService = thermostatService;
|
||||||
|
this.motionSensorService = motionSensorService;
|
||||||
|
this.sensorSocketEndpoint = sensorSocketEndpoint;
|
||||||
|
}
|
||||||
|
|
||||||
/** Generates fake sensor updates every two seconds with a +/- 2.5% error */
|
/** Generates fake sensor updates every two seconds with a +/- 2.5% error */
|
||||||
@Scheduled(fixedRate = 2000)
|
@Scheduled(fixedRate = 2000)
|
||||||
|
@ -78,7 +96,7 @@ public class UpdateTasks {
|
||||||
c.forEach(
|
c.forEach(
|
||||||
s ->
|
s ->
|
||||||
sensorSocketEndpoint.queueDeviceUpdate(
|
sensorSocketEndpoint.queueDeviceUpdate(
|
||||||
s, sensorRepository.findUser(s.getId()), false, null, false));
|
s, smartPlugRepository.findUser(s.getId()), false, null, false));
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Sends device updates through sensor socket in batch every one second */
|
/** Sends device updates through sensor socket in batch every one second */
|
||||||
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
package ch.usi.inf.sa4.sanmarinoes.smarthut.scheduled;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
|
||||||
|
import static org.mockito.Mockito.*;
|
||||||
|
|
||||||
|
import ch.usi.inf.sa4.sanmarinoes.smarthut.models.SmartPlug;
|
||||||
|
import ch.usi.inf.sa4.sanmarinoes.smarthut.models.SmartPlugRepository;
|
||||||
|
import ch.usi.inf.sa4.sanmarinoes.smarthut.models.User;
|
||||||
|
import ch.usi.inf.sa4.sanmarinoes.smarthut.socket.SensorSocketEndpoint;
|
||||||
|
import java.util.List;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
|
import org.mockito.InjectMocks;
|
||||||
|
import org.mockito.Mock;
|
||||||
|
import org.mockito.junit.jupiter.MockitoExtension;
|
||||||
|
|
||||||
|
@ExtendWith(MockitoExtension.class)
|
||||||
|
public class UpdateTasksTests {
|
||||||
|
|
||||||
|
@InjectMocks private UpdateTasks updateTasks;
|
||||||
|
|
||||||
|
@Mock private SmartPlugRepository smartPlugRepository;
|
||||||
|
|
||||||
|
@Mock private SensorSocketEndpoint sensorSocketEndpoint;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSmartPlugConsumptionFakeUpdate() {
|
||||||
|
final User u = new User();
|
||||||
|
final SmartPlug s = new SmartPlug();
|
||||||
|
s.setId(20L);
|
||||||
|
doReturn(u).when(smartPlugRepository).findUser(20L);
|
||||||
|
doNothing()
|
||||||
|
.when(smartPlugRepository)
|
||||||
|
.updateTotalConsumption(SmartPlug.AVERAGE_CONSUMPTION_KW);
|
||||||
|
when(smartPlugRepository.findByOn(true)).thenReturn(List.of(s));
|
||||||
|
doNothing().when(sensorSocketEndpoint).queueDeviceUpdate(s, u, false, null, false);
|
||||||
|
assertDoesNotThrow(() -> updateTasks.smartPlugConsumptionFakeUpdate());
|
||||||
|
}
|
||||||
|
}
|
|
@ -174,7 +174,7 @@ public class DeviceServiceTests {
|
||||||
currentDeviceService.saveAllAsOwner(devices, "user", true, false);
|
currentDeviceService.saveAllAsOwner(devices, "user", true, false);
|
||||||
assertThat(count[0]).isEqualTo(0);
|
assertThat(count[0]).isEqualTo(0);
|
||||||
|
|
||||||
currentDeviceService.saveAllAsOwner(devices, "user", false, false);
|
currentDeviceService.saveAllAsOwner(devices, "user");
|
||||||
assertThat(count[0]).isEqualTo(2);
|
assertThat(count[0]).isEqualTo(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue