refactoring: tests RuleChain
This commit is contained in:
parent
f42d2cc894
commit
de74ded2d2
@ -21,14 +21,17 @@ 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.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.audit.ActionType;
|
||||||
import org.thingsboard.server.common.data.edge.Edge;
|
import org.thingsboard.server.common.data.edge.Edge;
|
||||||
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.rule.RuleChain;
|
import org.thingsboard.server.common.data.rule.RuleChain;
|
||||||
import org.thingsboard.server.common.data.rule.RuleChainType;
|
import org.thingsboard.server.common.data.rule.RuleChainType;
|
||||||
import org.thingsboard.server.common.data.security.Authority;
|
import org.thingsboard.server.common.data.security.Authority;
|
||||||
|
import org.thingsboard.server.dao.exception.DataValidationException;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
@ -75,22 +78,45 @@ public abstract class BaseRuleChainControllerTest extends AbstractControllerTest
|
|||||||
public void testSaveRuleChain() throws Exception {
|
public void testSaveRuleChain() throws Exception {
|
||||||
RuleChain ruleChain = new RuleChain();
|
RuleChain ruleChain = new RuleChain();
|
||||||
ruleChain.setName("RuleChain");
|
ruleChain.setName("RuleChain");
|
||||||
|
|
||||||
|
Mockito.reset(tbClusterService, auditLogService);
|
||||||
|
|
||||||
RuleChain savedRuleChain = doPost("/api/ruleChain", ruleChain, RuleChain.class);
|
RuleChain savedRuleChain = doPost("/api/ruleChain", ruleChain, RuleChain.class);
|
||||||
Assert.assertNotNull(savedRuleChain);
|
Assert.assertNotNull(savedRuleChain);
|
||||||
Assert.assertNotNull(savedRuleChain.getId());
|
Assert.assertNotNull(savedRuleChain.getId());
|
||||||
Assert.assertTrue(savedRuleChain.getCreatedTime() > 0);
|
Assert.assertTrue(savedRuleChain.getCreatedTime() > 0);
|
||||||
Assert.assertEquals(ruleChain.getName(), savedRuleChain.getName());
|
Assert.assertEquals(ruleChain.getName(), savedRuleChain.getName());
|
||||||
|
|
||||||
|
testNotifyEntityOneTimeMsgToEdgeServiceNever(savedRuleChain, savedRuleChain.getId(), savedRuleChain.getId(),
|
||||||
|
savedTenant.getId(), tenantAdmin.getCustomerId(), tenantAdmin.getId(), tenantAdmin.getEmail(),
|
||||||
|
ActionType.ADDED);
|
||||||
|
|
||||||
savedRuleChain.setName("New RuleChain");
|
savedRuleChain.setName("New RuleChain");
|
||||||
doPost("/api/ruleChain", savedRuleChain, RuleChain.class);
|
doPost("/api/ruleChain", savedRuleChain, RuleChain.class);
|
||||||
RuleChain foundRuleChain = doGet("/api/ruleChain/" + savedRuleChain.getId().getId().toString(), RuleChain.class);
|
RuleChain foundRuleChain = doGet("/api/ruleChain/" + savedRuleChain.getId().getId().toString(), RuleChain.class);
|
||||||
Assert.assertEquals(savedRuleChain.getName(), foundRuleChain.getName());
|
Assert.assertEquals(savedRuleChain.getName(), foundRuleChain.getName());
|
||||||
|
|
||||||
|
testNotifyEntityOneTimeMsgToEdgeServiceNever(savedRuleChain, savedRuleChain.getId(), savedRuleChain.getId(),
|
||||||
|
savedTenant.getId(), tenantAdmin.getCustomerId(), tenantAdmin.getId(), tenantAdmin.getEmail(),
|
||||||
|
ActionType.UPDATED);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSaveRuleChainWithViolationOfLengthValidation() throws Exception {
|
public void testSaveRuleChainWithViolationOfLengthValidation() throws Exception {
|
||||||
|
|
||||||
|
Mockito.reset(tbClusterService, auditLogService);
|
||||||
|
|
||||||
RuleChain ruleChain = new RuleChain();
|
RuleChain ruleChain = new RuleChain();
|
||||||
ruleChain.setName(RandomStringUtils.randomAlphabetic(300));
|
ruleChain.setName(RandomStringUtils.randomAlphabetic(300));
|
||||||
doPost("/api/ruleChain", ruleChain).andExpect(statusReason(containsString("length of name must be equal or less than 255")));
|
String msgError = msgErrorFieldLength("name");
|
||||||
|
doPost("/api/ruleChain", ruleChain)
|
||||||
|
.andExpect(status().isBadRequest())
|
||||||
|
.andExpect(statusReason(containsString(msgError)));
|
||||||
|
|
||||||
|
ruleChain.setTenantId(savedTenant.getId());
|
||||||
|
testNotifyEntityEqualsOneTimeServiceNeverError(ruleChain,
|
||||||
|
savedTenant.getId(), tenantAdmin.getId(), tenantAdmin.getEmail(),
|
||||||
|
ActionType.ADDED, new DataValidationException(msgError));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -109,11 +135,19 @@ public abstract class BaseRuleChainControllerTest extends AbstractControllerTest
|
|||||||
ruleChain.setName("RuleChain");
|
ruleChain.setName("RuleChain");
|
||||||
RuleChain savedRuleChain = doPost("/api/ruleChain", ruleChain, RuleChain.class);
|
RuleChain savedRuleChain = doPost("/api/ruleChain", ruleChain, RuleChain.class);
|
||||||
|
|
||||||
|
Mockito.reset(tbClusterService, auditLogService);
|
||||||
|
|
||||||
|
String entityIdStr = savedRuleChain.getId().getId().toString();
|
||||||
doDelete("/api/ruleChain/" + savedRuleChain.getId().getId().toString())
|
doDelete("/api/ruleChain/" + savedRuleChain.getId().getId().toString())
|
||||||
.andExpect(status().isOk());
|
.andExpect(status().isOk());
|
||||||
|
|
||||||
doGet("/api/ruleChain/" + savedRuleChain.getId().getId().toString())
|
testNotifyEntityOneTimeMsgToEdgeServiceNever(savedRuleChain, savedRuleChain.getId(), savedRuleChain.getId(),
|
||||||
.andExpect(status().isNotFound());
|
savedTenant.getId(), tenantAdmin.getCustomerId(), tenantAdmin.getId(), tenantAdmin.getEmail(),
|
||||||
|
ActionType.DELETED, savedRuleChain.getId().getId().toString());
|
||||||
|
|
||||||
|
doGet("/api/ruleChain/" + entityIdStr)
|
||||||
|
.andExpect(status().isNotFound())
|
||||||
|
.andExpect(statusReason(containsString(msgErrorNoFound("Rule chain", entityIdStr))));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -124,12 +158,16 @@ public abstract class BaseRuleChainControllerTest extends AbstractControllerTest
|
|||||||
List<RuleChain> edgeRuleChains = new ArrayList<>();
|
List<RuleChain> edgeRuleChains = new ArrayList<>();
|
||||||
PageLink pageLink = new PageLink(17);
|
PageLink pageLink = new PageLink(17);
|
||||||
PageData<RuleChain> pageData = doGetTypedWithPageLink("/api/edge/" + savedEdge.getId().getId() + "/ruleChains?",
|
PageData<RuleChain> pageData = doGetTypedWithPageLink("/api/edge/" + savedEdge.getId().getId() + "/ruleChains?",
|
||||||
new TypeReference<>() {}, pageLink);
|
new TypeReference<>() {
|
||||||
|
}, pageLink);
|
||||||
Assert.assertFalse(pageData.hasNext());
|
Assert.assertFalse(pageData.hasNext());
|
||||||
Assert.assertEquals(1, pageData.getTotalElements());
|
Assert.assertEquals(1, pageData.getTotalElements());
|
||||||
edgeRuleChains.addAll(pageData.getData());
|
edgeRuleChains.addAll(pageData.getData());
|
||||||
|
|
||||||
for (int i = 0; i < 28; i++) {
|
Mockito.reset(tbClusterService, auditLogService);
|
||||||
|
|
||||||
|
int cntEntity = 28;
|
||||||
|
for (int i = 0; i < cntEntity; i++) {
|
||||||
RuleChain ruleChain = new RuleChain();
|
RuleChain ruleChain = new RuleChain();
|
||||||
ruleChain.setName("RuleChain " + i);
|
ruleChain.setName("RuleChain " + i);
|
||||||
ruleChain.setType(RuleChainType.EDGE);
|
ruleChain.setType(RuleChainType.EDGE);
|
||||||
@ -139,11 +177,16 @@ public abstract class BaseRuleChainControllerTest extends AbstractControllerTest
|
|||||||
edgeRuleChains.add(savedRuleChain);
|
edgeRuleChains.add(savedRuleChain);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
testNotifyManyEntityManyTimeMsgToEdgeServiceEntityEqAny(new RuleChain(), new RuleChain(),
|
||||||
|
savedTenant.getId(), tenantAdmin.getCustomerId(), tenantAdmin.getId(), tenantAdmin.getEmail(),
|
||||||
|
ActionType.ADDED, ActionType.ADDED, cntEntity, 0, cntEntity * 2);
|
||||||
|
|
||||||
List<RuleChain> loadedEdgeRuleChains = new ArrayList<>();
|
List<RuleChain> loadedEdgeRuleChains = new ArrayList<>();
|
||||||
pageLink = new PageLink(17);
|
pageLink = new PageLink(17);
|
||||||
do {
|
do {
|
||||||
pageData = doGetTypedWithPageLink("/api/edge/" + savedEdge.getId().getId() + "/ruleChains?",
|
pageData = doGetTypedWithPageLink("/api/edge/" + savedEdge.getId().getId() + "/ruleChains?",
|
||||||
new TypeReference<>() {}, pageLink);
|
new TypeReference<>() {
|
||||||
|
}, pageLink);
|
||||||
loadedEdgeRuleChains.addAll(pageData.getData());
|
loadedEdgeRuleChains.addAll(pageData.getData());
|
||||||
if (pageData.hasNext()) {
|
if (pageData.hasNext()) {
|
||||||
pageLink = pageLink.nextPageLink();
|
pageLink = pageLink.nextPageLink();
|
||||||
@ -155,6 +198,8 @@ public abstract class BaseRuleChainControllerTest extends AbstractControllerTest
|
|||||||
|
|
||||||
Assert.assertEquals(edgeRuleChains, loadedEdgeRuleChains);
|
Assert.assertEquals(edgeRuleChains, loadedEdgeRuleChains);
|
||||||
|
|
||||||
|
Mockito.reset(tbClusterService, auditLogService);
|
||||||
|
|
||||||
for (RuleChain ruleChain : loadedEdgeRuleChains) {
|
for (RuleChain ruleChain : loadedEdgeRuleChains) {
|
||||||
if (!ruleChain.isRoot()) {
|
if (!ruleChain.isRoot()) {
|
||||||
doDelete("/api/edge/" + savedEdge.getId().getId().toString()
|
doDelete("/api/edge/" + savedEdge.getId().getId().toString()
|
||||||
@ -162,9 +207,14 @@ public abstract class BaseRuleChainControllerTest extends AbstractControllerTest
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
testNotifyManyEntityManyTimeMsgToEdgeServiceEntityEqAnyAdditionalInfoAny(new RuleChain(), new RuleChain(),
|
||||||
|
savedTenant.getId(), tenantAdmin.getCustomerId(), tenantAdmin.getId(), tenantAdmin.getEmail(),
|
||||||
|
ActionType.UNASSIGNED_FROM_EDGE, ActionType.UNASSIGNED_FROM_EDGE, cntEntity, cntEntity, 3);
|
||||||
|
|
||||||
pageLink = new PageLink(17);
|
pageLink = new PageLink(17);
|
||||||
pageData = doGetTypedWithPageLink("/api/edge/" + savedEdge.getId().getId() + "/ruleChains?",
|
pageData = doGetTypedWithPageLink("/api/edge/" + savedEdge.getId().getId() + "/ruleChains?",
|
||||||
new TypeReference<>() {}, pageLink);
|
new TypeReference<>() {
|
||||||
|
}, pageLink);
|
||||||
Assert.assertFalse(pageData.hasNext());
|
Assert.assertFalse(pageData.hasNext());
|
||||||
Assert.assertEquals(1, pageData.getTotalElements());
|
Assert.assertEquals(1, pageData.getTotalElements());
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user