CalculatedField functionality support for Edge

- fixed test
This commit is contained in:
yevhenii 2025-06-05 19:00:10 +03:00
parent 2761866e58
commit 411943d993
2 changed files with 13 additions and 6 deletions

View File

@ -38,6 +38,7 @@ import org.thingsboard.server.gen.edge.v1.UpdateMsgType;
import org.thingsboard.server.gen.edge.v1.UplinkMsg;
import org.thingsboard.server.gen.edge.v1.UplinkResponseMsg;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.UUID;
@ -57,14 +58,16 @@ public class CalculatedFieldEdgeTest extends AbstractEdgeTest {
SimpleCalculatedFieldConfiguration config = new SimpleCalculatedFieldConfiguration();
CalculatedField calculatedField = createSimpleCalculatedField(savedDevice.getId(), config);
edgeImitator.expectMessageAmount(1);
edgeImitator.expectMessageAmount(SYNC_MESSAGE_COUNT + 4);
CalculatedField savedCalculatedField = doPost("/api/calculatedField", calculatedField, CalculatedField.class);
doPost("/api/edge/sync/" + edge.getId());
Assert.assertTrue(edgeImitator.waitForMessages());
AbstractMessage latestMessage = edgeImitator.getLatestMessage();
List<AbstractMessage> downlinkMsgs = edgeImitator.getDownlinkMsgs();
AbstractMessage latestMessage = downlinkMsgs.stream().filter(downlinkMsg -> downlinkMsg instanceof CalculatedFieldUpdateMsg).findFirst().get();
Assert.assertTrue(latestMessage instanceof CalculatedFieldUpdateMsg);
CalculatedFieldUpdateMsg calculatedFieldUpdateMsg = (CalculatedFieldUpdateMsg) latestMessage;
Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, calculatedFieldUpdateMsg.getMsgType());
Assert.assertEquals(UpdateMsgType.ENTITY_UPDATED_RPC_MESSAGE, calculatedFieldUpdateMsg.getMsgType());
Assert.assertEquals(savedCalculatedField.getUuidId().getMostSignificantBits(), calculatedFieldUpdateMsg.getIdMSB());
Assert.assertEquals(savedCalculatedField.getUuidId().getLeastSignificantBits(), calculatedFieldUpdateMsg.getIdLSB());
CalculatedField calculatedFieldFromMsg = JacksonUtil.fromString(calculatedFieldUpdateMsg.getEntity(), CalculatedField.class, true);
@ -75,11 +78,13 @@ public class CalculatedFieldEdgeTest extends AbstractEdgeTest {
Assert.assertEquals(config, calculatedFieldFromMsg.getConfiguration());
// update calculatedField
edgeImitator.expectMessageAmount(1);
edgeImitator.expectMessageAmount(SYNC_MESSAGE_COUNT + 4);
savedCalculatedField.setName(UPDATED_CF_NAME);
savedCalculatedField = doPost("/api/calculatedField", savedCalculatedField, CalculatedField.class);
doPost("/api/edge/sync/" + edge.getId());
Assert.assertTrue(edgeImitator.waitForMessages());
latestMessage = edgeImitator.getLatestMessage();
downlinkMsgs = edgeImitator.getDownlinkMsgs();
latestMessage = downlinkMsgs.stream().filter(downlinkMsg -> downlinkMsg instanceof CalculatedFieldUpdateMsg).findFirst().get();
Assert.assertTrue(latestMessage instanceof CalculatedFieldUpdateMsg);
calculatedFieldUpdateMsg = (CalculatedFieldUpdateMsg) latestMessage;
calculatedFieldFromMsg = JacksonUtil.fromString(calculatedFieldUpdateMsg.getEntity(), CalculatedField.class, true);
@ -139,8 +144,9 @@ public class CalculatedFieldEdgeTest extends AbstractEdgeTest {
SimpleCalculatedFieldConfiguration config = new SimpleCalculatedFieldConfiguration();
CalculatedField calculatedField = createSimpleCalculatedField(savedDevice.getId(), config);
edgeImitator.expectMessageAmount(1);
edgeImitator.expectMessageAmount(SYNC_MESSAGE_COUNT + 4);
CalculatedField savedCalculatedField = doPost("/api/calculatedField", calculatedField, CalculatedField.class);
doPost("/api/edge/sync/" + edge.getId());
Assert.assertTrue(edgeImitator.waitForMessages());
UUID uuid = Uuids.timeBased();

View File

@ -524,6 +524,7 @@ public class EdgeServiceImpl extends AbstractCachedEntityService<EdgeCacheKey, E
case ENTITY_VIEW:
case DASHBOARD:
case RULE_CHAIN:
case CALCULATED_FIELD:
return relatedEdgesService.findEdgeIdsByEntityId(tenantId, entityId, pageLink);
case USER:
User userById = userService.findUserById(tenantId, new UserId(entityId.getId()));