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.widget.WidgetType;
|
||||
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.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.relation.RelationService;
|
||||
import org.thingsboard.server.dao.timeseries.TimeseriesService;
|
||||
@ -113,14 +109,6 @@ public class DefaultEdgeRequestsService implements EdgeRequestsService {
|
||||
|
||||
@Autowired
|
||||
private CalculatedFieldService calculatedFieldService;
|
||||
@Autowired
|
||||
private DeviceService deviceService;
|
||||
@Autowired
|
||||
private DeviceProfileService deviceProfileService;
|
||||
@Autowired
|
||||
private AssetService assetService;
|
||||
@Autowired
|
||||
private AssetProfileService assetProfileService;
|
||||
|
||||
@Autowired
|
||||
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.id.EntityId;
|
||||
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.UpdateMsgType;
|
||||
import org.thingsboard.server.gen.edge.v1.UplinkMsg;
|
||||
@ -114,6 +115,43 @@ public class CalculatedFieldEdgeTest extends AbstractEdgeTest {
|
||||
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
|
||||
public void testUpdateCalculatedFieldNameOnCloud() throws Exception {
|
||||
Device savedDevice = saveDeviceOnCloudAndVerifyDeliveryToEdge();
|
||||
|
||||
@ -136,7 +136,7 @@ public class EdgeGrpcClient implements EdgeRpcClient {
|
||||
.setConnectRequestMsg(ConnectRequestMsg.newBuilder()
|
||||
.setEdgeRoutingKey(edgeKey)
|
||||
.setEdgeSecret(edgeSecret)
|
||||
.setEdgeVersion(EdgeVersion.V_4_0_0)
|
||||
.setEdgeVersion(EdgeVersion.V_4_1_0)
|
||||
.setMaxInboundMessageSize(maxInboundMessageSize)
|
||||
.build())
|
||||
.build());
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user