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.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 {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user