Add tests for rule chain importing
This commit is contained in:
parent
cc1c2094c9
commit
f6e816edb9
@ -53,6 +53,7 @@ import org.thingsboard.server.common.data.relation.RelationTypeGroup;
|
|||||||
import org.thingsboard.server.common.data.rule.RuleChain;
|
import org.thingsboard.server.common.data.rule.RuleChain;
|
||||||
import org.thingsboard.server.common.data.rule.RuleChainMetaData;
|
import org.thingsboard.server.common.data.rule.RuleChainMetaData;
|
||||||
import org.thingsboard.server.common.data.rule.RuleNode;
|
import org.thingsboard.server.common.data.rule.RuleNode;
|
||||||
|
import org.thingsboard.server.common.data.script.ScriptLanguage;
|
||||||
import org.thingsboard.server.common.data.security.DeviceCredentials;
|
import org.thingsboard.server.common.data.security.DeviceCredentials;
|
||||||
import org.thingsboard.server.common.data.sync.ie.DeviceExportData;
|
import org.thingsboard.server.common.data.sync.ie.DeviceExportData;
|
||||||
import org.thingsboard.server.common.data.sync.ie.EntityExportData;
|
import org.thingsboard.server.common.data.sync.ie.EntityExportData;
|
||||||
@ -65,9 +66,11 @@ import org.thingsboard.server.dao.service.DaoSqlTest;
|
|||||||
import org.thingsboard.server.service.action.EntityActionService;
|
import org.thingsboard.server.service.action.EntityActionService;
|
||||||
import org.thingsboard.server.service.ota.OtaPackageStateService;
|
import org.thingsboard.server.service.ota.OtaPackageStateService;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.UUID;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
@ -338,6 +341,47 @@ public class ExportImportServiceSqlTest extends BaseExportImportServiceTest {
|
|||||||
checkImportedRuleChainData(ruleChain, metaData, importedRuleChain, importedMetaData);
|
checkImportedRuleChainData(ruleChain, metaData, importedRuleChain, importedMetaData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testImportRuleChain_ruleNodesConfigs() throws Exception {
|
||||||
|
Customer customer = createCustomer(tenantId1, "Customer 1");
|
||||||
|
RuleChain ruleChain = createRuleChain(tenantId1, "Rule chain 1");
|
||||||
|
RuleChainMetaData metaData = ruleChainService.loadRuleChainMetaData(tenantId1, ruleChain.getId());
|
||||||
|
|
||||||
|
List<RuleNode> nodes = new ArrayList<>(metaData.getNodes());
|
||||||
|
RuleNode generatorNode = new RuleNode();
|
||||||
|
generatorNode.setName("Generator");
|
||||||
|
generatorNode.setType(TbMsgGeneratorNode.class.getName());
|
||||||
|
TbMsgGeneratorNodeConfiguration generatorNodeConfig = new TbMsgGeneratorNodeConfiguration();
|
||||||
|
generatorNodeConfig.setOriginatorType(EntityType.ASSET_PROFILE);
|
||||||
|
generatorNodeConfig.setOriginatorId(customer.getId().toString());
|
||||||
|
generatorNodeConfig.setPeriodInSeconds(5);
|
||||||
|
generatorNodeConfig.setMsgCount(1);
|
||||||
|
generatorNodeConfig.setScriptLang(ScriptLanguage.JS);
|
||||||
|
UUID someUuid = UUID.randomUUID();
|
||||||
|
generatorNodeConfig.setJsScript("var msg = { temp: 42, humidity: 77 };\n" +
|
||||||
|
"var metadata = { data: 40 };\n" +
|
||||||
|
"var msgType = \"POST_TELEMETRY_REQUEST\";\n" +
|
||||||
|
"var someUuid = \"" + someUuid + "\";\n" +
|
||||||
|
"return { msg: msg, metadata: metadata, msgType: msgType };");
|
||||||
|
generatorNode.setConfiguration(mapper.valueToTree(generatorNodeConfig));
|
||||||
|
nodes.add(generatorNode);
|
||||||
|
metaData.setNodes(nodes);
|
||||||
|
ruleChainService.saveRuleChainMetaData(tenantId1, metaData);
|
||||||
|
|
||||||
|
EntityExportData<RuleChain> ruleChainExportData = exportEntity(tenantAdmin1, ruleChain.getId());
|
||||||
|
EntityExportData<Customer> customerExportData = exportEntity(tenantAdmin1, customer.getId());
|
||||||
|
|
||||||
|
Customer importedCustomer = importEntity(tenantAdmin2, customerExportData).getSavedEntity();
|
||||||
|
RuleChain importedRuleChain = importEntity(tenantAdmin2, ruleChainExportData).getSavedEntity();
|
||||||
|
RuleChainMetaData importedMetaData = ruleChainService.loadRuleChainMetaData(tenantId2, importedRuleChain.getId());
|
||||||
|
|
||||||
|
TbMsgGeneratorNodeConfiguration importedGeneratorNodeConfig = JacksonUtil.treeToValue(importedMetaData.getNodes().stream()
|
||||||
|
.filter(node -> node.getName().equals(generatorNode.getName()))
|
||||||
|
.findFirst().get().getConfiguration(), TbMsgGeneratorNodeConfiguration.class);
|
||||||
|
assertThat(importedGeneratorNodeConfig.getOriginatorId()).isEqualTo(importedCustomer.getId().toString());
|
||||||
|
assertThat(importedGeneratorNodeConfig.getJsScript()).contains("var someUuid = \"" + someUuid + "\";");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testExportImportWithInboundRelations_betweenTenants() throws Exception {
|
public void testExportImportWithInboundRelations_betweenTenants() throws Exception {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user