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.databind.JsonNode;
|
||||
import com.google.protobuf.AbstractMessage;
|
||||
import com.google.protobuf.InvalidProtocolBufferException;
|
||||
import com.google.protobuf.MessageLite;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.junit.After;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
@ -104,6 +106,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
|
||||
"queue.rule-engine.stats.enabled=false",
|
||||
"edges.storage.sleep_between_batches=1000"
|
||||
})
|
||||
@Slf4j
|
||||
abstract public class AbstractEdgeTest extends AbstractControllerTest {
|
||||
|
||||
private static final String THERMOSTAT_DEVICE_PROFILE_NAME = "Thermostat";
|
||||
@ -223,53 +226,77 @@ abstract public class AbstractEdgeTest extends AbstractControllerTest {
|
||||
validateEdgeConfiguration();
|
||||
|
||||
// 1 message from queue fetcher
|
||||
validateMsgsCnt(QueueUpdateMsg.class, 1);
|
||||
validateQueues();
|
||||
|
||||
// 1 from rule chain fetcher
|
||||
validateMsgsCnt(RuleChainUpdateMsg.class, 1);
|
||||
UUID ruleChainUUID = validateRuleChains();
|
||||
|
||||
// 1 from request message
|
||||
validateMsgsCnt(RuleChainMetadataUpdateMsg.class, 1);
|
||||
validateRuleChainMetadataUpdates(ruleChainUUID);
|
||||
|
||||
// 4 messages
|
||||
// - 2 from fetcher - system level ('mail', 'mailTemplates')
|
||||
// - 2 from fetcher - admin level ('mail', 'mailTemplates')
|
||||
validateMsgsCnt(AdminSettingsUpdateMsg.class, 4);
|
||||
validateAdminSettings();
|
||||
|
||||
// 4 messages
|
||||
// - 1 from default profile fetcher
|
||||
// - 2 from device profile fetcher (default and thermostat)
|
||||
// - 1 from device fetcher
|
||||
validateMsgsCnt(DeviceProfileUpdateMsg.class, 4);
|
||||
validateDeviceProfiles();
|
||||
|
||||
// 3 messages
|
||||
// - 1 from default profile fetcher
|
||||
// - 1 message from asset profile fetcher
|
||||
// - 1 message from asset fetcher
|
||||
validateMsgsCnt(AssetProfileUpdateMsg.class, 3);
|
||||
validateAssetProfiles();
|
||||
|
||||
// 1 from device fetcher
|
||||
validateMsgsCnt(DeviceUpdateMsg.class, 1);
|
||||
validateDevices();
|
||||
|
||||
// 1 from asset fetcher
|
||||
validateMsgsCnt(AssetUpdateMsg.class, 1);
|
||||
validateAssets();
|
||||
|
||||
// 1 message from public customer fetcher
|
||||
validateMsgsCnt(CustomerUpdateMsg.class, 1);
|
||||
validatePublicCustomer();
|
||||
|
||||
// 1 message from user fetcher
|
||||
validateMsgsCnt(UserUpdateMsg.class, 1);
|
||||
validateUsers();
|
||||
|
||||
// 1 from tenant fetcher
|
||||
validateMsgsCnt(TenantUpdateMsg.class, 1);
|
||||
validateTenant();
|
||||
|
||||
// 1 from tenant profile fetcher
|
||||
validateMsgsCnt(TenantProfileUpdateMsg.class, 1);
|
||||
validateTenantProfile();
|
||||
|
||||
// 1 message sync completed
|
||||
validateMsgsCnt(SyncCompletedMsg.class, 1);
|
||||
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 {
|
||||
EdgeConfiguration configuration = edgeImitator.getConfiguration();
|
||||
Assert.assertNotNull(configuration);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user