|
|
|
@ -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.RuleChainMetaData; |
|
|
|
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.sync.ie.DeviceExportData; |
|
|
|
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.ota.OtaPackageStateService; |
|
|
|
|
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.HashMap; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.UUID; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
import java.util.stream.Stream; |
|
|
|
|
|
|
|
@ -338,6 +341,47 @@ public class ExportImportServiceSqlTest extends BaseExportImportServiceTest { |
|
|
|
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 |
|
|
|
public void testExportImportWithInboundRelations_betweenTenants() throws Exception { |
|
|
|
|