CalculatedField functionality support for Edge
- add test
This commit is contained in:
		
							parent
							
								
									a67f2eb516
								
							
						
					
					
						commit
						2414b97923
					
				@ -53,12 +53,8 @@ import org.thingsboard.server.common.data.relation.RelationTypeGroup;
 | 
				
			|||||||
import org.thingsboard.server.common.data.relation.RelationsSearchParameters;
 | 
					import org.thingsboard.server.common.data.relation.RelationsSearchParameters;
 | 
				
			||||||
import org.thingsboard.server.common.data.widget.WidgetType;
 | 
					import org.thingsboard.server.common.data.widget.WidgetType;
 | 
				
			||||||
import org.thingsboard.server.common.data.widget.WidgetsBundle;
 | 
					import org.thingsboard.server.common.data.widget.WidgetsBundle;
 | 
				
			||||||
import org.thingsboard.server.dao.asset.AssetProfileService;
 | 
					 | 
				
			||||||
import org.thingsboard.server.dao.asset.AssetService;
 | 
					 | 
				
			||||||
import org.thingsboard.server.dao.attributes.AttributesService;
 | 
					import org.thingsboard.server.dao.attributes.AttributesService;
 | 
				
			||||||
import org.thingsboard.server.dao.cf.CalculatedFieldService;
 | 
					import org.thingsboard.server.dao.cf.CalculatedFieldService;
 | 
				
			||||||
import org.thingsboard.server.dao.device.DeviceProfileService;
 | 
					 | 
				
			||||||
import org.thingsboard.server.dao.device.DeviceService;
 | 
					 | 
				
			||||||
import org.thingsboard.server.dao.edge.EdgeEventService;
 | 
					import org.thingsboard.server.dao.edge.EdgeEventService;
 | 
				
			||||||
import org.thingsboard.server.dao.relation.RelationService;
 | 
					import org.thingsboard.server.dao.relation.RelationService;
 | 
				
			||||||
import org.thingsboard.server.dao.timeseries.TimeseriesService;
 | 
					import org.thingsboard.server.dao.timeseries.TimeseriesService;
 | 
				
			||||||
@ -113,14 +109,6 @@ public class DefaultEdgeRequestsService implements EdgeRequestsService {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    @Autowired
 | 
					    @Autowired
 | 
				
			||||||
    private CalculatedFieldService calculatedFieldService;
 | 
					    private CalculatedFieldService calculatedFieldService;
 | 
				
			||||||
    @Autowired
 | 
					 | 
				
			||||||
    private DeviceService deviceService;
 | 
					 | 
				
			||||||
    @Autowired
 | 
					 | 
				
			||||||
    private DeviceProfileService deviceProfileService;
 | 
					 | 
				
			||||||
    @Autowired
 | 
					 | 
				
			||||||
    private AssetService assetService;
 | 
					 | 
				
			||||||
    @Autowired
 | 
					 | 
				
			||||||
    private AssetProfileService assetProfileService;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Autowired
 | 
					    @Autowired
 | 
				
			||||||
    private DbCallbackExecutorService dbCallbackExecutorService;
 | 
					    private DbCallbackExecutorService dbCallbackExecutorService;
 | 
				
			||||||
 | 
				
			|||||||
@ -33,6 +33,7 @@ import org.thingsboard.server.common.data.cf.configuration.SimpleCalculatedField
 | 
				
			|||||||
import org.thingsboard.server.common.data.debug.DebugSettings;
 | 
					import org.thingsboard.server.common.data.debug.DebugSettings;
 | 
				
			||||||
import org.thingsboard.server.common.data.id.EntityId;
 | 
					import org.thingsboard.server.common.data.id.EntityId;
 | 
				
			||||||
import org.thingsboard.server.dao.service.DaoSqlTest;
 | 
					import org.thingsboard.server.dao.service.DaoSqlTest;
 | 
				
			||||||
 | 
					import org.thingsboard.server.gen.edge.v1.CalculatedFieldRequestMsg;
 | 
				
			||||||
import org.thingsboard.server.gen.edge.v1.CalculatedFieldUpdateMsg;
 | 
					import org.thingsboard.server.gen.edge.v1.CalculatedFieldUpdateMsg;
 | 
				
			||||||
import org.thingsboard.server.gen.edge.v1.UpdateMsgType;
 | 
					import org.thingsboard.server.gen.edge.v1.UpdateMsgType;
 | 
				
			||||||
import org.thingsboard.server.gen.edge.v1.UplinkMsg;
 | 
					import org.thingsboard.server.gen.edge.v1.UplinkMsg;
 | 
				
			||||||
@ -114,6 +115,43 @@ public class CalculatedFieldEdgeTest extends AbstractEdgeTest {
 | 
				
			|||||||
        checkCalculatedFieldOnCloud(uplinkMsg, uuid, calculatedField.getName());
 | 
					        checkCalculatedFieldOnCloud(uplinkMsg, uuid, calculatedField.getName());
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    public void testSendCalculatedFieldRequestToCloud() throws Exception {
 | 
				
			||||||
 | 
					        Device savedDevice = saveDeviceOnCloudAndVerifyDeliveryToEdge();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // create calculatedField
 | 
				
			||||||
 | 
					        SimpleCalculatedFieldConfiguration config = new SimpleCalculatedFieldConfiguration();
 | 
				
			||||||
 | 
					        CalculatedField calculatedField = createSimpleCalculatedField(savedDevice.getId(), config);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        edgeImitator.expectMessageAmount(1);
 | 
				
			||||||
 | 
					        CalculatedField savedCalculatedField = doPost("/api/calculatedField", calculatedField, CalculatedField.class);
 | 
				
			||||||
 | 
					        Assert.assertTrue(edgeImitator.waitForMessages());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        UplinkMsg.Builder uplinkMsgBuilder = UplinkMsg.newBuilder();
 | 
				
			||||||
 | 
					        CalculatedFieldRequestMsg.Builder calculatedFieldRequestMsgBuilder = CalculatedFieldRequestMsg.newBuilder();
 | 
				
			||||||
 | 
					        calculatedFieldRequestMsgBuilder.setEntityIdMSB(savedDevice.getId().getId().getMostSignificantBits());
 | 
				
			||||||
 | 
					        calculatedFieldRequestMsgBuilder.setEntityIdLSB(savedDevice.getId().getId().getLeastSignificantBits());
 | 
				
			||||||
 | 
					        calculatedFieldRequestMsgBuilder.setEntityType(savedDevice.getId().getEntityType().name());
 | 
				
			||||||
 | 
					        testAutoGeneratedCodeByProtobuf(calculatedFieldRequestMsgBuilder);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        uplinkMsgBuilder.addCalculatedFieldRequestMsg(calculatedFieldRequestMsgBuilder.build());
 | 
				
			||||||
 | 
					        testAutoGeneratedCodeByProtobuf(uplinkMsgBuilder);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        edgeImitator.expectResponsesAmount(1);
 | 
				
			||||||
 | 
					        edgeImitator.expectMessageAmount(1);
 | 
				
			||||||
 | 
					        edgeImitator.sendUplinkMsg(uplinkMsgBuilder.build());
 | 
				
			||||||
 | 
					        Assert.assertTrue(edgeImitator.waitForResponses());
 | 
				
			||||||
 | 
					        Assert.assertTrue(edgeImitator.waitForMessages());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        AbstractMessage latestMessage = edgeImitator.getLatestMessage();
 | 
				
			||||||
 | 
					        Assert.assertTrue(latestMessage instanceof CalculatedFieldUpdateMsg);
 | 
				
			||||||
 | 
					        CalculatedFieldUpdateMsg calculatedFieldUpdateMsg = (CalculatedFieldUpdateMsg) latestMessage;
 | 
				
			||||||
 | 
					        CalculatedField calculatedFieldFromEdge = JacksonUtil.fromString(calculatedFieldUpdateMsg.getEntity(), CalculatedField.class, true);
 | 
				
			||||||
 | 
					        Assert.assertNotNull(calculatedFieldFromEdge);
 | 
				
			||||||
 | 
					        Assert.assertEquals(savedCalculatedField, calculatedFieldFromEdge);
 | 
				
			||||||
 | 
					        Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, calculatedFieldUpdateMsg.getMsgType());
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    public void testUpdateCalculatedFieldNameOnCloud() throws Exception {
 | 
					    public void testUpdateCalculatedFieldNameOnCloud() throws Exception {
 | 
				
			||||||
        Device savedDevice = saveDeviceOnCloudAndVerifyDeliveryToEdge();
 | 
					        Device savedDevice = saveDeviceOnCloudAndVerifyDeliveryToEdge();
 | 
				
			||||||
 | 
				
			|||||||
@ -136,7 +136,7 @@ public class EdgeGrpcClient implements EdgeRpcClient {
 | 
				
			|||||||
                .setConnectRequestMsg(ConnectRequestMsg.newBuilder()
 | 
					                .setConnectRequestMsg(ConnectRequestMsg.newBuilder()
 | 
				
			||||||
                        .setEdgeRoutingKey(edgeKey)
 | 
					                        .setEdgeRoutingKey(edgeKey)
 | 
				
			||||||
                        .setEdgeSecret(edgeSecret)
 | 
					                        .setEdgeSecret(edgeSecret)
 | 
				
			||||||
                        .setEdgeVersion(EdgeVersion.V_4_0_0)
 | 
					                        .setEdgeVersion(EdgeVersion.V_4_1_0)
 | 
				
			||||||
                        .setMaxInboundMessageSize(maxInboundMessageSize)
 | 
					                        .setMaxInboundMessageSize(maxInboundMessageSize)
 | 
				
			||||||
                        .build())
 | 
					                        .build())
 | 
				
			||||||
                .build());
 | 
					                .build());
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user