From 5dbb13aba0b04f5ac814db485dfece5b212fc1c7 Mon Sep 17 00:00:00 2001 From: ShvaykaD Date: Mon, 20 Nov 2023 14:39:17 +0200 Subject: [PATCH] added test testUpgradeRuleNodeConfigurationWithNewConfigAndOldConfigVersion --- .../server/utils/TbNodeUpgradeUtilsTest.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/application/src/test/java/org/thingsboard/server/utils/TbNodeUpgradeUtilsTest.java b/application/src/test/java/org/thingsboard/server/utils/TbNodeUpgradeUtilsTest.java index 483772301b..c7f987f2fe 100644 --- a/application/src/test/java/org/thingsboard/server/utils/TbNodeUpgradeUtilsTest.java +++ b/application/src/test/java/org/thingsboard/server/utils/TbNodeUpgradeUtilsTest.java @@ -21,6 +21,8 @@ import org.junit.Test; import org.thingsboard.common.util.JacksonUtil; import org.thingsboard.rule.engine.metadata.TbGetAttributesNode; import org.thingsboard.rule.engine.metadata.TbGetAttributesNodeConfiguration; +import org.thingsboard.rule.engine.metadata.TbGetCustomerAttributeNode; +import org.thingsboard.rule.engine.metadata.TbGetEntityDataNodeConfiguration; import org.thingsboard.server.common.data.rule.RuleNode; import org.thingsboard.server.service.component.RuleNodeClassInfo; @@ -102,4 +104,30 @@ public class TbNodeUpgradeUtilsTest { } + @Test + public void testUpgradeRuleNodeConfigurationWithNewConfigAndOldConfigVersion() throws Exception { + // GIVEN + var node = new RuleNode(); + var nodeInfo = mock(RuleNodeClassInfo.class); + var nodeConfigClazz = TbGetEntityDataNodeConfiguration.class; + var annotation = mock(org.thingsboard.rule.engine.api.RuleNode.class); + var defaultConfig = JacksonUtil.valueToTree(nodeConfigClazz.getDeclaredConstructor().newInstance().defaultConfiguration()); + + when(nodeInfo.getClazz()).thenReturn((Class) TbGetCustomerAttributeNode.class); + when(nodeInfo.getCurrentVersion()).thenReturn(1); + when(nodeInfo.getAnnotation()).thenReturn(annotation); + when(annotation.configClazz()).thenReturn((Class) nodeConfigClazz); + + String versionOneDefaultConfig = "{\"fetchTo\":\"METADATA\"," + + "\"dataMapping\":{\"alarmThreshold\":\"threshold\"}," + + "\"dataToFetch\":\"ATTRIBUTES\"}"; + node.setConfiguration(JacksonUtil.toJsonNode(versionOneDefaultConfig)); + // WHEN + TbNodeUpgradeUtils.upgradeConfigurationAndVersion(node, nodeInfo); + // THEN + Assertions.assertThat(node.getConfiguration()).isEqualTo(defaultConfig); + Assertions.assertThat(node.getConfigurationVersion()).isEqualTo(1); + + } + }