Fix for DeviceControllerTest
This commit is contained in:
parent
655a619d0d
commit
01acc4c486
@ -35,7 +35,7 @@ import org.junit.Rule;
|
|||||||
import org.junit.rules.TestRule;
|
import org.junit.rules.TestRule;
|
||||||
import org.junit.rules.TestWatcher;
|
import org.junit.rules.TestWatcher;
|
||||||
import org.junit.runner.Description;
|
import org.junit.runner.Description;
|
||||||
import org.mockito.BDDMockito;
|
import org.mockito.Mockito;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.http.HttpHeaders;
|
import org.springframework.http.HttpHeaders;
|
||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
@ -732,23 +732,18 @@ public abstract class AbstractWebTest extends AbstractInMemoryStorageTest {
|
|||||||
|
|
||||||
protected <T> void testEntityDaoWithRelationsTransactionalException(Dao<T> dao, EntityId entityIdFrom, EntityId entityTo,
|
protected <T> void testEntityDaoWithRelationsTransactionalException(Dao<T> dao, EntityId entityIdFrom, EntityId entityTo,
|
||||||
String urlDelete) throws Exception {
|
String urlDelete) throws Exception {
|
||||||
entityDaoRemoveByIdWithException (dao);
|
Mockito.doThrow(new ConstraintViolationException("mock message", new SQLException(), "MOCK_CONSTRAINT")).when(dao).removeById(any(), any());
|
||||||
createEntityRelation(entityIdFrom, entityTo, "TEST_TRANSACTIONAL_TYPE");
|
try {
|
||||||
assertThat(findRelationsByTo(entityTo)).hasSize(1);
|
createEntityRelation(entityIdFrom, entityTo, "TEST_TRANSACTIONAL_TYPE");
|
||||||
|
assertThat(findRelationsByTo(entityTo)).hasSize(1);
|
||||||
|
|
||||||
doDelete(urlDelete)
|
doDelete(urlDelete)
|
||||||
.andExpect(status().isInternalServerError());
|
.andExpect(status().isInternalServerError());
|
||||||
|
|
||||||
assertThat(findRelationsByTo(entityTo)).hasSize(1);
|
assertThat(findRelationsByTo(entityTo)).hasSize(1);
|
||||||
}
|
} finally {
|
||||||
|
Mockito.reset(dao);
|
||||||
protected <T> void entityDaoRemoveByIdWithException (Dao<T> dao) throws Exception {
|
}
|
||||||
BDDMockito.willThrow(new ConstraintViolationException("mock message", new SQLException(), "MOCK_CONSTRAINT"))
|
|
||||||
.given(dao).removeById(any(), any());
|
|
||||||
}
|
|
||||||
|
|
||||||
protected <T> void afterTestEntityDaoRemoveByIdWithException (Dao<T> dao) throws Exception {
|
|
||||||
BDDMockito.willCallRealMethod().given(dao).removeById(any(), any());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void createEntityRelation(EntityId entityIdFrom, EntityId entityIdTo, String typeRelation) throws Exception {
|
protected void createEntityRelation(EntityId entityIdFrom, EntityId entityIdTo, String typeRelation) throws Exception {
|
||||||
@ -761,8 +756,11 @@ public abstract class AbstractWebTest extends AbstractInMemoryStorageTest {
|
|||||||
MvcResult mvcResult = doGet(url).andReturn();
|
MvcResult mvcResult = doGet(url).andReturn();
|
||||||
|
|
||||||
switch (mvcResult.getResponse().getStatus()) {
|
switch (mvcResult.getResponse().getStatus()) {
|
||||||
case 200: return readResponse(mvcResult, new TypeReference<>() {});
|
case 200:
|
||||||
case 404: return Collections.emptyList();
|
return readResponse(mvcResult, new TypeReference<>() {
|
||||||
|
});
|
||||||
|
case 404:
|
||||||
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
throw new AssertionError("Unexpected status " + mvcResult.getResponse().getStatus());
|
throw new AssertionError("Unexpected status " + mvcResult.getResponse().getStatus());
|
||||||
}
|
}
|
||||||
|
|||||||
@ -72,8 +72,6 @@ public abstract class BaseAlarmControllerTest extends AbstractControllerTest {
|
|||||||
public void teardown() throws Exception {
|
public void teardown() throws Exception {
|
||||||
loginSysAdmin();
|
loginSysAdmin();
|
||||||
|
|
||||||
afterTestEntityDaoRemoveByIdWithException (alarmDao);
|
|
||||||
|
|
||||||
deleteDifferentTenant();
|
deleteDifferentTenant();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -84,8 +84,6 @@ public abstract class BaseAssetControllerTest extends AbstractControllerTest {
|
|||||||
public void afterTest() throws Exception {
|
public void afterTest() throws Exception {
|
||||||
loginSysAdmin();
|
loginSysAdmin();
|
||||||
|
|
||||||
afterTestEntityDaoRemoveByIdWithException (assetDao);
|
|
||||||
|
|
||||||
doDelete("/api/tenant/" + savedTenant.getId().getId().toString())
|
doDelete("/api/tenant/" + savedTenant.getId().getId().toString())
|
||||||
.andExpect(status().isOk());
|
.andExpect(status().isOk());
|
||||||
}
|
}
|
||||||
|
|||||||
@ -81,8 +81,6 @@ public abstract class BaseAssetProfileControllerTest extends AbstractControllerT
|
|||||||
public void afterTest() throws Exception {
|
public void afterTest() throws Exception {
|
||||||
loginSysAdmin();
|
loginSysAdmin();
|
||||||
|
|
||||||
afterTestEntityDaoRemoveByIdWithException (assetProfileDao);
|
|
||||||
|
|
||||||
doDelete("/api/tenant/" + savedTenant.getId().getId().toString())
|
doDelete("/api/tenant/" + savedTenant.getId().getId().toString())
|
||||||
.andExpect(status().isOk());
|
.andExpect(status().isOk());
|
||||||
}
|
}
|
||||||
|
|||||||
@ -87,8 +87,6 @@ public abstract class BaseCustomerControllerTest extends AbstractControllerTest
|
|||||||
|
|
||||||
loginSysAdmin();
|
loginSysAdmin();
|
||||||
|
|
||||||
afterTestEntityDaoRemoveByIdWithException (customerDao);
|
|
||||||
|
|
||||||
doDelete("/api/tenant/" + savedTenant.getId().getId().toString())
|
doDelete("/api/tenant/" + savedTenant.getId().getId().toString())
|
||||||
.andExpect(status().isOk());
|
.andExpect(status().isOk());
|
||||||
}
|
}
|
||||||
|
|||||||
@ -79,8 +79,6 @@ public abstract class BaseDashboardControllerTest extends AbstractControllerTest
|
|||||||
public void afterTest() throws Exception {
|
public void afterTest() throws Exception {
|
||||||
loginSysAdmin();
|
loginSysAdmin();
|
||||||
|
|
||||||
afterTestEntityDaoRemoveByIdWithException (dashboardDao);
|
|
||||||
|
|
||||||
doDelete("/api/tenant/" + savedTenant.getId().getId().toString())
|
doDelete("/api/tenant/" + savedTenant.getId().getId().toString())
|
||||||
.andExpect(status().isOk());
|
.andExpect(status().isOk());
|
||||||
}
|
}
|
||||||
|
|||||||
@ -25,8 +25,14 @@ import org.junit.After;
|
|||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
import org.mockito.AdditionalAnswers;
|
||||||
import org.mockito.Mockito;
|
import org.mockito.Mockito;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.boot.test.mock.mockito.MockBean;
|
||||||
import org.springframework.boot.test.mock.mockito.SpyBean;
|
import org.springframework.boot.test.mock.mockito.SpyBean;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Primary;
|
||||||
|
import org.springframework.test.context.ContextConfiguration;
|
||||||
import org.thingsboard.common.util.ThingsBoardExecutors;
|
import org.thingsboard.common.util.ThingsBoardExecutors;
|
||||||
import org.thingsboard.server.common.data.Customer;
|
import org.thingsboard.server.common.data.Customer;
|
||||||
import org.thingsboard.server.common.data.Device;
|
import org.thingsboard.server.common.data.Device;
|
||||||
@ -69,8 +75,10 @@ import static org.thingsboard.server.common.data.ota.OtaPackageType.FIRMWARE;
|
|||||||
import static org.thingsboard.server.common.data.ota.OtaPackageType.SOFTWARE;
|
import static org.thingsboard.server.common.data.ota.OtaPackageType.SOFTWARE;
|
||||||
import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID;
|
import static org.thingsboard.server.dao.model.ModelConstants.NULL_UUID;
|
||||||
|
|
||||||
|
@ContextConfiguration(classes = {BaseDeviceControllerTest.Config.class})
|
||||||
public abstract class BaseDeviceControllerTest extends AbstractControllerTest {
|
public abstract class BaseDeviceControllerTest extends AbstractControllerTest {
|
||||||
static final TypeReference<PageData<Device>> PAGE_DATA_DEVICE_TYPE_REF = new TypeReference<>() {};
|
static final TypeReference<PageData<Device>> PAGE_DATA_DEVICE_TYPE_REF = new TypeReference<>() {
|
||||||
|
};
|
||||||
|
|
||||||
ListeningExecutorService executor;
|
ListeningExecutorService executor;
|
||||||
|
|
||||||
@ -83,9 +91,16 @@ public abstract class BaseDeviceControllerTest extends AbstractControllerTest {
|
|||||||
@SpyBean
|
@SpyBean
|
||||||
private GatewayNotificationsService gatewayNotificationsService;
|
private GatewayNotificationsService gatewayNotificationsService;
|
||||||
|
|
||||||
@SpyBean
|
@Autowired
|
||||||
private DeviceDao deviceDao;
|
private DeviceDao deviceDao;
|
||||||
|
|
||||||
|
static class Config {
|
||||||
|
@Bean
|
||||||
|
@Primary
|
||||||
|
public DeviceDao deviceDao(DeviceDao deviceDao) {
|
||||||
|
return Mockito.mock(DeviceDao.class, AdditionalAnswers.delegatesTo(deviceDao));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void beforeTest() throws Exception {
|
public void beforeTest() throws Exception {
|
||||||
@ -114,8 +129,6 @@ public abstract class BaseDeviceControllerTest extends AbstractControllerTest {
|
|||||||
|
|
||||||
loginSysAdmin();
|
loginSysAdmin();
|
||||||
|
|
||||||
afterTestEntityDaoRemoveByIdWithException (deviceDao);
|
|
||||||
|
|
||||||
doDelete("/api/tenant/" + savedTenant.getId().getId())
|
doDelete("/api/tenant/" + savedTenant.getId().getId())
|
||||||
.andExpect(status().isOk());
|
.andExpect(status().isOk());
|
||||||
}
|
}
|
||||||
@ -464,9 +477,9 @@ public abstract class BaseDeviceControllerTest extends AbstractControllerTest {
|
|||||||
|
|
||||||
String customerIdStr = savedDevice.getId().toString();
|
String customerIdStr = savedDevice.getId().toString();
|
||||||
doPost("/api/customer/" + customerIdStr
|
doPost("/api/customer/" + customerIdStr
|
||||||
+ "/device/" + savedDevice.getId().getId())
|
+ "/device/" + savedDevice.getId().getId())
|
||||||
.andExpect(status().isNotFound())
|
.andExpect(status().isNotFound())
|
||||||
.andExpect(statusReason(containsString(msgErrorNoFound("Customer", customerIdStr))));
|
.andExpect(statusReason(containsString(msgErrorNoFound("Customer", customerIdStr))));
|
||||||
|
|
||||||
testNotifyEntityNever(savedDevice.getId(), savedDevice);
|
testNotifyEntityNever(savedDevice.getId(), savedDevice);
|
||||||
testNotificationUpdateGatewayNever();
|
testNotificationUpdateGatewayNever();
|
||||||
@ -657,7 +670,7 @@ public abstract class BaseDeviceControllerTest extends AbstractControllerTest {
|
|||||||
|
|
||||||
doPost("/api/device/credentials", deviceCredentials)
|
doPost("/api/device/credentials", deviceCredentials)
|
||||||
.andExpect(status().isNotFound())
|
.andExpect(status().isNotFound())
|
||||||
.andExpect(statusReason(containsString(msgErrorNoFound("Device", deviceTimeBasedId.toString()))));
|
.andExpect(statusReason(containsString(msgErrorNoFound("Device", deviceTimeBasedId.toString()))));
|
||||||
|
|
||||||
testNotifyEntityNever(savedDevice.getId(), savedDevice);
|
testNotifyEntityNever(savedDevice.getId(), savedDevice);
|
||||||
testNotificationUpdateGatewayNever();
|
testNotificationUpdateGatewayNever();
|
||||||
@ -1168,7 +1181,7 @@ public abstract class BaseDeviceControllerTest extends AbstractControllerTest {
|
|||||||
doPost("/api/edge/" + savedEdge.getId().getId()
|
doPost("/api/edge/" + savedEdge.getId().getId()
|
||||||
+ "/device/" + savedDevice.getId().getId(), Device.class);
|
+ "/device/" + savedDevice.getId().getId(), Device.class);
|
||||||
|
|
||||||
testNotifyEntityAllOneTime(savedDevice, savedDevice.getId(), savedDevice.getId(),
|
testNotifyEntityAllOneTime(savedDevice, savedDevice.getId(), savedDevice.getId(),
|
||||||
savedTenant.getId(), tenantAdmin.getCustomerId(), tenantAdmin.getId(), tenantAdmin.getEmail(),
|
savedTenant.getId(), tenantAdmin.getCustomerId(), tenantAdmin.getId(), tenantAdmin.getEmail(),
|
||||||
ActionType.ASSIGNED_TO_EDGE,
|
ActionType.ASSIGNED_TO_EDGE,
|
||||||
savedDevice.getId().getId().toString(), savedEdge.getId().getId().toString(), savedEdge.getName());
|
savedDevice.getId().getId().toString(), savedEdge.getId().getId().toString(), savedEdge.getName());
|
||||||
|
|||||||
@ -103,8 +103,6 @@ public abstract class BaseDeviceProfileControllerTest extends AbstractController
|
|||||||
public void afterTest() throws Exception {
|
public void afterTest() throws Exception {
|
||||||
loginSysAdmin();
|
loginSysAdmin();
|
||||||
|
|
||||||
afterTestEntityDaoRemoveByIdWithException (deviceProfileDao);
|
|
||||||
|
|
||||||
doDelete("/api/tenant/" + savedTenant.getId().getId().toString())
|
doDelete("/api/tenant/" + savedTenant.getId().getId().toString())
|
||||||
.andExpect(status().isOk());
|
.andExpect(status().isOk());
|
||||||
}
|
}
|
||||||
|
|||||||
@ -103,8 +103,6 @@ public abstract class BaseEdgeControllerTest extends AbstractControllerTest {
|
|||||||
public void afterTest() throws Exception {
|
public void afterTest() throws Exception {
|
||||||
loginSysAdmin();
|
loginSysAdmin();
|
||||||
|
|
||||||
afterTestEntityDaoRemoveByIdWithException (edgeDao);
|
|
||||||
|
|
||||||
doDelete("/api/tenant/" + savedTenant.getId().getId().toString())
|
doDelete("/api/tenant/" + savedTenant.getId().getId().toString())
|
||||||
.andExpect(status().isOk());
|
.andExpect(status().isOk());
|
||||||
}
|
}
|
||||||
|
|||||||
@ -120,9 +120,6 @@ public abstract class BaseEntityViewControllerTest extends AbstractControllerTes
|
|||||||
|
|
||||||
@After
|
@After
|
||||||
public void afterTest() throws Exception {
|
public void afterTest() throws Exception {
|
||||||
|
|
||||||
afterTestEntityDaoRemoveByIdWithException (entityViewDao);
|
|
||||||
|
|
||||||
executor.shutdownNow();
|
executor.shutdownNow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -76,8 +76,6 @@ public abstract class BaseRuleChainControllerTest extends AbstractControllerTest
|
|||||||
public void afterTest() throws Exception {
|
public void afterTest() throws Exception {
|
||||||
loginSysAdmin();
|
loginSysAdmin();
|
||||||
|
|
||||||
afterTestEntityDaoRemoveByIdWithException(ruleChainDao);
|
|
||||||
|
|
||||||
doDelete("/api/tenant/" + savedTenant.getId().getId().toString())
|
doDelete("/api/tenant/" + savedTenant.getId().getId().toString())
|
||||||
.andExpect(status().isOk());
|
.andExpect(status().isOk());
|
||||||
}
|
}
|
||||||
|
|||||||
@ -63,8 +63,6 @@ public abstract class BaseUserControllerTest extends AbstractControllerTest {
|
|||||||
@After
|
@After
|
||||||
public void afterTest() throws Exception {
|
public void afterTest() throws Exception {
|
||||||
loginSysAdmin();
|
loginSysAdmin();
|
||||||
|
|
||||||
afterTestEntityDaoRemoveByIdWithException(userDao);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user