Some tests on DevicePropagationService

This commit is contained in:
Claudio Maggioni (maggicl) 2020-05-20 16:39:44 +02:00
parent 5c90428fca
commit ae10998c98
2 changed files with 40 additions and 1 deletions

View file

@ -138,7 +138,7 @@ public class DevicePropagationService {
* @param username the username of the owner of that device
* @param causedByTrigger if true, send the update to the owner as well
*/
private void propagateUpdateAsOwner(Device device, String username, boolean causedByTrigger) {
void propagateUpdateAsOwner(Device device, String username, boolean causedByTrigger) {
final User user = userRepository.findByUsername(username);
final Set<User> guests = user.getGuests();
// make sure we're broadcasting from host

View file

@ -87,4 +87,43 @@ public class DevicePropagationServiceTests {
assertThat(done[0]).isEqualTo(2);
}
@Test
public void testRenameIfDuplicate() {
when(deviceRepository.findDuplicates("Device", "user")).thenReturn(2);
when(deviceRepository.findDuplicates("Device (new)", "user")).thenReturn(1);
when(deviceRepository.findDuplicates("New Device", "user")).thenReturn(1);
when(deviceRepository.findDuplicates("New Device (new)", "user")).thenReturn(0);
Device d = new RegularLight();
d.setName("Device");
d.setId(42L);
devicePropagationService.renameIfDuplicate(d, "user");
assertThat(d.getName()).isEqualTo("Device (new)");
d.setName("New Device");
d.setId(0L);
devicePropagationService.renameIfDuplicate(d, "user");
assertThat(d.getName()).isEqualTo("New Device (new)");
}
@Test
public void testSaveAllAsOwner() {
final DevicePropagationService dps = Mockito.spy(devicePropagationService);
final Device d = new RegularLight();
final List<Device> dl = List.of(d);
doNothing().when(dps).renameIfDuplicate(d, "user");
when(deviceRepository.saveAll(dl)).thenReturn(dl);
doNothing().when(dps).propagateUpdateAsOwner(d, "user", false);
doNothing().when(dps).propagateUpdateAsOwner(d, "user", true);
assertThat(dps.saveAllAsOwner(dl, "user")).containsExactly(d);
assertThat(dps.saveAllAsOwner(dl, "user", true, true)).containsExactly(d);
assertThat(dps.saveAllAsOwner(dl, "user", true, false)).containsExactly(d);
assertThat(dps.saveAllAsOwner(dl, "user", false, true)).containsExactly(d);
}
}