Merge pull request #6863 from thingsboard/refactoring_tests_11
[3.4] refactoring: tests Edge
This commit is contained in:
commit
4a1fc9a14a
@ -183,6 +183,21 @@ public abstract class AbstractNotifyEntityTest extends AbstractWebTest {
|
|||||||
Mockito.reset(tbClusterService, auditLogService);
|
Mockito.reset(tbClusterService, auditLogService);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void testNotifyEntityBroadcastEntityStateChangeEventManyMsgToEdgeServiceNever(HasName entity, HasName originator,
|
||||||
|
TenantId tenantId, CustomerId customerId, UserId userId, String userName,
|
||||||
|
ActionType actionType, int cntTime, int cntAdditionalInfo) {
|
||||||
|
EntityId entityId = createEntityId_NULL_UUID(entity);
|
||||||
|
EntityId originatorId = createEntityId_NULL_UUID(originator);
|
||||||
|
testNotificationMsgToEdgeServiceNever(entityId);
|
||||||
|
ArgumentMatcher<HasName> matcherEntityClassEquals = argument -> argument.getClass().equals(entity.getClass());
|
||||||
|
ArgumentMatcher<EntityId> matcherOriginatorId = argument -> argument.getClass().equals(originatorId.getClass());
|
||||||
|
testLogEntityActionAdditionalInfoAny(matcherEntityClassEquals, matcherOriginatorId, tenantId, customerId, userId, userName, actionType, cntTime,
|
||||||
|
cntAdditionalInfo);
|
||||||
|
testPushMsgToRuleEngineTime(matcherOriginatorId, tenantId, cntTime);
|
||||||
|
testBroadcastEntityStateChangeEventTime(entityId, tenantId, cntTime);
|
||||||
|
Mockito.reset(tbClusterService, auditLogService);
|
||||||
|
}
|
||||||
|
|
||||||
protected void testNotifyEntityMsgToEdgePushMsgToCoreOneTime(HasName entity, EntityId entityId, EntityId originatorId,
|
protected void testNotifyEntityMsgToEdgePushMsgToCoreOneTime(HasName entity, EntityId entityId, EntityId originatorId,
|
||||||
TenantId tenantId, CustomerId customerId, UserId userId, String userName,
|
TenantId tenantId, CustomerId customerId, UserId userId, String userName,
|
||||||
ActionType actionType, Object... additionalInfo) {
|
ActionType actionType, Object... additionalInfo) {
|
||||||
@ -377,7 +392,7 @@ public abstract class AbstractNotifyEntityTest extends AbstractWebTest {
|
|||||||
Mockito.argThat(matcherEntity),
|
Mockito.argThat(matcherEntity),
|
||||||
Mockito.eq(actionType),
|
Mockito.eq(actionType),
|
||||||
Mockito.isNull(),
|
Mockito.isNull(),
|
||||||
Mockito.anyString());
|
Mockito.any());
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
Mockito.verify(auditLogService, times(cntTime))
|
Mockito.verify(auditLogService, times(cntTime))
|
||||||
@ -389,8 +404,8 @@ public abstract class AbstractNotifyEntityTest extends AbstractWebTest {
|
|||||||
Mockito.argThat(matcherEntity),
|
Mockito.argThat(matcherEntity),
|
||||||
Mockito.eq(actionType),
|
Mockito.eq(actionType),
|
||||||
Mockito.isNull(),
|
Mockito.isNull(),
|
||||||
Mockito.anyString(),
|
Mockito.any(),
|
||||||
Mockito.anyString());
|
Mockito.any());
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
Mockito.verify(auditLogService, times(cntTime))
|
Mockito.verify(auditLogService, times(cntTime))
|
||||||
@ -402,9 +417,9 @@ public abstract class AbstractNotifyEntityTest extends AbstractWebTest {
|
|||||||
Mockito.argThat(matcherEntity),
|
Mockito.argThat(matcherEntity),
|
||||||
Mockito.eq(actionType),
|
Mockito.eq(actionType),
|
||||||
Mockito.isNull(),
|
Mockito.isNull(),
|
||||||
Mockito.anyString(),
|
Mockito.any(),
|
||||||
Mockito.anyString(),
|
Mockito.any(),
|
||||||
Mockito.anyString());
|
Mockito.any());
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
Mockito.verify(auditLogService, times(cntTime))
|
Mockito.verify(auditLogService, times(cntTime))
|
||||||
|
|||||||
@ -414,11 +414,10 @@ public abstract class BaseAssetControllerTest extends AbstractControllerTest {
|
|||||||
|
|
||||||
Mockito.reset(tbClusterService, auditLogService);
|
Mockito.reset(tbClusterService, auditLogService);
|
||||||
|
|
||||||
String msgError = "You don't have permission to perform this operation!";
|
|
||||||
doPost("/api/customer/" + savedCustomer.getId().getId().toString()
|
doPost("/api/customer/" + savedCustomer.getId().getId().toString()
|
||||||
+ "/asset/" + savedAsset.getId().getId().toString())
|
+ "/asset/" + savedAsset.getId().getId().toString())
|
||||||
.andExpect(status().isForbidden())
|
.andExpect(status().isForbidden())
|
||||||
.andExpect(statusReason(containsString(msgError)));
|
.andExpect(statusReason(containsString(msgErrorPermission)));
|
||||||
|
|
||||||
testNotifyEntityNever(savedAsset.getId(), savedAsset);
|
testNotifyEntityNever(savedAsset.getId(), savedAsset);
|
||||||
|
|
||||||
|
|||||||
@ -207,7 +207,7 @@ public abstract class BaseDashboardControllerTest extends AbstractControllerTest
|
|||||||
|
|
||||||
testNotifyEntityAllOneTimeLogEntityActionEntityEqClass(assignedDashboard, assignedDashboard.getId(), assignedDashboard.getId(),
|
testNotifyEntityAllOneTimeLogEntityActionEntityEqClass(assignedDashboard, assignedDashboard.getId(), assignedDashboard.getId(),
|
||||||
savedTenant.getId(), savedCustomer.getId(), tenantAdmin.getId(), tenantAdmin.getEmail(), ActionType.ASSIGNED_TO_CUSTOMER,
|
savedTenant.getId(), savedCustomer.getId(), tenantAdmin.getId(), tenantAdmin.getEmail(), ActionType.ASSIGNED_TO_CUSTOMER,
|
||||||
savedDashboard.getId().getId().toString(), savedCustomer.getId().getId().toString(), savedCustomer.getTitle());
|
assignedDashboard .getId().getId().toString(), savedCustomer.getId().getId().toString(), savedCustomer.getTitle());
|
||||||
|
|
||||||
Dashboard foundDashboard = doGet("/api/dashboard/" + savedDashboard.getId().getId().toString(), Dashboard.class);
|
Dashboard foundDashboard = doGet("/api/dashboard/" + savedDashboard.getId().getId().toString(), Dashboard.class);
|
||||||
Assert.assertTrue(foundDashboard.getAssignedCustomers().contains(savedCustomer.toShortCustomerInfo()));
|
Assert.assertTrue(foundDashboard.getAssignedCustomers().contains(savedCustomer.toShortCustomerInfo()));
|
||||||
@ -219,7 +219,7 @@ public abstract class BaseDashboardControllerTest extends AbstractControllerTest
|
|||||||
|
|
||||||
testNotifyEntityAllOneTimeLogEntityActionEntityEqClass(assignedDashboard, assignedDashboard.getId(), assignedDashboard.getId(),
|
testNotifyEntityAllOneTimeLogEntityActionEntityEqClass(assignedDashboard, assignedDashboard.getId(), assignedDashboard.getId(),
|
||||||
savedTenant.getId(), savedCustomer.getId(), tenantAdmin.getId(), tenantAdmin.getEmail(), ActionType.UNASSIGNED_FROM_CUSTOMER,
|
savedTenant.getId(), savedCustomer.getId(), tenantAdmin.getId(), tenantAdmin.getEmail(), ActionType.UNASSIGNED_FROM_CUSTOMER,
|
||||||
savedDashboard.getId().getId().toString(), savedCustomer.getId().getId().toString(), savedCustomer.getTitle());
|
unassignedDashboard.getId().getId().toString(), savedCustomer.getId().getId().toString(), savedCustomer.getTitle());
|
||||||
|
|
||||||
Assert.assertTrue(unassignedDashboard.getAssignedCustomers() == null || unassignedDashboard.getAssignedCustomers().isEmpty());
|
Assert.assertTrue(unassignedDashboard.getAssignedCustomers() == null || unassignedDashboard.getAssignedCustomers().isEmpty());
|
||||||
|
|
||||||
|
|||||||
@ -201,14 +201,16 @@ public abstract class BaseDeviceControllerTest extends AbstractControllerTest {
|
|||||||
|
|
||||||
Mockito.reset(tbClusterService, auditLogService, gatewayNotificationsService);
|
Mockito.reset(tbClusterService, auditLogService, gatewayNotificationsService);
|
||||||
|
|
||||||
doPost("/api/device", savedDevice, Device.class, status().isNotFound());
|
String savedDeviceIdStr = savedDevice.getId().getId().toString();
|
||||||
|
doPost("/api/device", savedDevice)
|
||||||
|
.andExpect( status().isNotFound())
|
||||||
|
.andExpect(statusReason(containsString(msgErrorNoFound("Device", savedDeviceIdStr))));
|
||||||
|
|
||||||
testNotifyEntityNever(savedDevice.getId(), savedDevice);
|
testNotifyEntityNever(savedDevice.getId(), savedDevice);
|
||||||
testNotificationUpdateGatewayNever();
|
testNotificationUpdateGatewayNever();
|
||||||
|
|
||||||
Mockito.reset(tbClusterService, auditLogService, gatewayNotificationsService);
|
Mockito.reset(tbClusterService, auditLogService, gatewayNotificationsService);
|
||||||
|
|
||||||
String savedDeviceIdStr = savedDevice.getId().getId().toString();
|
|
||||||
doDelete("/api/device/" + savedDeviceIdStr)
|
doDelete("/api/device/" + savedDeviceIdStr)
|
||||||
.andExpect(status().isNotFound())
|
.andExpect(status().isNotFound())
|
||||||
.andExpect(statusReason(containsString(msgErrorNoFound("Device", savedDeviceIdStr))));
|
.andExpect(statusReason(containsString(msgErrorNoFound("Device", savedDeviceIdStr))));
|
||||||
|
|||||||
@ -18,11 +18,11 @@ package org.thingsboard.server.controller;
|
|||||||
import com.datastax.oss.driver.api.core.uuid.Uuids;
|
import com.datastax.oss.driver.api.core.uuid.Uuids;
|
||||||
import com.fasterxml.jackson.core.type.TypeReference;
|
import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
import org.apache.commons.lang3.RandomStringUtils;
|
import org.apache.commons.lang3.RandomStringUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
import org.junit.After;
|
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.Mockito;
|
||||||
import org.springframework.test.context.TestPropertySource;
|
import org.springframework.test.context.TestPropertySource;
|
||||||
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;
|
||||||
@ -30,12 +30,14 @@ import org.thingsboard.server.common.data.EntitySubtype;
|
|||||||
import org.thingsboard.server.common.data.Tenant;
|
import org.thingsboard.server.common.data.Tenant;
|
||||||
import org.thingsboard.server.common.data.User;
|
import org.thingsboard.server.common.data.User;
|
||||||
import org.thingsboard.server.common.data.asset.Asset;
|
import org.thingsboard.server.common.data.asset.Asset;
|
||||||
|
import org.thingsboard.server.common.data.audit.ActionType;
|
||||||
import org.thingsboard.server.common.data.edge.Edge;
|
import org.thingsboard.server.common.data.edge.Edge;
|
||||||
import org.thingsboard.server.common.data.id.CustomerId;
|
import org.thingsboard.server.common.data.id.CustomerId;
|
||||||
import org.thingsboard.server.common.data.id.TenantId;
|
import org.thingsboard.server.common.data.id.TenantId;
|
||||||
import org.thingsboard.server.common.data.page.PageData;
|
import org.thingsboard.server.common.data.page.PageData;
|
||||||
import org.thingsboard.server.common.data.page.PageLink;
|
import org.thingsboard.server.common.data.page.PageLink;
|
||||||
import org.thingsboard.server.common.data.security.Authority;
|
import org.thingsboard.server.common.data.security.Authority;
|
||||||
|
import org.thingsboard.server.dao.exception.DataValidationException;
|
||||||
import org.thingsboard.server.dao.model.ModelConstants;
|
import org.thingsboard.server.dao.model.ModelConstants;
|
||||||
import org.thingsboard.server.edge.imitator.EdgeImitator;
|
import org.thingsboard.server.edge.imitator.EdgeImitator;
|
||||||
import org.thingsboard.server.gen.edge.v1.AdminSettingsUpdateMsg;
|
import org.thingsboard.server.gen.edge.v1.AdminSettingsUpdateMsg;
|
||||||
@ -100,6 +102,9 @@ public abstract class BaseEdgeControllerTest extends AbstractControllerTest {
|
|||||||
@Test
|
@Test
|
||||||
public void testSaveEdge() throws Exception {
|
public void testSaveEdge() throws Exception {
|
||||||
Edge edge = constructEdge("My edge", "default");
|
Edge edge = constructEdge("My edge", "default");
|
||||||
|
|
||||||
|
Mockito.reset(tbClusterService, auditLogService);
|
||||||
|
|
||||||
Edge savedEdge = doPost("/api/edge", edge, Edge.class);
|
Edge savedEdge = doPost("/api/edge", edge, Edge.class);
|
||||||
|
|
||||||
Assert.assertNotNull(savedEdge);
|
Assert.assertNotNull(savedEdge);
|
||||||
@ -110,23 +115,56 @@ public abstract class BaseEdgeControllerTest extends AbstractControllerTest {
|
|||||||
Assert.assertEquals(NULL_UUID, savedEdge.getCustomerId().getId());
|
Assert.assertEquals(NULL_UUID, savedEdge.getCustomerId().getId());
|
||||||
Assert.assertEquals(edge.getName(), savedEdge.getName());
|
Assert.assertEquals(edge.getName(), savedEdge.getName());
|
||||||
|
|
||||||
|
testNotifyEntityBroadcastEntityStateChangeEventOneTimeMsgToEdgeServiceNever(savedEdge, savedEdge.getId(), savedEdge.getId(),
|
||||||
|
savedTenant.getId(), tenantAdmin.getCustomerId(), tenantAdmin.getId(), tenantAdmin.getEmail(),
|
||||||
|
ActionType.ADDED);
|
||||||
|
|
||||||
savedEdge.setName("My new edge");
|
savedEdge.setName("My new edge");
|
||||||
doPost("/api/edge", savedEdge, Edge.class);
|
doPost("/api/edge", savedEdge, Edge.class);
|
||||||
|
|
||||||
Edge foundEdge = doGet("/api/edge/" + savedEdge.getId().getId().toString(), Edge.class);
|
Edge foundEdge = doGet("/api/edge/" + savedEdge.getId().getId().toString(), Edge.class);
|
||||||
Assert.assertEquals(foundEdge.getName(), savedEdge.getName());
|
Assert.assertEquals(foundEdge.getName(), savedEdge.getName());
|
||||||
|
|
||||||
|
testNotifyEntityBroadcastEntityStateChangeEventOneTimeMsgToEdgeServiceNever(foundEdge, foundEdge.getId(), foundEdge.getId(),
|
||||||
|
savedTenant.getId(), tenantAdmin.getCustomerId(), tenantAdmin.getId(), tenantAdmin.getEmail(),
|
||||||
|
ActionType.UPDATED);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSaveEdgeWithViolationOfLengthValidation() throws Exception {
|
public void testSaveEdgeWithViolationOfLengthValidation() throws Exception {
|
||||||
Edge edge = constructEdge(RandomStringUtils.randomAlphabetic(300), "default");
|
Edge edge = constructEdge(RandomStringUtils.randomAlphabetic(300), "default");
|
||||||
doPost("/api/edge", edge).andExpect(statusReason(containsString("length of name must be equal or less than 255")));
|
String msgError = msgErrorFieldLength("name");
|
||||||
|
|
||||||
|
Mockito.reset(tbClusterService, auditLogService);
|
||||||
|
|
||||||
|
doPost("/api/edge", edge)
|
||||||
|
.andExpect(status().isBadRequest())
|
||||||
|
.andExpect(statusReason(containsString(msgError)));
|
||||||
|
|
||||||
|
testNotifyEntityEqualsOneTimeServiceNeverError(edge, savedTenant.getId(),
|
||||||
|
tenantAdmin.getId(), tenantAdmin.getEmail(), ActionType.ADDED, new DataValidationException(msgError));
|
||||||
|
Mockito.reset(tbClusterService, auditLogService);
|
||||||
|
|
||||||
|
msgError = msgErrorFieldLength("type");
|
||||||
edge.setName("normal name");
|
edge.setName("normal name");
|
||||||
edge.setType(RandomStringUtils.randomAlphabetic(300));
|
edge.setType(RandomStringUtils.randomAlphabetic(300));
|
||||||
doPost("/api/edge", edge).andExpect(statusReason(containsString("length of type must be equal or less than 255")));
|
doPost("/api/edge", edge)
|
||||||
|
.andExpect(status().isBadRequest())
|
||||||
|
.andExpect(statusReason(containsString(msgError)));
|
||||||
|
|
||||||
|
testNotifyEntityEqualsOneTimeServiceNeverError(edge, savedTenant.getId(),
|
||||||
|
tenantAdmin.getId(), tenantAdmin.getEmail(), ActionType.ADDED, new DataValidationException(msgError));
|
||||||
|
Mockito.reset(tbClusterService, auditLogService);
|
||||||
|
|
||||||
|
msgError = msgErrorFieldLength("label");
|
||||||
edge.setType("normal type");
|
edge.setType("normal type");
|
||||||
edge.setLabel(RandomStringUtils.randomAlphabetic(300));
|
edge.setLabel(RandomStringUtils.randomAlphabetic(300));
|
||||||
doPost("/api/edge", edge).andExpect(statusReason(containsString("length of label must be equal or less than 255")));
|
doPost("/api/edge", edge)
|
||||||
|
.andExpect(status().isBadRequest())
|
||||||
|
.andExpect(statusReason(containsString(msgError)));
|
||||||
|
|
||||||
|
testNotifyEntityEqualsOneTimeServiceNeverError(edge, savedTenant.getId(),
|
||||||
|
tenantAdmin.getId(), tenantAdmin.getEmail(), ActionType.ADDED, new DataValidationException(msgError));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -141,10 +179,20 @@ public abstract class BaseEdgeControllerTest extends AbstractControllerTest {
|
|||||||
@Test
|
@Test
|
||||||
public void testFindEdgeTypesByTenantId() throws Exception {
|
public void testFindEdgeTypesByTenantId() throws Exception {
|
||||||
List<Edge> edges = new ArrayList<>();
|
List<Edge> edges = new ArrayList<>();
|
||||||
for (int i = 0; i < 3; i++) {
|
|
||||||
|
int cntEntity = 3;
|
||||||
|
|
||||||
|
Mockito.reset(tbClusterService, auditLogService);
|
||||||
|
|
||||||
|
for (int i = 0; i < cntEntity; i++) {
|
||||||
Edge edge = constructEdge("My edge B" + i, "typeB");
|
Edge edge = constructEdge("My edge B" + i, "typeB");
|
||||||
edges.add(doPost("/api/edge", edge, Edge.class));
|
edges.add(doPost("/api/edge", edge, Edge.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
testNotifyManyEntityManyTimeMsgToEdgeServiceNeverAdditionalInfoAny(new Edge(), new Edge(),
|
||||||
|
savedTenant.getId(), tenantAdmin.getCustomerId(), tenantAdmin.getId(), tenantAdmin.getEmail(),
|
||||||
|
ActionType.ADDED, cntEntity, 0);
|
||||||
|
|
||||||
for (int i = 0; i < 7; i++) {
|
for (int i = 0; i < 7; i++) {
|
||||||
Edge edge = constructEdge("My edge C" + i, "typeC");
|
Edge edge = constructEdge("My edge C" + i, "typeC");
|
||||||
edges.add(doPost("/api/edge", edge, Edge.class));
|
edges.add(doPost("/api/edge", edge, Edge.class));
|
||||||
@ -154,7 +202,7 @@ public abstract class BaseEdgeControllerTest extends AbstractControllerTest {
|
|||||||
edges.add(doPost("/api/edge", edge, Edge.class));
|
edges.add(doPost("/api/edge", edge, Edge.class));
|
||||||
}
|
}
|
||||||
List<EntitySubtype> edgeTypes = doGetTyped("/api/edge/types",
|
List<EntitySubtype> edgeTypes = doGetTyped("/api/edge/types",
|
||||||
new TypeReference<List<EntitySubtype>>() {
|
new TypeReference<>() {
|
||||||
});
|
});
|
||||||
|
|
||||||
Assert.assertNotNull(edgeTypes);
|
Assert.assertNotNull(edgeTypes);
|
||||||
@ -169,27 +217,48 @@ public abstract class BaseEdgeControllerTest extends AbstractControllerTest {
|
|||||||
Edge edge = constructEdge("My edge", "default");
|
Edge edge = constructEdge("My edge", "default");
|
||||||
Edge savedEdge = doPost("/api/edge", edge, Edge.class);
|
Edge savedEdge = doPost("/api/edge", edge, Edge.class);
|
||||||
|
|
||||||
|
Mockito.reset(tbClusterService, auditLogService);
|
||||||
|
|
||||||
doDelete("/api/edge/" + savedEdge.getId().getId().toString())
|
doDelete("/api/edge/" + savedEdge.getId().getId().toString())
|
||||||
.andExpect(status().isOk());
|
.andExpect(status().isOk());
|
||||||
|
|
||||||
|
testNotifyEntityBroadcastEntityStateChangeEventOneTimeMsgToEdgeServiceNever(savedEdge, savedEdge.getId(), savedEdge.getId(),
|
||||||
|
savedTenant.getId(), tenantAdmin.getCustomerId(), tenantAdmin.getId(), tenantAdmin.getEmail(),
|
||||||
|
ActionType.DELETED, savedEdge.getId().getId().toString());
|
||||||
|
|
||||||
doGet("/api/edge/" + savedEdge.getId().getId().toString())
|
doGet("/api/edge/" + savedEdge.getId().getId().toString())
|
||||||
.andExpect(status().isNotFound());
|
.andExpect(status().isNotFound())
|
||||||
|
.andExpect(statusReason(containsString(msgErrorNoFound("Edge", savedEdge.getId().getId().toString()))));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSaveEdgeWithEmptyType() throws Exception {
|
public void testSaveEdgeWithEmptyType() throws Exception {
|
||||||
Edge edge = constructEdge("My edge", null);
|
Edge edge = constructEdge("My edge", null);
|
||||||
|
|
||||||
|
Mockito.reset(tbClusterService, auditLogService);
|
||||||
|
|
||||||
|
String msgError = "Edge type " + msgErrorShouldBeSpecified;
|
||||||
doPost("/api/edge", edge)
|
doPost("/api/edge", edge)
|
||||||
.andExpect(status().isBadRequest())
|
.andExpect(status().isBadRequest())
|
||||||
.andExpect(statusReason(containsString("Edge type should be specified")));
|
.andExpect(statusReason(containsString(msgError)));
|
||||||
|
|
||||||
|
testNotifyEntityEqualsOneTimeServiceNeverError(edge, savedTenant.getId(),
|
||||||
|
tenantAdmin.getId(), tenantAdmin.getEmail(), ActionType.ADDED, new DataValidationException(msgError));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSaveEdgeWithEmptyName() throws Exception {
|
public void testSaveEdgeWithEmptyName() throws Exception {
|
||||||
Edge edge = constructEdge(null, "default");
|
Edge edge = constructEdge(null, "default");
|
||||||
|
|
||||||
|
Mockito.reset(tbClusterService, auditLogService);
|
||||||
|
|
||||||
|
String msgError = "Edge name " + msgErrorShouldBeSpecified;
|
||||||
doPost("/api/edge", edge)
|
doPost("/api/edge", edge)
|
||||||
.andExpect(status().isBadRequest())
|
.andExpect(status().isBadRequest())
|
||||||
.andExpect(statusReason(containsString("Edge name should be specified")));
|
.andExpect(statusReason(containsString(msgError)));
|
||||||
|
|
||||||
|
testNotifyEntityEqualsOneTimeServiceNeverError(edge, savedTenant.getId(),
|
||||||
|
tenantAdmin.getId(), tenantAdmin.getEmail(), ActionType.ADDED, new DataValidationException(msgError));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -201,10 +270,16 @@ public abstract class BaseEdgeControllerTest extends AbstractControllerTest {
|
|||||||
customer.setTitle("My customer");
|
customer.setTitle("My customer");
|
||||||
Customer savedCustomer = doPost("/api/customer", customer, Customer.class);
|
Customer savedCustomer = doPost("/api/customer", customer, Customer.class);
|
||||||
|
|
||||||
|
Mockito.reset(tbClusterService, auditLogService);
|
||||||
|
|
||||||
Edge assignedEdge = doPost("/api/customer/" + savedCustomer.getId().getId().toString()
|
Edge assignedEdge = doPost("/api/customer/" + savedCustomer.getId().getId().toString()
|
||||||
+ "/edge/" + savedEdge.getId().getId().toString(), Edge.class);
|
+ "/edge/" + savedEdge.getId().getId().toString(), Edge.class);
|
||||||
Assert.assertEquals(savedCustomer.getId(), assignedEdge.getCustomerId());
|
Assert.assertEquals(savedCustomer.getId(), assignedEdge.getCustomerId());
|
||||||
|
|
||||||
|
testNotifyEntityAllOneTimeLogEntityActionEntityEqClass(assignedEdge, assignedEdge.getId(), assignedEdge.getId(),
|
||||||
|
savedTenant.getId(), savedCustomer.getId(), tenantAdmin.getId(), tenantAdmin.getEmail(), ActionType.ASSIGNED_TO_CUSTOMER,
|
||||||
|
assignedEdge.getId().getId().toString(), savedCustomer.getId().getId().toString(), savedCustomer.getTitle());
|
||||||
|
|
||||||
Edge foundEdge = doGet("/api/edge/" + savedEdge.getId().getId().toString(), Edge.class);
|
Edge foundEdge = doGet("/api/edge/" + savedEdge.getId().getId().toString(), Edge.class);
|
||||||
Assert.assertEquals(savedCustomer.getId(), foundEdge.getCustomerId());
|
Assert.assertEquals(savedCustomer.getId(), foundEdge.getCustomerId());
|
||||||
|
|
||||||
@ -212,6 +287,10 @@ public abstract class BaseEdgeControllerTest extends AbstractControllerTest {
|
|||||||
doDelete("/api/customer/edge/" + savedEdge.getId().getId().toString(), Edge.class);
|
doDelete("/api/customer/edge/" + savedEdge.getId().getId().toString(), Edge.class);
|
||||||
Assert.assertEquals(ModelConstants.NULL_UUID, unassignedEdge.getCustomerId().getId());
|
Assert.assertEquals(ModelConstants.NULL_UUID, unassignedEdge.getCustomerId().getId());
|
||||||
|
|
||||||
|
testNotifyEntityAllOneTimeLogEntityActionEntityEqClass(unassignedEdge, unassignedEdge.getId(), unassignedEdge.getId(),
|
||||||
|
savedTenant.getId(), savedCustomer.getId(), tenantAdmin.getId(), tenantAdmin.getEmail(), ActionType.UNASSIGNED_FROM_CUSTOMER,
|
||||||
|
unassignedEdge.getId().getId().toString(), savedCustomer.getId().getId().toString(), savedCustomer.getTitle());
|
||||||
|
|
||||||
foundEdge = doGet("/api/edge/" + savedEdge.getId().getId().toString(), Edge.class);
|
foundEdge = doGet("/api/edge/" + savedEdge.getId().getId().toString(), Edge.class);
|
||||||
Assert.assertEquals(ModelConstants.NULL_UUID, foundEdge.getCustomerId().getId());
|
Assert.assertEquals(ModelConstants.NULL_UUID, foundEdge.getCustomerId().getId());
|
||||||
}
|
}
|
||||||
@ -221,9 +300,18 @@ public abstract class BaseEdgeControllerTest extends AbstractControllerTest {
|
|||||||
Edge edge = constructEdge("My edge", "default");
|
Edge edge = constructEdge("My edge", "default");
|
||||||
Edge savedEdge = doPost("/api/edge", edge, Edge.class);
|
Edge savedEdge = doPost("/api/edge", edge, Edge.class);
|
||||||
|
|
||||||
doPost("/api/customer/" + Uuids.timeBased().toString()
|
Mockito.reset(tbClusterService, auditLogService);
|
||||||
+ "/edge/" + savedEdge.getId().getId().toString())
|
|
||||||
.andExpect(status().isNotFound());
|
CustomerId customerId = new CustomerId(Uuids.timeBased());
|
||||||
|
String customerIdStr = customerId.getId().toString();
|
||||||
|
|
||||||
|
String msgError = msgErrorNoFound("Customer", customerIdStr);
|
||||||
|
doPost("/api/customer/" + customerIdStr+ "/edge/" + savedEdge.getId().getId().toString())
|
||||||
|
.andExpect(status().isNotFound())
|
||||||
|
.andExpect(statusReason(containsString(msgError)));
|
||||||
|
|
||||||
|
testNotifyEntityNever(savedEdge.getId(), savedEdge);
|
||||||
|
testNotifyEntityNever(customerId, new Customer());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -242,7 +330,7 @@ public abstract class BaseEdgeControllerTest extends AbstractControllerTest {
|
|||||||
tenantAdmin2.setFirstName("Joe");
|
tenantAdmin2.setFirstName("Joe");
|
||||||
tenantAdmin2.setLastName("Downs");
|
tenantAdmin2.setLastName("Downs");
|
||||||
|
|
||||||
tenantAdmin2 = createUserAndLogin(tenantAdmin2, "testPassword1");
|
createUserAndLogin(tenantAdmin2, "testPassword1");
|
||||||
|
|
||||||
Customer customer = new Customer();
|
Customer customer = new Customer();
|
||||||
customer.setTitle("Different customer");
|
customer.setTitle("Different customer");
|
||||||
@ -253,9 +341,15 @@ public abstract class BaseEdgeControllerTest extends AbstractControllerTest {
|
|||||||
Edge edge = constructEdge("My edge", "default");
|
Edge edge = constructEdge("My edge", "default");
|
||||||
Edge savedEdge = doPost("/api/edge", edge, Edge.class);
|
Edge savedEdge = doPost("/api/edge", edge, Edge.class);
|
||||||
|
|
||||||
|
Mockito.reset(tbClusterService, auditLogService);
|
||||||
|
|
||||||
doPost("/api/customer/" + savedCustomer.getId().getId().toString()
|
doPost("/api/customer/" + savedCustomer.getId().getId().toString()
|
||||||
+ "/edge/" + savedEdge.getId().getId().toString())
|
+ "/edge/" + savedEdge.getId().getId().toString())
|
||||||
.andExpect(status().isForbidden());
|
.andExpect(status().isForbidden())
|
||||||
|
.andExpect(statusReason(containsString(msgErrorPermission)));
|
||||||
|
|
||||||
|
testNotifyEntityNever(savedEdge.getId(), savedEdge);
|
||||||
|
testNotifyEntityNever(savedCustomer.getId(), savedCustomer);
|
||||||
|
|
||||||
loginSysAdmin();
|
loginSysAdmin();
|
||||||
|
|
||||||
@ -275,7 +369,7 @@ public abstract class BaseEdgeControllerTest extends AbstractControllerTest {
|
|||||||
PageData<Edge> pageData = null;
|
PageData<Edge> pageData = null;
|
||||||
do {
|
do {
|
||||||
pageData = doGetTypedWithPageLink("/api/tenant/edges?",
|
pageData = doGetTypedWithPageLink("/api/tenant/edges?",
|
||||||
new TypeReference<PageData<Edge>>() {
|
new TypeReference<>() {
|
||||||
}, pageLink);
|
}, pageLink);
|
||||||
loadedEdges.addAll(pageData.getData());
|
loadedEdges.addAll(pageData.getData());
|
||||||
if (pageData.hasNext()) {
|
if (pageData.hasNext()) {
|
||||||
@ -352,7 +446,7 @@ public abstract class BaseEdgeControllerTest extends AbstractControllerTest {
|
|||||||
|
|
||||||
pageLink = new PageLink(4, 0, title1);
|
pageLink = new PageLink(4, 0, title1);
|
||||||
pageData = doGetTypedWithPageLink("/api/tenant/edges?",
|
pageData = doGetTypedWithPageLink("/api/tenant/edges?",
|
||||||
new TypeReference<PageData<Edge>>() {
|
new TypeReference<>() {
|
||||||
}, pageLink);
|
}, pageLink);
|
||||||
Assert.assertFalse(pageData.hasNext());
|
Assert.assertFalse(pageData.hasNext());
|
||||||
Assert.assertEquals(0, pageData.getData().size());
|
Assert.assertEquals(0, pageData.getData().size());
|
||||||
@ -364,7 +458,7 @@ public abstract class BaseEdgeControllerTest extends AbstractControllerTest {
|
|||||||
|
|
||||||
pageLink = new PageLink(4, 0, title2);
|
pageLink = new PageLink(4, 0, title2);
|
||||||
pageData = doGetTypedWithPageLink("/api/tenant/edges?",
|
pageData = doGetTypedWithPageLink("/api/tenant/edges?",
|
||||||
new TypeReference<PageData<Edge>>() {
|
new TypeReference<>() {
|
||||||
}, pageLink);
|
}, pageLink);
|
||||||
Assert.assertFalse(pageData.hasNext());
|
Assert.assertFalse(pageData.hasNext());
|
||||||
Assert.assertEquals(0, pageData.getData().size());
|
Assert.assertEquals(0, pageData.getData().size());
|
||||||
@ -460,14 +554,22 @@ public abstract class BaseEdgeControllerTest extends AbstractControllerTest {
|
|||||||
customer = doPost("/api/customer", customer, Customer.class);
|
customer = doPost("/api/customer", customer, Customer.class);
|
||||||
CustomerId customerId = customer.getId();
|
CustomerId customerId = customer.getId();
|
||||||
|
|
||||||
|
Mockito.reset(tbClusterService, auditLogService);
|
||||||
|
|
||||||
List<Edge> edges = new ArrayList<>();
|
List<Edge> edges = new ArrayList<>();
|
||||||
for (int i = 0; i < 128; i++) {
|
int cntEntity = 128;
|
||||||
|
for (int i = 0; i < cntEntity; i++) {
|
||||||
Edge edge = constructEdge("Edge" + i, "default");
|
Edge edge = constructEdge("Edge" + i, "default");
|
||||||
edge = doPost("/api/edge", edge, Edge.class);
|
edge = doPost("/api/edge", edge, Edge.class);
|
||||||
edges.add(doPost("/api/customer/" + customerId.getId().toString()
|
edges.add(doPost("/api/customer/" + customerId.getId().toString()
|
||||||
+ "/edge/" + edge.getId().getId().toString(), Edge.class));
|
+ "/edge/" + edge.getId().getId().toString(), Edge.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
testNotifyManyEntityManyTimeMsgToEdgeServiceEntityEqAny(new Edge(), new Edge(),
|
||||||
|
savedTenant.getId(), customerId, tenantAdmin.getId(), tenantAdmin.getEmail(),
|
||||||
|
ActionType.ASSIGNED_TO_CUSTOMER, ActionType.ASSIGNED_TO_CUSTOMER, cntEntity, cntEntity, cntEntity * 2,
|
||||||
|
new String(), new String(), new String());
|
||||||
|
|
||||||
List<Edge> loadedEdges = new ArrayList<>();
|
List<Edge> loadedEdges = new ArrayList<>();
|
||||||
PageLink pageLink = new PageLink(23);
|
PageLink pageLink = new PageLink(23);
|
||||||
PageData<Edge> pageData = null;
|
PageData<Edge> pageData = null;
|
||||||
@ -552,11 +654,18 @@ public abstract class BaseEdgeControllerTest extends AbstractControllerTest {
|
|||||||
|
|
||||||
Assert.assertEquals(edgesTitle2, loadedEdgesTitle2);
|
Assert.assertEquals(edgesTitle2, loadedEdgesTitle2);
|
||||||
|
|
||||||
|
Mockito.reset(tbClusterService, auditLogService);
|
||||||
|
|
||||||
for (Edge edge : loadedEdgesTitle1) {
|
for (Edge edge : loadedEdgesTitle1) {
|
||||||
doDelete("/api/customer/edge/" + edge.getId().getId().toString())
|
doDelete("/api/customer/edge/" + edge.getId().getId().toString())
|
||||||
.andExpect(status().isOk());
|
.andExpect(status().isOk());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int cntEntity = loadedEdgesTitle1.size();
|
||||||
|
testNotifyManyEntityManyTimeMsgToEdgeServiceEntityEqAnyAdditionalInfoAny(new Edge(), new Edge(),
|
||||||
|
savedTenant.getId(), customerId, tenantAdmin.getId(), tenantAdmin.getEmail(),
|
||||||
|
ActionType.UNASSIGNED_FROM_CUSTOMER, ActionType.UNASSIGNED_FROM_CUSTOMER, cntEntity, cntEntity, 3);
|
||||||
|
|
||||||
pageLink = new PageLink(4, 0, title1);
|
pageLink = new PageLink(4, 0, title1);
|
||||||
pageData = doGetTypedWithPageLink("/api/customer/" + customerId.getId().toString() + "/edges?",
|
pageData = doGetTypedWithPageLink("/api/customer/" + customerId.getId().toString() + "/edges?",
|
||||||
new TypeReference<PageData<Edge>>() {
|
new TypeReference<PageData<Edge>>() {
|
||||||
@ -714,7 +823,8 @@ public abstract class BaseEdgeControllerTest extends AbstractControllerTest {
|
|||||||
edgeImitator.allowIgnoredTypes();
|
edgeImitator.allowIgnoredTypes();
|
||||||
try {
|
try {
|
||||||
edgeImitator.disconnect();
|
edgeImitator.disconnect();
|
||||||
} catch (Exception ignored) {}
|
} catch (Exception ignored) {
|
||||||
|
}
|
||||||
|
|
||||||
doDelete("/api/device/" + savedDevice.getId().getId().toString())
|
doDelete("/api/device/" + savedDevice.getId().getId().toString())
|
||||||
.andExpect(status().isOk());
|
.andExpect(status().isOk());
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user