diff --git a/application/src/test/java/org/thingsboard/server/edge/CalculatedFieldEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/CalculatedFieldEdgeTest.java index 0f785c4063..da75225d11 100644 --- a/application/src/test/java/org/thingsboard/server/edge/CalculatedFieldEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/CalculatedFieldEdgeTest.java @@ -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 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(); diff --git a/dao/src/main/java/org/thingsboard/server/dao/edge/EdgeServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/edge/EdgeServiceImpl.java index 0655d05572..ebcfd7678a 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/edge/EdgeServiceImpl.java +++ b/dao/src/main/java/org/thingsboard/server/dao/edge/EdgeServiceImpl.java @@ -524,6 +524,7 @@ public class EdgeServiceImpl extends AbstractCachedEntityService