Added test to cover admin settings fetching
This commit is contained in:
parent
364da6fea4
commit
3028d08d1f
@ -57,16 +57,19 @@ public class AdminSettingsEdgeEventFetcher implements EdgeEventFetcher {
|
||||
private static Pattern startPattern = Pattern.compile("<div class=\"content\".*?>");
|
||||
private static Pattern endPattern = Pattern.compile("<div class=\"footer\".*?>");
|
||||
|
||||
private static List<String> templatesNames = Arrays.asList("account.activated.ftl",
|
||||
private static List<String> templatesNames = Arrays.asList(
|
||||
"account.activated.ftl",
|
||||
"account.lockout.ftl",
|
||||
"activation.ftl",
|
||||
"password.was.reset.ftl",
|
||||
"reset.password.ftl",
|
||||
"state.disabled.ftl",
|
||||
"state.enabled.ftl",
|
||||
"state.warning.ftl",
|
||||
"test.ftl");
|
||||
|
||||
// TODO: fix format of next templates
|
||||
// "state.disabled.ftl",
|
||||
// "state.enabled.ftl",
|
||||
// "state.warning.ftl",
|
||||
|
||||
@Override
|
||||
public PageLink getPageLink(int pageSize) {
|
||||
return null;
|
||||
|
||||
@ -37,6 +37,7 @@ import org.thingsboard.server.common.data.page.PageLink;
|
||||
import org.thingsboard.server.common.data.security.Authority;
|
||||
import org.thingsboard.server.dao.model.ModelConstants;
|
||||
import org.thingsboard.server.edge.imitator.EdgeImitator;
|
||||
import org.thingsboard.server.gen.edge.v1.AdminSettingsUpdateMsg;
|
||||
import org.thingsboard.server.gen.edge.v1.AssetUpdateMsg;
|
||||
import org.thingsboard.server.gen.edge.v1.DeviceProfileUpdateMsg;
|
||||
import org.thingsboard.server.gen.edge.v1.DeviceUpdateMsg;
|
||||
@ -672,26 +673,26 @@ public abstract class BaseEdgeControllerTest extends AbstractControllerTest {
|
||||
EdgeImitator edgeImitator = new EdgeImitator("localhost", 7070, edge.getRoutingKey(), edge.getSecret());
|
||||
edgeImitator.ignoreType(UserCredentialsUpdateMsg.class);
|
||||
|
||||
edgeImitator.expectMessageAmount(7);
|
||||
edgeImitator.expectMessageAmount(11);
|
||||
edgeImitator.connect();
|
||||
Assert.assertTrue(edgeImitator.waitForMessages());
|
||||
|
||||
Assert.assertEquals(7, edgeImitator.getDownlinkMsgs().size());
|
||||
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
|
||||
Assert.assertEquals(4, edgeImitator.findAllMessagesByType(AdminSettingsUpdateMsg.class).size());
|
||||
|
||||
edgeImitator.expectMessageAmount(4);
|
||||
edgeImitator.expectMessageAmount(8);
|
||||
doPost("/api/edge/sync/" + edge.getId());
|
||||
Assert.assertTrue(edgeImitator.waitForMessages());
|
||||
|
||||
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());
|
||||
Assert.assertEquals(4, edgeImitator.findAllMessagesByType(AdminSettingsUpdateMsg.class).size());
|
||||
|
||||
edgeImitator.allowIgnoredTypes();
|
||||
try {
|
||||
|
||||
@ -86,6 +86,7 @@ import org.thingsboard.server.common.transport.adaptor.JsonConverter;
|
||||
import org.thingsboard.server.controller.AbstractControllerTest;
|
||||
import org.thingsboard.server.dao.edge.EdgeEventService;
|
||||
import org.thingsboard.server.edge.imitator.EdgeImitator;
|
||||
import org.thingsboard.server.gen.edge.v1.AdminSettingsUpdateMsg;
|
||||
import org.thingsboard.server.gen.edge.v1.AlarmUpdateMsg;
|
||||
import org.thingsboard.server.gen.edge.v1.AssetUpdateMsg;
|
||||
import org.thingsboard.server.gen.edge.v1.AttributeDeleteMsg;
|
||||
@ -172,7 +173,7 @@ abstract public class BaseEdgeTest extends AbstractControllerTest {
|
||||
installation();
|
||||
|
||||
edgeImitator = new EdgeImitator("localhost", 7070, edge.getRoutingKey(), edge.getSecret());
|
||||
edgeImitator.expectMessageAmount(9);
|
||||
edgeImitator.expectMessageAmount(13);
|
||||
edgeImitator.connect();
|
||||
|
||||
testReceivedInitialData();
|
||||
@ -328,9 +329,44 @@ abstract public class BaseEdgeTest extends AbstractControllerTest {
|
||||
|
||||
testAutoGeneratedCodeByProtobuf(ruleChainUpdateMsg);
|
||||
|
||||
validateAdminSettings();
|
||||
|
||||
log.info("Received data checked");
|
||||
}
|
||||
|
||||
private void validateAdminSettings() throws JsonProcessingException {
|
||||
List<AdminSettingsUpdateMsg> adminSettingsUpdateMsgs = edgeImitator.findAllMessagesByType(AdminSettingsUpdateMsg.class);
|
||||
Assert.assertEquals(4, adminSettingsUpdateMsgs.size());
|
||||
|
||||
for (AdminSettingsUpdateMsg adminSettingsUpdateMsg : adminSettingsUpdateMsgs) {
|
||||
if (adminSettingsUpdateMsg.getKey().equals("mail")) {
|
||||
validateMailAdminSettings(adminSettingsUpdateMsg);
|
||||
}
|
||||
if (adminSettingsUpdateMsg.getKey().equals("mailTemplates")) {
|
||||
validateMailTemplatesAdminSettings(adminSettingsUpdateMsg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void validateMailAdminSettings(AdminSettingsUpdateMsg adminSettingsUpdateMsg) throws JsonProcessingException {
|
||||
JsonNode jsonNode = mapper.readTree(adminSettingsUpdateMsg.getJsonValue());
|
||||
Assert.assertNotNull(jsonNode.get("mailFrom"));
|
||||
Assert.assertNotNull(jsonNode.get("smtpProtocol"));
|
||||
Assert.assertNotNull(jsonNode.get("smtpHost"));
|
||||
Assert.assertNotNull(jsonNode.get("smtpPort"));
|
||||
Assert.assertNotNull(jsonNode.get("timeout"));
|
||||
}
|
||||
|
||||
private void validateMailTemplatesAdminSettings(AdminSettingsUpdateMsg adminSettingsUpdateMsg) throws JsonProcessingException {
|
||||
JsonNode jsonNode = mapper.readTree(adminSettingsUpdateMsg.getJsonValue());
|
||||
Assert.assertNotNull(jsonNode.get("accountActivated"));
|
||||
Assert.assertNotNull(jsonNode.get("accountLockout"));
|
||||
Assert.assertNotNull(jsonNode.get("activation"));
|
||||
Assert.assertNotNull(jsonNode.get("passwordWasReset"));
|
||||
Assert.assertNotNull(jsonNode.get("resetPassword"));
|
||||
Assert.assertNotNull(jsonNode.get("test"));
|
||||
}
|
||||
|
||||
private void testDevices() throws Exception {
|
||||
log.info("Testing devices");
|
||||
|
||||
|
||||
@ -26,6 +26,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
import org.thingsboard.edge.rpc.EdgeGrpcClient;
|
||||
import org.thingsboard.edge.rpc.EdgeRpcClient;
|
||||
import org.thingsboard.server.gen.edge.v1.AdminSettingsUpdateMsg;
|
||||
import org.thingsboard.server.gen.edge.v1.AlarmUpdateMsg;
|
||||
import org.thingsboard.server.gen.edge.v1.AssetUpdateMsg;
|
||||
import org.thingsboard.server.gen.edge.v1.CustomerUpdateMsg;
|
||||
@ -167,6 +168,11 @@ public class EdgeImitator {
|
||||
|
||||
private ListenableFuture<List<Void>> processDownlinkMsg(DownlinkMsg downlinkMsg) {
|
||||
List<ListenableFuture<Void>> result = new ArrayList<>();
|
||||
if (downlinkMsg.getAdminSettingsUpdateMsgCount() > 0) {
|
||||
for (AdminSettingsUpdateMsg adminSettingsUpdateMsg : downlinkMsg.getAdminSettingsUpdateMsgList()) {
|
||||
result.add(saveDownlinkMsg(adminSettingsUpdateMsg));
|
||||
}
|
||||
}
|
||||
if (downlinkMsg.getDeviceUpdateMsgCount() > 0) {
|
||||
for (DeviceUpdateMsg deviceUpdateMsg : downlinkMsg.getDeviceUpdateMsgList()) {
|
||||
result.add(saveDownlinkMsg(deviceUpdateMsg));
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user