Merge pull request #9582 from volodymyr-babak/edge-test-add-logging-of-failed-msgs
Added logging in case edge test failed on initial check
This commit is contained in:
commit
a8947eae9e
@ -17,8 +17,10 @@ package org.thingsboard.server.edge;
|
|||||||
|
|
||||||
import com.fasterxml.jackson.core.type.TypeReference;
|
import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
|
import com.google.protobuf.AbstractMessage;
|
||||||
import com.google.protobuf.InvalidProtocolBufferException;
|
import com.google.protobuf.InvalidProtocolBufferException;
|
||||||
import com.google.protobuf.MessageLite;
|
import com.google.protobuf.MessageLite;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
@ -104,6 +106,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
|
|||||||
"queue.rule-engine.stats.enabled=false",
|
"queue.rule-engine.stats.enabled=false",
|
||||||
"edges.storage.sleep_between_batches=1000"
|
"edges.storage.sleep_between_batches=1000"
|
||||||
})
|
})
|
||||||
|
@Slf4j
|
||||||
abstract public class AbstractEdgeTest extends AbstractControllerTest {
|
abstract public class AbstractEdgeTest extends AbstractControllerTest {
|
||||||
|
|
||||||
private static final String THERMOSTAT_DEVICE_PROFILE_NAME = "Thermostat";
|
private static final String THERMOSTAT_DEVICE_PROFILE_NAME = "Thermostat";
|
||||||
@ -223,53 +226,77 @@ abstract public class AbstractEdgeTest extends AbstractControllerTest {
|
|||||||
validateEdgeConfiguration();
|
validateEdgeConfiguration();
|
||||||
|
|
||||||
// 1 message from queue fetcher
|
// 1 message from queue fetcher
|
||||||
|
validateMsgsCnt(QueueUpdateMsg.class, 1);
|
||||||
validateQueues();
|
validateQueues();
|
||||||
|
|
||||||
// 1 from rule chain fetcher
|
// 1 from rule chain fetcher
|
||||||
|
validateMsgsCnt(RuleChainUpdateMsg.class, 1);
|
||||||
UUID ruleChainUUID = validateRuleChains();
|
UUID ruleChainUUID = validateRuleChains();
|
||||||
|
|
||||||
// 1 from request message
|
// 1 from request message
|
||||||
|
validateMsgsCnt(RuleChainMetadataUpdateMsg.class, 1);
|
||||||
validateRuleChainMetadataUpdates(ruleChainUUID);
|
validateRuleChainMetadataUpdates(ruleChainUUID);
|
||||||
|
|
||||||
// 4 messages
|
// 4 messages
|
||||||
// - 2 from fetcher - system level ('mail', 'mailTemplates')
|
// - 2 from fetcher - system level ('mail', 'mailTemplates')
|
||||||
// - 2 from fetcher - admin level ('mail', 'mailTemplates')
|
// - 2 from fetcher - admin level ('mail', 'mailTemplates')
|
||||||
|
validateMsgsCnt(AdminSettingsUpdateMsg.class, 4);
|
||||||
validateAdminSettings();
|
validateAdminSettings();
|
||||||
|
|
||||||
// 4 messages
|
// 4 messages
|
||||||
// - 1 from default profile fetcher
|
// - 1 from default profile fetcher
|
||||||
// - 2 from device profile fetcher (default and thermostat)
|
// - 2 from device profile fetcher (default and thermostat)
|
||||||
// - 1 from device fetcher
|
// - 1 from device fetcher
|
||||||
|
validateMsgsCnt(DeviceProfileUpdateMsg.class, 4);
|
||||||
validateDeviceProfiles();
|
validateDeviceProfiles();
|
||||||
|
|
||||||
// 3 messages
|
// 3 messages
|
||||||
// - 1 from default profile fetcher
|
// - 1 from default profile fetcher
|
||||||
// - 1 message from asset profile fetcher
|
// - 1 message from asset profile fetcher
|
||||||
// - 1 message from asset fetcher
|
// - 1 message from asset fetcher
|
||||||
|
validateMsgsCnt(AssetProfileUpdateMsg.class, 3);
|
||||||
validateAssetProfiles();
|
validateAssetProfiles();
|
||||||
|
|
||||||
// 1 from device fetcher
|
// 1 from device fetcher
|
||||||
|
validateMsgsCnt(DeviceUpdateMsg.class, 1);
|
||||||
validateDevices();
|
validateDevices();
|
||||||
|
|
||||||
// 1 from asset fetcher
|
// 1 from asset fetcher
|
||||||
|
validateMsgsCnt(AssetUpdateMsg.class, 1);
|
||||||
validateAssets();
|
validateAssets();
|
||||||
|
|
||||||
// 1 message from public customer fetcher
|
// 1 message from public customer fetcher
|
||||||
|
validateMsgsCnt(CustomerUpdateMsg.class, 1);
|
||||||
validatePublicCustomer();
|
validatePublicCustomer();
|
||||||
|
|
||||||
// 1 message from user fetcher
|
// 1 message from user fetcher
|
||||||
|
validateMsgsCnt(UserUpdateMsg.class, 1);
|
||||||
validateUsers();
|
validateUsers();
|
||||||
|
|
||||||
// 1 from tenant fetcher
|
// 1 from tenant fetcher
|
||||||
|
validateMsgsCnt(TenantUpdateMsg.class, 1);
|
||||||
validateTenant();
|
validateTenant();
|
||||||
|
|
||||||
// 1 from tenant profile fetcher
|
// 1 from tenant profile fetcher
|
||||||
|
validateMsgsCnt(TenantProfileUpdateMsg.class, 1);
|
||||||
validateTenantProfile();
|
validateTenantProfile();
|
||||||
|
|
||||||
// 1 message sync completed
|
// 1 message sync completed
|
||||||
|
validateMsgsCnt(SyncCompletedMsg.class, 1);
|
||||||
validateSyncCompleted();
|
validateSyncCompleted();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private <T extends AbstractMessage> void validateMsgsCnt(Class<T> clazz, int expectedMsgCnt) {
|
||||||
|
List<T> downlinkMsgsByType = edgeImitator.findAllMessagesByType(clazz);
|
||||||
|
if (downlinkMsgsByType.size() != expectedMsgCnt) {
|
||||||
|
List<AbstractMessage> downlinkMsgs = edgeImitator.getDownlinkMsgs();
|
||||||
|
for (AbstractMessage downlinkMsg : downlinkMsgs) {
|
||||||
|
log.error("{}\n{}", downlinkMsg.getClass(), downlinkMsg);
|
||||||
|
}
|
||||||
|
Assert.fail("Unexpected message count for " + clazz + "! Expected: " + expectedMsgCnt + ", but found: " + downlinkMsgsByType.size());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void validateEdgeConfiguration() throws Exception {
|
private void validateEdgeConfiguration() throws Exception {
|
||||||
EdgeConfiguration configuration = edgeImitator.getConfiguration();
|
EdgeConfiguration configuration = edgeImitator.getConfiguration();
|
||||||
Assert.assertNotNull(configuration);
|
Assert.assertNotNull(configuration);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user