added tests
This commit is contained in:
		
							parent
							
								
									f06fc5b275
								
							
						
					
					
						commit
						bbdeda9558
					
				@ -16,6 +16,7 @@
 | 
			
		||||
package org.thingsboard.server.dao.service;
 | 
			
		||||
 | 
			
		||||
import com.datastax.oss.driver.api.core.uuid.Uuids;
 | 
			
		||||
import com.fasterxml.jackson.databind.node.ObjectNode;
 | 
			
		||||
import org.junit.Assert;
 | 
			
		||||
import org.junit.Test;
 | 
			
		||||
import org.junit.jupiter.api.Assertions;
 | 
			
		||||
@ -28,12 +29,14 @@ import org.thingsboard.server.common.data.id.TenantId;
 | 
			
		||||
import org.thingsboard.server.common.data.page.PageData;
 | 
			
		||||
import org.thingsboard.server.common.data.page.PageLink;
 | 
			
		||||
import org.thingsboard.server.common.data.relation.EntityRelation;
 | 
			
		||||
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.RuleChainType;
 | 
			
		||||
import org.thingsboard.server.common.data.rule.RuleNode;
 | 
			
		||||
import org.thingsboard.server.dao.edge.EdgeService;
 | 
			
		||||
import org.thingsboard.server.dao.exception.DataValidationException;
 | 
			
		||||
import org.thingsboard.server.dao.relation.RelationService;
 | 
			
		||||
import org.thingsboard.server.dao.rule.RuleChainService;
 | 
			
		||||
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
@ -44,6 +47,7 @@ import java.util.UUID;
 | 
			
		||||
import java.util.function.Function;
 | 
			
		||||
 | 
			
		||||
import static org.assertj.core.api.Assertions.assertThatThrownBy;
 | 
			
		||||
import static org.thingsboard.server.common.data.relation.EntityRelation.USES_TYPE;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Created by igor on 3/13/18.
 | 
			
		||||
@ -55,6 +59,8 @@ public class RuleChainServiceTest extends AbstractServiceTest {
 | 
			
		||||
    EdgeService edgeService;
 | 
			
		||||
    @Autowired
 | 
			
		||||
    RuleChainService ruleChainService;
 | 
			
		||||
    @Autowired
 | 
			
		||||
    RelationService relationService;
 | 
			
		||||
 | 
			
		||||
    private IdComparator<RuleChain> idComparator = new IdComparator<>();
 | 
			
		||||
    private IdComparator<RuleNode> ruleNodeIdComparator = new IdComparator<>();
 | 
			
		||||
@ -354,6 +360,66 @@ public class RuleChainServiceTest extends AbstractServiceTest {
 | 
			
		||||
        Assert.assertTrue(ruleChainById.isRoot());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Test
 | 
			
		||||
    public void testSaveRuleChainWithInputNode() {
 | 
			
		||||
        RuleChain toRuleChain = new RuleChain();
 | 
			
		||||
        toRuleChain.setName("To Rule Chain");
 | 
			
		||||
        toRuleChain.setTenantId(tenantId);
 | 
			
		||||
        RuleChain savedToRuleChain = ruleChainService.saveRuleChain(toRuleChain);
 | 
			
		||||
 | 
			
		||||
        RuleChain fromRuleChain = new RuleChain();
 | 
			
		||||
        fromRuleChain.setName("From RuleChain");
 | 
			
		||||
        fromRuleChain.setTenantId(tenantId);
 | 
			
		||||
        RuleChain savedFromRuleChain = ruleChainService.saveRuleChain(fromRuleChain);
 | 
			
		||||
 | 
			
		||||
        RuleChainMetaData ruleChainMetaData = new RuleChainMetaData();
 | 
			
		||||
        ruleChainMetaData.setRuleChainId(savedFromRuleChain.getId());
 | 
			
		||||
 | 
			
		||||
        RuleNode ruleNode = new RuleNode();
 | 
			
		||||
        ruleNode.setName("Input node");
 | 
			
		||||
        ruleNode.setType("org.thingsboard.rule.engine.flow.TbRuleChainInputNode");
 | 
			
		||||
        ObjectNode configuration = JacksonUtil.newObjectNode();
 | 
			
		||||
        configuration.put("ruleChainId", savedToRuleChain.getId().toString());
 | 
			
		||||
        ruleNode.setConfiguration(configuration);
 | 
			
		||||
 | 
			
		||||
        List<RuleNode> ruleNodes = new ArrayList<>();
 | 
			
		||||
        ruleNodes.add(ruleNode);
 | 
			
		||||
        ruleChainMetaData.setFirstNodeIndex(0);
 | 
			
		||||
        ruleChainMetaData.setNodes(ruleNodes);
 | 
			
		||||
 | 
			
		||||
        ruleChainService.saveRuleChainMetaData(tenantId, ruleChainMetaData, Function.identity());
 | 
			
		||||
 | 
			
		||||
        List<EntityRelation> relations = relationService.findByFromAndType(tenantId, savedFromRuleChain.getId(), USES_TYPE, RelationTypeGroup.COMMON);
 | 
			
		||||
        Assert.assertEquals(1, relations.size());
 | 
			
		||||
        EntityRelation usesRelation = relations.get(0);
 | 
			
		||||
        Assert.assertEquals(savedFromRuleChain.getId(), usesRelation.getFrom());
 | 
			
		||||
        Assert.assertEquals(savedToRuleChain.getId(), usesRelation.getTo());
 | 
			
		||||
 | 
			
		||||
        RuleChain newToRuleChain = new RuleChain();
 | 
			
		||||
        newToRuleChain.setName("New To Rule Chain");
 | 
			
		||||
        newToRuleChain.setTenantId(tenantId);
 | 
			
		||||
        RuleChain savedNewToRuleChain = ruleChainService.saveRuleChain(newToRuleChain);
 | 
			
		||||
 | 
			
		||||
        RuleNode newRuleNode = new RuleNode();
 | 
			
		||||
        newRuleNode.setName("Input node");
 | 
			
		||||
        newRuleNode.setType("org.thingsboard.rule.engine.flow.TbRuleChainInputNode");
 | 
			
		||||
        ObjectNode newConfiguration = JacksonUtil.newObjectNode();
 | 
			
		||||
        configuration.put("ruleChainId", savedNewToRuleChain.getId().toString());
 | 
			
		||||
        newRuleNode.setConfiguration(newConfiguration);
 | 
			
		||||
 | 
			
		||||
        List<RuleNode> newRuleNodes = new ArrayList<>();
 | 
			
		||||
        newRuleNodes.add(newRuleNode);
 | 
			
		||||
        RuleChainMetaData foundRuleChainMetaData = ruleChainService.loadRuleChainMetaData(tenantId, ruleChainMetaData.getRuleChainId());
 | 
			
		||||
        foundRuleChainMetaData.setNodes(newRuleNodes);
 | 
			
		||||
        ruleChainService.saveRuleChainMetaData(tenantId, ruleChainMetaData, Function.identity());
 | 
			
		||||
 | 
			
		||||
        List<EntityRelation> newRelations = relationService.findByFromAndType(tenantId, savedFromRuleChain.getId(), USES_TYPE, RelationTypeGroup.COMMON);
 | 
			
		||||
        Assert.assertEquals(1, relations.size());
 | 
			
		||||
        EntityRelation newUsesRelation = newRelations.get(0);
 | 
			
		||||
        Assert.assertEquals(savedFromRuleChain.getId(), newUsesRelation.getFrom());
 | 
			
		||||
        Assert.assertEquals(savedNewToRuleChain.getId(), newUsesRelation.getTo());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private RuleChainId saveRuleChainAndSetAutoAssignToEdge(String name) {
 | 
			
		||||
        RuleChain edgeRuleChain = new RuleChain();
 | 
			
		||||
        edgeRuleChain.setTenantId(tenantId);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user