diff --git a/application/src/test/java/org/thingsboard/server/controller/BaseEdgeControllerTest.java b/application/src/test/java/org/thingsboard/server/controller/BaseEdgeControllerTest.java index 246749881f..f18fd6c506 100644 --- a/application/src/test/java/org/thingsboard/server/controller/BaseEdgeControllerTest.java +++ b/application/src/test/java/org/thingsboard/server/controller/BaseEdgeControllerTest.java @@ -657,7 +657,7 @@ public abstract class BaseEdgeControllerTest extends AbstractControllerTest { Device device = new Device(); device.setName("Edge Device 1"); - device.setType("test"); + device.setType("default"); Device savedDevice = doPost("/api/device", device, Device.class); doPost("/api/edge/" + edge.getId().getId().toString() + "/device/" + savedDevice.getId().getId().toString(), Device.class); @@ -671,29 +671,27 @@ public abstract class BaseEdgeControllerTest extends AbstractControllerTest { EdgeImitator edgeImitator = new EdgeImitator("localhost", 7070, edge.getRoutingKey(), edge.getSecret()); edgeImitator.ignoreType(UserCredentialsUpdateMsg.class); + edgeImitator.expectMessageAmount(7); edgeImitator.connect(); Assert.assertTrue(edgeImitator.waitForMessages()); Assert.assertEquals(7, edgeImitator.getDownlinkMsgs().size()); - Assert.assertTrue(edgeImitator.findMessageByType(RuleChainUpdateMsg.class).isPresent()); - Assert.assertTrue(edgeImitator.findMessageByType(DeviceProfileUpdateMsg.class).isPresent()); - Assert.assertTrue(edgeImitator.findMessageByType(DeviceUpdateMsg.class).isPresent()); - Assert.assertTrue(edgeImitator.findMessageByType(AssetUpdateMsg.class).isPresent()); - Assert.assertTrue(edgeImitator.findMessageByType(UserUpdateMsg.class).isPresent()); - - edgeImitator.getDownlinkMsgs().clear(); + Assert.assertEquals(2, edgeImitator.findAllMessagesByType(RuleChainUpdateMsg.class).size()); // one msg during sync process, another from edge creation + Assert.assertEquals(1, edgeImitator.findAllMessagesByType(DeviceProfileUpdateMsg.class).size()); // one msg during sync process for 'default' device profile + Assert.assertEquals(1, edgeImitator.findAllMessagesByType(DeviceUpdateMsg.class).size()); // one msg once device assigned to edge + Assert.assertEquals(2, edgeImitator.findAllMessagesByType(AssetUpdateMsg.class).size()); // two msgs - one during sync process, and one more once asset assigned to edge + Assert.assertEquals(1, edgeImitator.findAllMessagesByType(UserUpdateMsg.class).size()); // one msg during sync process for tenant admin user - edgeImitator.expectMessageAmount(7); + edgeImitator.expectMessageAmount(4); doPost("/api/edge/sync/" + edge.getId()); Assert.assertTrue(edgeImitator.waitForMessages()); - Assert.assertEquals(7, edgeImitator.getDownlinkMsgs().size()); - Assert.assertTrue(edgeImitator.findMessageByType(RuleChainUpdateMsg.class).isPresent()); - Assert.assertTrue(edgeImitator.findMessageByType(DeviceProfileUpdateMsg.class).isPresent()); - Assert.assertTrue(edgeImitator.findMessageByType(DeviceUpdateMsg.class).isPresent()); - Assert.assertTrue(edgeImitator.findMessageByType(AssetUpdateMsg.class).isPresent()); - Assert.assertTrue(edgeImitator.findMessageByType(UserUpdateMsg.class).isPresent()); + Assert.assertEquals(4, edgeImitator.getDownlinkMsgs().size()); + Assert.assertEquals(1, edgeImitator.findAllMessagesByType(RuleChainUpdateMsg.class).size()); + Assert.assertEquals(1, edgeImitator.findAllMessagesByType(DeviceProfileUpdateMsg.class).size()); + Assert.assertEquals(1, edgeImitator.findAllMessagesByType(AssetUpdateMsg.class).size()); + Assert.assertEquals(1, edgeImitator.findAllMessagesByType(UserUpdateMsg.class).size()); edgeImitator.allowIgnoredTypes(); try { diff --git a/application/src/test/java/org/thingsboard/server/edge/BaseEdgeTest.java b/application/src/test/java/org/thingsboard/server/edge/BaseEdgeTest.java index 3953b6c642..842633d30d 100644 --- a/application/src/test/java/org/thingsboard/server/edge/BaseEdgeTest.java +++ b/application/src/test/java/org/thingsboard/server/edge/BaseEdgeTest.java @@ -65,7 +65,6 @@ import org.thingsboard.server.common.data.id.EntityId; import org.thingsboard.server.common.data.id.EntityIdFactory; import org.thingsboard.server.common.data.id.RuleChainId; import org.thingsboard.server.common.data.id.TenantId; -import org.thingsboard.server.common.data.id.UserId; import org.thingsboard.server.common.data.page.PageData; import org.thingsboard.server.common.data.page.PageLink; import org.thingsboard.server.common.data.query.EntityKeyValueType; @@ -193,60 +192,32 @@ abstract public class BaseEdgeTest extends AbstractControllerTest { @Test public void test() throws Exception { testReceivedInitialData(); - int expectedDownlinkSize = 9; - Assert.assertEquals(expectedDownlinkSize, edgeImitator.getDownlinkMsgs().size()); testDevices(); - expectedDownlinkSize = expectedDownlinkSize + 4; - Assert.assertEquals(expectedDownlinkSize, edgeImitator.getDownlinkMsgs().size()); testAssets(); - expectedDownlinkSize = expectedDownlinkSize + 4; - Assert.assertEquals(expectedDownlinkSize, edgeImitator.getDownlinkMsgs().size()); testRuleChains(); - expectedDownlinkSize = expectedDownlinkSize + 3; - Assert.assertEquals(expectedDownlinkSize, edgeImitator.getDownlinkMsgs().size()); testDashboards(); - expectedDownlinkSize = expectedDownlinkSize + 3; - Assert.assertEquals(expectedDownlinkSize, edgeImitator.getDownlinkMsgs().size()); testRelations(); - expectedDownlinkSize = expectedDownlinkSize + 2; - Assert.assertEquals(expectedDownlinkSize, edgeImitator.getDownlinkMsgs().size()); testAlarms(); - expectedDownlinkSize = expectedDownlinkSize + 3; - Assert.assertEquals(expectedDownlinkSize, edgeImitator.getDownlinkMsgs().size()); testEntityView(); - expectedDownlinkSize = expectedDownlinkSize + 3; - Assert.assertEquals(expectedDownlinkSize, edgeImitator.getDownlinkMsgs().size()); testCustomerAndNewUser(); - expectedDownlinkSize = expectedDownlinkSize + 3; - Assert.assertEquals(expectedDownlinkSize, edgeImitator.getDownlinkMsgs().size()); testWidgetsBundleAndWidgetType(); - expectedDownlinkSize = expectedDownlinkSize + 4; - Assert.assertEquals(expectedDownlinkSize, edgeImitator.getDownlinkMsgs().size()); testTimeseries(); - expectedDownlinkSize = expectedDownlinkSize + 1; - Assert.assertEquals(expectedDownlinkSize, edgeImitator.getDownlinkMsgs().size()); testAttributes(); - expectedDownlinkSize = expectedDownlinkSize + 3; - Assert.assertEquals(expectedDownlinkSize, edgeImitator.getDownlinkMsgs().size()); testSendMessagesToCloud(); - expectedDownlinkSize = expectedDownlinkSize + 9; - Assert.assertEquals(expectedDownlinkSize, edgeImitator.getDownlinkMsgs().size()); testRpcCall(); - expectedDownlinkSize = expectedDownlinkSize + 1; - Assert.assertEquals(expectedDownlinkSize, edgeImitator.getDownlinkMsgs().size()); } private Device findDeviceByName(String deviceName) throws Exception { @@ -442,7 +413,6 @@ abstract public class BaseEdgeTest extends AbstractControllerTest { log.info("Devices tested successfully"); } - private void testAssets() throws Exception { log.info("Testing assets"); diff --git a/application/src/test/java/org/thingsboard/server/edge/imitator/EdgeImitator.java b/application/src/test/java/org/thingsboard/server/edge/imitator/EdgeImitator.java index 6fff7d31f6..1496b0d061 100644 --- a/application/src/test/java/org/thingsboard/server/edge/imitator/EdgeImitator.java +++ b/application/src/test/java/org/thingsboard/server/edge/imitator/EdgeImitator.java @@ -77,9 +77,7 @@ public class EdgeImitator { @Getter private EdgeConfiguration configuration; @Getter - private UserId userId; - @Getter - private final List downlinkMsgs; + private List downlinkMsgs; public EdgeImitator(String host, int port, String routingKey, String routingSecret) throws NoSuchFieldException, IllegalAccessException { edgeRpcClient = new EdgeGrpcClient(); @@ -266,6 +264,9 @@ public class EdgeImitator { } public void expectMessageAmount(int messageAmount) { + // clear downlinks + downlinkMsgs.clear(); + messagesLatch = new CountDownLatch(messageAmount); }