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