|
|
|
@ -32,6 +32,7 @@ import org.springframework.test.context.ContextConfiguration; |
|
|
|
import org.thingsboard.common.util.JacksonUtil; |
|
|
|
import org.thingsboard.server.common.data.Device; |
|
|
|
import org.thingsboard.server.common.data.EntityType; |
|
|
|
import org.thingsboard.server.common.data.User; |
|
|
|
import org.thingsboard.server.common.data.alarm.Alarm; |
|
|
|
import org.thingsboard.server.common.data.alarm.AlarmInfo; |
|
|
|
import org.thingsboard.server.common.data.alarm.AlarmSeverity; |
|
|
|
@ -39,6 +40,7 @@ import org.thingsboard.server.common.data.alarm.AlarmStatus; |
|
|
|
import org.thingsboard.server.common.data.audit.ActionType; |
|
|
|
import org.thingsboard.server.common.data.id.AlarmId; |
|
|
|
import org.thingsboard.server.common.data.page.PageData; |
|
|
|
import org.thingsboard.server.common.data.security.Authority; |
|
|
|
import org.thingsboard.server.dao.alarm.AlarmDao; |
|
|
|
import org.thingsboard.server.dao.service.DaoSqlTest; |
|
|
|
|
|
|
|
@ -529,6 +531,51 @@ public class AlarmControllerTest extends AbstractControllerTest { |
|
|
|
tenantId, customerId, customerUserId, CUSTOMER_USER_EMAIL, ActionType.ALARM_UNASSIGNED); |
|
|
|
} |
|
|
|
|
|
|
|
@Test |
|
|
|
public void testUnassignAlarmOnUserRemoving() throws Exception { |
|
|
|
loginDifferentTenant(); |
|
|
|
|
|
|
|
User user = new User(); |
|
|
|
user.setAuthority(Authority.TENANT_ADMIN); |
|
|
|
user.setTenantId(tenantId); |
|
|
|
user.setEmail("tenantForAssign@thingsboard.org"); |
|
|
|
User savedUser = createUser(user, "password"); |
|
|
|
|
|
|
|
Device device = createDevice("Different tenant device", "default", "differentTenantTest"); |
|
|
|
|
|
|
|
Alarm alarm = Alarm.builder() |
|
|
|
.type(TEST_ALARM_TYPE) |
|
|
|
.tenantId(savedDifferentTenant.getId()) |
|
|
|
.originator(device.getId()) |
|
|
|
.severity(AlarmSeverity.MAJOR) |
|
|
|
.build(); |
|
|
|
alarm = doPost("/api/alarm", alarm, Alarm.class); |
|
|
|
Assert.assertNotNull(alarm); |
|
|
|
|
|
|
|
alarm = doGet("/api/alarm/info/" + alarm.getId(), AlarmInfo.class); |
|
|
|
Assert.assertNotNull(alarm); |
|
|
|
|
|
|
|
Mockito.reset(tbClusterService, auditLogService); |
|
|
|
long beforeAssignmentTs = System.currentTimeMillis(); |
|
|
|
|
|
|
|
doPost("/api/alarm/" + alarm.getId() + "/assign/" + savedUser.getId().getId()).andExpect(status().isOk()); |
|
|
|
AlarmInfo foundAlarm = doGet("/api/alarm/info/" + alarm.getId(), AlarmInfo.class); |
|
|
|
Assert.assertNotNull(foundAlarm); |
|
|
|
Assert.assertEquals(savedUser.getId(), foundAlarm.getAssigneeId()); |
|
|
|
Assert.assertTrue(foundAlarm.getAssignTs() >= beforeAssignmentTs); |
|
|
|
|
|
|
|
beforeAssignmentTs = System.currentTimeMillis(); |
|
|
|
|
|
|
|
Mockito.reset(tbClusterService, auditLogService); |
|
|
|
|
|
|
|
doDelete("/api/user/" + savedUser.getId().getId()).andExpect(status().isOk()); |
|
|
|
|
|
|
|
foundAlarm = doGet("/api/alarm/info/" + alarm.getId(), AlarmInfo.class); |
|
|
|
Assert.assertNotNull(foundAlarm); |
|
|
|
Assert.assertNull(foundAlarm.getAssigneeId()); |
|
|
|
Assert.assertTrue(foundAlarm.getAssignTs() >= beforeAssignmentTs); |
|
|
|
} |
|
|
|
|
|
|
|
@Test |
|
|
|
public void testFindAlarmsViaCustomerUser() throws Exception { |
|
|
|
loginCustomerUser(); |
|
|
|
|