|
|
|
@ -102,6 +102,7 @@ import org.thingsboard.server.service.edge.instructions.EdgeUpgradeInstructionsS |
|
|
|
|
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.Collections; |
|
|
|
import java.util.Deque; |
|
|
|
import java.util.HashMap; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Map; |
|
|
|
@ -924,11 +925,11 @@ public class EdgeControllerTest extends AbstractControllerTest { |
|
|
|
|
|
|
|
verifyFetchersMsgs(edgeImitator, savedDevice); |
|
|
|
// verify queue msgs
|
|
|
|
Assert.assertTrue(popDeviceProfileMsg(edgeImitator.getDownlinkMsgs(), UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, "default")); |
|
|
|
Assert.assertTrue(popDeviceMsg(edgeImitator.getDownlinkMsgs(), UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, "Test Sync Edge Device 1")); |
|
|
|
Assert.assertTrue(popDeviceCredentialsMsg(edgeImitator.getDownlinkMsgs(), savedDevice.getId())); |
|
|
|
Assert.assertTrue(popAssetProfileMsg(edgeImitator.getDownlinkMsgs(), UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, "default")); |
|
|
|
Assert.assertTrue(popAssetMsg(edgeImitator.getDownlinkMsgs(), UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, "Test Sync Edge Asset 1")); |
|
|
|
Assert.assertTrue(popDeviceProfileMsg(edgeImitator.getDownlinkMsgsDeque(), UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, "default")); |
|
|
|
Assert.assertTrue(popDeviceMsg(edgeImitator.getDownlinkMsgsDeque(), UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, "Test Sync Edge Device 1")); |
|
|
|
Assert.assertTrue(popDeviceCredentialsMsg(edgeImitator.getDownlinkMsgsDeque(), savedDevice.getId())); |
|
|
|
Assert.assertTrue(popAssetProfileMsg(edgeImitator.getDownlinkMsgsDeque(), UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, "default")); |
|
|
|
Assert.assertTrue(popAssetMsg(edgeImitator.getDownlinkMsgsDeque(), UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, "Test Sync Edge Asset 1")); |
|
|
|
printQueueMsgsIfNotEmpty(edgeImitator); |
|
|
|
|
|
|
|
// 17 connect messages
|
|
|
|
@ -1008,32 +1009,32 @@ public class EdgeControllerTest extends AbstractControllerTest { |
|
|
|
} |
|
|
|
|
|
|
|
private void verifyFetchersMsgs(EdgeImitator edgeImitator, Device savedDevice) { |
|
|
|
Assert.assertTrue(popQueueMsg(edgeImitator.getDownlinkMsgs(), UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, "Main")); |
|
|
|
Assert.assertTrue(popRuleChainMsg(edgeImitator.getDownlinkMsgs(), UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, "Edge Root Rule Chain")); |
|
|
|
Assert.assertTrue(popRuleChainMetadataMsg(edgeImitator.getDownlinkMsgs(), UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, getEdgeRootRuleChainId(edgeImitator))); |
|
|
|
Assert.assertTrue(popAdminSettingsMsg(edgeImitator.getDownlinkMsgs(), "general")); |
|
|
|
Assert.assertTrue(popAdminSettingsMsg(edgeImitator.getDownlinkMsgs(), "mail")); |
|
|
|
Assert.assertTrue(popAdminSettingsMsg(edgeImitator.getDownlinkMsgs(), "connectivity")); |
|
|
|
Assert.assertTrue(popAdminSettingsMsg(edgeImitator.getDownlinkMsgs(), "jwt")); |
|
|
|
Assert.assertTrue(popDeviceProfileMsg(edgeImitator.getDownlinkMsgs(), UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, "default")); |
|
|
|
Assert.assertTrue(popDeviceProfileMsg(edgeImitator.getDownlinkMsgs(), UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, "default")); |
|
|
|
Assert.assertTrue(popAssetProfileMsg(edgeImitator.getDownlinkMsgs(), UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, "default")); |
|
|
|
Assert.assertTrue(popDeviceProfileMsg(edgeImitator.getDownlinkMsgs(), UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, "default")); |
|
|
|
Assert.assertTrue(popAssetProfileMsg(edgeImitator.getDownlinkMsgs(), UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, "default")); |
|
|
|
Assert.assertTrue(popUserCredentialsMsg(edgeImitator.getDownlinkMsgs(), currentUserId)); |
|
|
|
Assert.assertTrue(popUserMsg(edgeImitator.getDownlinkMsgs(), UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, TENANT_ADMIN_EMAIL, Authority.TENANT_ADMIN)); |
|
|
|
Assert.assertTrue(popCustomerMsg(edgeImitator.getDownlinkMsgs(), UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, "Public")); |
|
|
|
Assert.assertTrue(popDeviceProfileMsg(edgeImitator.getDownlinkMsgs(), UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, "default")); |
|
|
|
Assert.assertTrue(popDeviceMsg(edgeImitator.getDownlinkMsgs(), UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, "Test Sync Edge Device 1")); |
|
|
|
Assert.assertTrue(popDeviceCredentialsMsg(edgeImitator.getDownlinkMsgs(), savedDevice.getId())); |
|
|
|
Assert.assertTrue(popAssetProfileMsg(edgeImitator.getDownlinkMsgs(), UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, "default")); |
|
|
|
Assert.assertTrue(popAssetMsg(edgeImitator.getDownlinkMsgs(), UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, "Test Sync Edge Asset 1")); |
|
|
|
Assert.assertTrue(popTenantMsg(edgeImitator.getDownlinkMsgs(), tenantId)); |
|
|
|
Assert.assertTrue(popTenantProfileMsg(edgeImitator.getDownlinkMsgs(), tenantProfileId)); |
|
|
|
Assert.assertTrue(popSyncCompletedMsg(edgeImitator.getDownlinkMsgs())); |
|
|
|
Assert.assertTrue(popQueueMsg(edgeImitator.getDownlinkMsgsDeque(), UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, "Main")); |
|
|
|
Assert.assertTrue(popRuleChainMsg(edgeImitator.getDownlinkMsgsDeque(), UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, "Edge Root Rule Chain")); |
|
|
|
Assert.assertTrue(popRuleChainMetadataMsg(edgeImitator.getDownlinkMsgsDeque(), UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, getEdgeRootRuleChainId(edgeImitator))); |
|
|
|
Assert.assertTrue(popAdminSettingsMsg(edgeImitator.getDownlinkMsgsDeque(), "general")); |
|
|
|
Assert.assertTrue(popAdminSettingsMsg(edgeImitator.getDownlinkMsgsDeque(), "mail")); |
|
|
|
Assert.assertTrue(popAdminSettingsMsg(edgeImitator.getDownlinkMsgsDeque(), "connectivity")); |
|
|
|
Assert.assertTrue(popAdminSettingsMsg(edgeImitator.getDownlinkMsgsDeque(), "jwt")); |
|
|
|
Assert.assertTrue(popDeviceProfileMsg(edgeImitator.getDownlinkMsgsDeque(), UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, "default")); |
|
|
|
Assert.assertTrue(popDeviceProfileMsg(edgeImitator.getDownlinkMsgsDeque(), UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, "default")); |
|
|
|
Assert.assertTrue(popAssetProfileMsg(edgeImitator.getDownlinkMsgsDeque(), UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, "default")); |
|
|
|
Assert.assertTrue(popDeviceProfileMsg(edgeImitator.getDownlinkMsgsDeque(), UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, "default")); |
|
|
|
Assert.assertTrue(popAssetProfileMsg(edgeImitator.getDownlinkMsgsDeque(), UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, "default")); |
|
|
|
Assert.assertTrue(popUserCredentialsMsg(edgeImitator.getDownlinkMsgsDeque(), currentUserId)); |
|
|
|
Assert.assertTrue(popUserMsg(edgeImitator.getDownlinkMsgsDeque(), UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, TENANT_ADMIN_EMAIL, Authority.TENANT_ADMIN)); |
|
|
|
Assert.assertTrue(popCustomerMsg(edgeImitator.getDownlinkMsgsDeque(), UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, "Public")); |
|
|
|
Assert.assertTrue(popDeviceProfileMsg(edgeImitator.getDownlinkMsgsDeque(), UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, "default")); |
|
|
|
Assert.assertTrue(popDeviceMsg(edgeImitator.getDownlinkMsgsDeque(), UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, "Test Sync Edge Device 1")); |
|
|
|
Assert.assertTrue(popDeviceCredentialsMsg(edgeImitator.getDownlinkMsgsDeque(), savedDevice.getId())); |
|
|
|
Assert.assertTrue(popAssetProfileMsg(edgeImitator.getDownlinkMsgsDeque(), UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, "default")); |
|
|
|
Assert.assertTrue(popAssetMsg(edgeImitator.getDownlinkMsgsDeque(), UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, "Test Sync Edge Asset 1")); |
|
|
|
Assert.assertTrue(popTenantMsg(edgeImitator.getDownlinkMsgsDeque(), tenantId)); |
|
|
|
Assert.assertTrue(popTenantProfileMsg(edgeImitator.getDownlinkMsgsDeque(), tenantProfileId)); |
|
|
|
Assert.assertTrue(popSyncCompletedMsg(edgeImitator.getDownlinkMsgsDeque())); |
|
|
|
} |
|
|
|
|
|
|
|
private boolean popQueueMsg(List<AbstractMessage> messages, UpdateMsgType msgType, String name) { |
|
|
|
private boolean popQueueMsg(Deque<AbstractMessage> messages, UpdateMsgType msgType, String name) { |
|
|
|
for (AbstractMessage message : messages) { |
|
|
|
if (message instanceof QueueUpdateMsg queueUpdateMsg) { |
|
|
|
Queue queue = JacksonUtil.fromString(queueUpdateMsg.getEntity(), Queue.class, true); |
|
|
|
@ -1047,7 +1048,7 @@ public class EdgeControllerTest extends AbstractControllerTest { |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
private boolean popRuleChainMsg(List<AbstractMessage> messages, UpdateMsgType msgType, String name) { |
|
|
|
private boolean popRuleChainMsg(Deque<AbstractMessage> messages, UpdateMsgType msgType, String name) { |
|
|
|
for (AbstractMessage message : messages) { |
|
|
|
if (message instanceof RuleChainUpdateMsg ruleChainUpdateMsg) { |
|
|
|
RuleChain ruleChain = JacksonUtil.fromString(ruleChainUpdateMsg.getEntity(), RuleChain.class, true); |
|
|
|
@ -1063,7 +1064,7 @@ public class EdgeControllerTest extends AbstractControllerTest { |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
private boolean popRuleChainMetadataMsg(List<AbstractMessage> messages, UpdateMsgType msgType, RuleChainId ruleChainId) { |
|
|
|
private boolean popRuleChainMetadataMsg(Deque<AbstractMessage> messages, UpdateMsgType msgType, RuleChainId ruleChainId) { |
|
|
|
for (AbstractMessage message : messages) { |
|
|
|
if (message instanceof RuleChainMetadataUpdateMsg ruleChainMetadataUpdateMsg) { |
|
|
|
RuleChainMetaData ruleChainMetaData = JacksonUtil.fromString(ruleChainMetadataUpdateMsg.getEntity(), RuleChainMetaData.class, true); |
|
|
|
@ -1078,7 +1079,7 @@ public class EdgeControllerTest extends AbstractControllerTest { |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
private boolean popAdminSettingsMsg(List<AbstractMessage> messages, String key) { |
|
|
|
private boolean popAdminSettingsMsg(Deque<AbstractMessage> messages, String key) { |
|
|
|
for (AbstractMessage message : messages) { |
|
|
|
if (message instanceof AdminSettingsUpdateMsg adminSettingsUpdateMsg) { |
|
|
|
AdminSettings adminSettings = JacksonUtil.fromString(adminSettingsUpdateMsg.getEntity(), AdminSettings.class, true); |
|
|
|
@ -1092,7 +1093,7 @@ public class EdgeControllerTest extends AbstractControllerTest { |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
private boolean popDeviceProfileMsg(List<AbstractMessage> messages, UpdateMsgType msgType, String name) { |
|
|
|
private boolean popDeviceProfileMsg(Deque<AbstractMessage> messages, UpdateMsgType msgType, String name) { |
|
|
|
for (AbstractMessage message : messages) { |
|
|
|
if (message instanceof DeviceProfileUpdateMsg deviceProfileUpdateMsg) { |
|
|
|
DeviceProfile deviceProfile = JacksonUtil.fromString(deviceProfileUpdateMsg.getEntity(), DeviceProfile.class, true); |
|
|
|
@ -1107,7 +1108,7 @@ public class EdgeControllerTest extends AbstractControllerTest { |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
private boolean popDeviceMsg(List<AbstractMessage> messages, UpdateMsgType msgType, String name) { |
|
|
|
private boolean popDeviceMsg(Deque<AbstractMessage> messages, UpdateMsgType msgType, String name) { |
|
|
|
for (AbstractMessage message : messages) { |
|
|
|
if (message instanceof DeviceUpdateMsg deviceUpdateMsg) { |
|
|
|
Device device = JacksonUtil.fromString(deviceUpdateMsg.getEntity(), Device.class, true); |
|
|
|
@ -1122,7 +1123,7 @@ public class EdgeControllerTest extends AbstractControllerTest { |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
private boolean popDeviceCredentialsMsg(List<AbstractMessage> messages, DeviceId deviceId) { |
|
|
|
private boolean popDeviceCredentialsMsg(Deque<AbstractMessage> messages, DeviceId deviceId) { |
|
|
|
for (AbstractMessage message : messages) { |
|
|
|
if (message instanceof DeviceCredentialsUpdateMsg deviceCredentialsUpdateMsg) { |
|
|
|
DeviceCredentials deviceCredentials = JacksonUtil.fromString(deviceCredentialsUpdateMsg.getEntity(), DeviceCredentials.class, true); |
|
|
|
@ -1136,7 +1137,7 @@ public class EdgeControllerTest extends AbstractControllerTest { |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
private boolean popAssetProfileMsg(List<AbstractMessage> messages, UpdateMsgType msgType, String name) { |
|
|
|
private boolean popAssetProfileMsg(Deque<AbstractMessage> messages, UpdateMsgType msgType, String name) { |
|
|
|
for (AbstractMessage message : messages) { |
|
|
|
if (message instanceof AssetProfileUpdateMsg assetProfileUpdateMsg) { |
|
|
|
AssetProfile assetProfile = JacksonUtil.fromString(assetProfileUpdateMsg.getEntity(), AssetProfile.class, true); |
|
|
|
@ -1151,7 +1152,7 @@ public class EdgeControllerTest extends AbstractControllerTest { |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
private boolean popAssetMsg(List<AbstractMessage> messages, UpdateMsgType msgType, String name) { |
|
|
|
private boolean popAssetMsg(Deque<AbstractMessage> messages, UpdateMsgType msgType, String name) { |
|
|
|
for (AbstractMessage message : messages) { |
|
|
|
if (message instanceof AssetUpdateMsg assetUpdateMsg) { |
|
|
|
Asset asset = JacksonUtil.fromString(assetUpdateMsg.getEntity(), Asset.class, true); |
|
|
|
@ -1166,7 +1167,7 @@ public class EdgeControllerTest extends AbstractControllerTest { |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
private boolean popUserCredentialsMsg(List<AbstractMessage> messages, UserId userId) { |
|
|
|
private boolean popUserCredentialsMsg(Deque<AbstractMessage> messages, UserId userId) { |
|
|
|
for (AbstractMessage message : messages) { |
|
|
|
if (message instanceof UserCredentialsUpdateMsg userCredentialsUpdateMsg) { |
|
|
|
UserCredentials userCredentials = JacksonUtil.fromString(userCredentialsUpdateMsg.getEntity(), UserCredentials.class, true); |
|
|
|
@ -1180,7 +1181,7 @@ public class EdgeControllerTest extends AbstractControllerTest { |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
private boolean popUserMsg(List<AbstractMessage> messages, UpdateMsgType msgType, String email, Authority authority) { |
|
|
|
private boolean popUserMsg(Deque<AbstractMessage> messages, UpdateMsgType msgType, String email, Authority authority) { |
|
|
|
for (AbstractMessage message : messages) { |
|
|
|
if (message instanceof UserUpdateMsg userUpdateMsg) { |
|
|
|
User user = JacksonUtil.fromString(userUpdateMsg.getEntity(), User.class, true); |
|
|
|
@ -1196,7 +1197,7 @@ public class EdgeControllerTest extends AbstractControllerTest { |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
private boolean popCustomerMsg(List<AbstractMessage> messages, UpdateMsgType msgType, String title) { |
|
|
|
private boolean popCustomerMsg(Deque<AbstractMessage> messages, UpdateMsgType msgType, String title) { |
|
|
|
for (AbstractMessage message : messages) { |
|
|
|
if (message instanceof CustomerUpdateMsg customerUpdateMsg) { |
|
|
|
Customer customer = JacksonUtil.fromString(customerUpdateMsg.getEntity(), Customer.class, true); |
|
|
|
@ -1211,7 +1212,7 @@ public class EdgeControllerTest extends AbstractControllerTest { |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
private boolean popTenantMsg(List<AbstractMessage> messages, TenantId tenantId1) { |
|
|
|
private boolean popTenantMsg(Deque<AbstractMessage> messages, TenantId tenantId1) { |
|
|
|
for (AbstractMessage message : messages) { |
|
|
|
if (message instanceof TenantUpdateMsg tenantUpdateMsg) { |
|
|
|
Tenant tenant = JacksonUtil.fromString(tenantUpdateMsg.getEntity(), Tenant.class, true); |
|
|
|
@ -1226,7 +1227,7 @@ public class EdgeControllerTest extends AbstractControllerTest { |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
private boolean popTenantProfileMsg(List<AbstractMessage> messages, TenantProfileId tenantProfileId) { |
|
|
|
private boolean popTenantProfileMsg(Deque<AbstractMessage> messages, TenantProfileId tenantProfileId) { |
|
|
|
for (AbstractMessage message : messages) { |
|
|
|
if (message instanceof TenantProfileUpdateMsg tenantProfileUpdateMsg) { |
|
|
|
TenantProfile tenantProfile = JacksonUtil.fromString(tenantProfileUpdateMsg.getEntity(), TenantProfile.class, true); |
|
|
|
@ -1241,7 +1242,7 @@ public class EdgeControllerTest extends AbstractControllerTest { |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
private boolean popSyncCompletedMsg(List<AbstractMessage> messages) { |
|
|
|
private boolean popSyncCompletedMsg(Deque<AbstractMessage> messages) { |
|
|
|
for (AbstractMessage message : messages) { |
|
|
|
if (message instanceof SyncCompletedMsg) { |
|
|
|
messages.remove(message); |
|
|
|
|