From 1c45a6288e26f757fe6e28cb41c0ce0a9f0ec6bc Mon Sep 17 00:00:00 2001 From: Sergey Matvienko Date: Fri, 18 Aug 2023 02:14:43 +0200 Subject: [PATCH] TbMathNode tests refactored with parametrized method sources --- .../rule/engine/math/TbMathNodeTest.java | 263 +++++++++--------- 1 file changed, 136 insertions(+), 127 deletions(-) diff --git a/rule-engine/rule-engine-components/src/test/java/org/thingsboard/rule/engine/math/TbMathNodeTest.java b/rule-engine/rule-engine-components/src/test/java/org/thingsboard/rule/engine/math/TbMathNodeTest.java index a3faf375e6..292292b89b 100644 --- a/rule-engine/rule-engine-components/src/test/java/org/thingsboard/rule/engine/math/TbMathNodeTest.java +++ b/rule-engine/rule-engine-components/src/test/java/org/thingsboard/rule/engine/math/TbMathNodeTest.java @@ -18,14 +18,15 @@ package org.thingsboard.rule.engine.math; import com.fasterxml.jackson.databind.node.ObjectNode; import com.google.common.util.concurrent.Futures; import lombok.extern.slf4j.Slf4j; -import org.junit.Assert; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; import org.mockito.ArgumentCaptor; import org.mockito.Mock; -import org.mockito.Mockito; import org.mockito.junit.jupiter.MockitoExtension; import org.thingsboard.common.util.AbstractListeningExecutor; import org.thingsboard.common.util.JacksonUtil; @@ -56,21 +57,27 @@ import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; import java.util.stream.IntStream; +import java.util.stream.Stream; import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyDouble; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.argThat; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.BDDMockito.willAnswer; -import static org.mockito.Mockito.lenient; +import static org.mockito.BDDMockito.willReturn; import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.timeout; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; @Slf4j @ExtendWith(MockitoExtension.class) @@ -82,7 +89,7 @@ public class TbMathNodeTest { private final EntityId originator = DeviceId.fromString("ccd71696-0586-422d-940e-755a41ec3b0d"); private final TenantId tenantId = TenantId.fromUUID(UUID.fromString("e7f46b23-0c7d-42f5-9b06-fc35ab17af8a")); - @Mock + @Mock(lenient = true) private TbContext ctx; @Mock private AttributesService attributesService; @@ -100,11 +107,11 @@ public class TbMathNodeTest { ruleEngineDispatcherExecutor = new RuleDispatcherExecutor(); ruleEngineDispatcherExecutor.init(); - lenient().when(ctx.getAttributesService()).thenReturn(attributesService); - lenient().when(ctx.getTelemetryService()).thenReturn(telemetryService); - lenient().when(ctx.getTimeseriesService()).thenReturn(tsService); - lenient().when(ctx.getTenantId()).thenReturn(tenantId); - lenient().when(ctx.getDbCallbackExecutor()).thenReturn(dbCallbackExecutor); + willReturn(dbCallbackExecutor).given(ctx).getDbCallbackExecutor(); + willReturn(attributesService).given(ctx).getAttributesService(); + willReturn(telemetryService).given(ctx).getTelemetryService(); + willReturn(tsService).given(ctx).getTimeseriesService(); + willReturn(tenantId).given(ctx).getTenantId(); } @AfterEach @@ -113,10 +120,6 @@ public class TbMathNodeTest { dbCallbackExecutor.executor().shutdownNow(); } - private void initMocks() { - Mockito.clearInvocations(ctx, attributesService, tsService, telemetryService); - } - private TbMathNode initNode(TbRuleNodeMathFunctionType operation, TbMathResult result, TbMathArgument... arguments) { return initNode(operation, null, result, arguments); } @@ -171,73 +174,39 @@ public class TbMathNodeTest { verify(ctx, timeout(TIMEOUT).times(2)).tellSuccess(msgCaptor.capture()); List resultMsgs = msgCaptor.getAllValues(); - Assert.assertFalse(resultMsgs.isEmpty()); - Assert.assertEquals(2, resultMsgs.size()); + assertFalse(resultMsgs.isEmpty()); + assertEquals(2, resultMsgs.size()); for (int i = 0; i < resultMsgs.size(); i++) { TbMsg outMsg = resultMsgs.get(i); - Assert.assertNotNull(outMsg); - Assert.assertNotNull(outMsg.getData()); + assertNotNull(outMsg); + assertNotNull(outMsg.getData()); var resultJson = JacksonUtil.toJsonNode(outMsg.getData()); String resultKey = i == 0 ? "firstMsgResult" : "secondMsgResult"; - Assert.assertTrue(resultJson.has(resultKey)); - Assert.assertEquals(i == 0 ? 10 : 17, resultJson.get(resultKey).asInt()); + assertTrue(resultJson.has(resultKey)); + assertEquals(i == 0 ? 10 : 17, resultJson.get(resultKey).asInt()); } } - @Test - public void testSimpleFunctions() { - testSimpleTwoArgumentFunction(TbRuleNodeMathFunctionType.ADD, 2.1, 2.2, 4.3); - testSimpleTwoArgumentFunction(TbRuleNodeMathFunctionType.SUB, 2.1, 2.2, -0.1); - testSimpleTwoArgumentFunction(TbRuleNodeMathFunctionType.MULT, 2.1, 2.0, 4.2); - testSimpleTwoArgumentFunction(TbRuleNodeMathFunctionType.DIV, 4.2, 2.0, 2.1); - - testSimpleOneArgumentFunction(TbRuleNodeMathFunctionType.SIN, Math.toRadians(30), 0.5); - testSimpleOneArgumentFunction(TbRuleNodeMathFunctionType.SIN, Math.toRadians(90), 1.0); - - testSimpleOneArgumentFunction(TbRuleNodeMathFunctionType.SINH, Math.toRadians(0), 0.0); - testSimpleOneArgumentFunction(TbRuleNodeMathFunctionType.COSH, Math.toRadians(0), 1.0); - - testSimpleOneArgumentFunction(TbRuleNodeMathFunctionType.COS, Math.toRadians(60), 0.5); - testSimpleOneArgumentFunction(TbRuleNodeMathFunctionType.COS, Math.toRadians(0), 1.0); - - testSimpleOneArgumentFunction(TbRuleNodeMathFunctionType.TAN, Math.toRadians(45), 1); - testSimpleOneArgumentFunction(TbRuleNodeMathFunctionType.TAN, Math.toRadians(0), 0); - testSimpleOneArgumentFunction(TbRuleNodeMathFunctionType.TANH, 90, 1); - - testSimpleOneArgumentFunction(TbRuleNodeMathFunctionType.ACOS, 0.5, 1.05); - testSimpleOneArgumentFunction(TbRuleNodeMathFunctionType.ASIN, 0.5, 0.52); - testSimpleOneArgumentFunction(TbRuleNodeMathFunctionType.ATAN, 0.5, 0.46); - testSimpleTwoArgumentFunction(TbRuleNodeMathFunctionType.ATAN2, 0.5, 0.3, 1.03); - - testSimpleOneArgumentFunction(TbRuleNodeMathFunctionType.EXP, 1, 2.72); - testSimpleOneArgumentFunction(TbRuleNodeMathFunctionType.EXPM1, 1, 1.72); - testSimpleOneArgumentFunction(TbRuleNodeMathFunctionType.ABS, -1, 1); - testSimpleOneArgumentFunction(TbRuleNodeMathFunctionType.SQRT, 4, 2); - testSimpleOneArgumentFunction(TbRuleNodeMathFunctionType.CBRT, 8, 2); - - testSimpleOneArgumentFunction(TbRuleNodeMathFunctionType.GET_EXP, 4, 2); - testSimpleTwoArgumentFunction(TbRuleNodeMathFunctionType.HYPOT, 4, 5, 6.4); - testSimpleOneArgumentFunction(TbRuleNodeMathFunctionType.LOG, 4, 1.39); - testSimpleOneArgumentFunction(TbRuleNodeMathFunctionType.LOG10, 4, 0.6); - testSimpleOneArgumentFunction(TbRuleNodeMathFunctionType.LOG1P, 4, 1.61); - - testSimpleOneArgumentFunction(TbRuleNodeMathFunctionType.CEIL, 1.55, 2); - testSimpleOneArgumentFunction(TbRuleNodeMathFunctionType.FLOOR, 23.97, 23); - testSimpleTwoArgumentFunction(TbRuleNodeMathFunctionType.FLOOR_DIV, 5, 3, 1); - testSimpleTwoArgumentFunction(TbRuleNodeMathFunctionType.FLOOR_MOD, 6, 3, 0); - - testSimpleTwoArgumentFunction(TbRuleNodeMathFunctionType.MIN, 5, 3, 3); - testSimpleTwoArgumentFunction(TbRuleNodeMathFunctionType.MAX, 5, 3, 5); - testSimpleTwoArgumentFunction(TbRuleNodeMathFunctionType.POW, 5, 3, 125); - testSimpleOneArgumentFunction(TbRuleNodeMathFunctionType.SIGNUM, 0.55, 1); - testSimpleOneArgumentFunction(TbRuleNodeMathFunctionType.RAD, 5, 0.09); - testSimpleOneArgumentFunction(TbRuleNodeMathFunctionType.DEG, 5, 286.48); + private static Stream testSimpleTwoArgumentFunction() { + return Stream.of( + Arguments.of(TbRuleNodeMathFunctionType.ADD, 2.1, 2.2, 4.3), + Arguments.of(TbRuleNodeMathFunctionType.SUB, 2.1, 2.2, -0.1), + Arguments.of(TbRuleNodeMathFunctionType.MULT, 2.1, 2.0, 4.2), + Arguments.of(TbRuleNodeMathFunctionType.DIV, 4.2, 2.0, 2.1), + Arguments.of(TbRuleNodeMathFunctionType.ATAN2, 0.5, 0.3, 1.03), + Arguments.of(TbRuleNodeMathFunctionType.HYPOT, 4, 5, 6.4), + Arguments.of(TbRuleNodeMathFunctionType.FLOOR_DIV, 5, 3, 1), + Arguments.of(TbRuleNodeMathFunctionType.FLOOR_MOD, 6, 3, 0), + Arguments.of(TbRuleNodeMathFunctionType.MIN, 5, 3, 3), + Arguments.of(TbRuleNodeMathFunctionType.MAX, 5, 3, 5), + Arguments.of(TbRuleNodeMathFunctionType.POW, 5, 3, 125) + ); } - private void testSimpleTwoArgumentFunction(TbRuleNodeMathFunctionType function, double arg1, double arg2, double result) { - initMocks(); - + @ParameterizedTest + @MethodSource + public void testSimpleTwoArgumentFunction(TbRuleNodeMathFunctionType function, double arg1, double arg2, double result) { var node = initNode(function, new TbMathResult(TbMathArgumentType.MESSAGE_BODY, "result", 2, false, false, null), new TbMathArgument(TbMathArgumentType.MESSAGE_BODY, "a"), @@ -252,16 +221,56 @@ public class TbMathNodeTest { verify(ctx, timeout(TIMEOUT).times(1)).tellSuccess(msgCaptor.capture()); TbMsg resultMsg = msgCaptor.getValue(); - Assert.assertNotNull(resultMsg); - Assert.assertNotNull(resultMsg.getData()); + assertNotNull(resultMsg); + assertNotNull(resultMsg.getData()); var resultJson = JacksonUtil.toJsonNode(resultMsg.getData()); - Assert.assertTrue(resultJson.has("result")); - Assert.assertEquals(result, resultJson.get("result").asDouble(), 0d); + assertTrue(resultJson.has("result")); + assertEquals(result, resultJson.get("result").asDouble(), 0d); } - private void testSimpleOneArgumentFunction(TbRuleNodeMathFunctionType function, double arg1, double result) { - initMocks(); + private static Stream testSimpleOneArgumentFunction() { + return Stream.of( + Arguments.of(TbRuleNodeMathFunctionType.SIN, Math.toRadians(30), 0.5), + Arguments.of(TbRuleNodeMathFunctionType.SIN, Math.toRadians(90), 1.0), + Arguments.of(TbRuleNodeMathFunctionType.SINH, Math.toRadians(0), 0.0), + Arguments.of(TbRuleNodeMathFunctionType.COSH, Math.toRadians(0), 1.0), + + Arguments.of(TbRuleNodeMathFunctionType.COS, Math.toRadians(60), 0.5), + Arguments.of(TbRuleNodeMathFunctionType.COS, Math.toRadians(0), 1.0), + + Arguments.of(TbRuleNodeMathFunctionType.TAN, Math.toRadians(45), 1), + Arguments.of(TbRuleNodeMathFunctionType.TAN, Math.toRadians(0), 0), + Arguments.of(TbRuleNodeMathFunctionType.TANH, 90, 1), + + Arguments.of(TbRuleNodeMathFunctionType.ACOS, 0.5, 1.05), + Arguments.of(TbRuleNodeMathFunctionType.ASIN, 0.5, 0.52), + Arguments.of(TbRuleNodeMathFunctionType.ATAN, 0.5, 0.46), + + Arguments.of(TbRuleNodeMathFunctionType.EXP, 1, 2.72), + Arguments.of(TbRuleNodeMathFunctionType.EXPM1, 1, 1.72), + Arguments.of(TbRuleNodeMathFunctionType.ABS, -1, 1), + Arguments.of(TbRuleNodeMathFunctionType.SQRT, 4, 2), + Arguments.of(TbRuleNodeMathFunctionType.CBRT, 8, 2), + + Arguments.of(TbRuleNodeMathFunctionType.GET_EXP, 4, 2), + + Arguments.of(TbRuleNodeMathFunctionType.LOG, 4, 1.39), + Arguments.of(TbRuleNodeMathFunctionType.LOG10, 4, 0.6), + Arguments.of(TbRuleNodeMathFunctionType.LOG1P, 4, 1.61), + + Arguments.of(TbRuleNodeMathFunctionType.CEIL, 1.55, 2), + Arguments.of(TbRuleNodeMathFunctionType.FLOOR, 23.97, 23), + + Arguments.of(TbRuleNodeMathFunctionType.SIGNUM, 0.55, 1), + Arguments.of(TbRuleNodeMathFunctionType.RAD, 5, 0.09), + Arguments.of(TbRuleNodeMathFunctionType.DEG, 5, 286.48) + ); + } + + @ParameterizedTest + @MethodSource + public void testSimpleOneArgumentFunction(TbRuleNodeMathFunctionType function, double arg1, double result) { var node = initNode(function, new TbMathResult(TbMathArgumentType.MESSAGE_BODY, "result", 2, false, false, null), new TbMathArgument(TbMathArgumentType.MESSAGE_BODY, "a") @@ -272,14 +281,14 @@ public class TbMathNodeTest { node.onMsg(ctx, msg); ArgumentCaptor msgCaptor = ArgumentCaptor.forClass(TbMsg.class); - verify(ctx, timeout(TIMEOUT)).tellSuccess(msgCaptor.capture()); + verify(ctx, timeout(TIMEOUT).times(1)).tellSuccess(msgCaptor.capture()); TbMsg resultMsg = msgCaptor.getValue(); - Assert.assertNotNull(resultMsg); - Assert.assertNotNull(resultMsg.getData()); + assertNotNull(resultMsg); + assertNotNull(resultMsg.getData()); var resultJson = JacksonUtil.toJsonNode(resultMsg.getData()); - Assert.assertTrue(resultJson.has("result")); - Assert.assertEquals(result, resultJson.get("result").asDouble(), 0d); + assertTrue(resultJson.has("result")); + assertEquals(result, resultJson.get("result").asDouble(), 0d); } @Test @@ -298,11 +307,11 @@ public class TbMathNodeTest { verify(ctx, timeout(TIMEOUT)).tellSuccess(msgCaptor.capture()); TbMsg resultMsg = msgCaptor.getValue(); - Assert.assertNotNull(resultMsg); - Assert.assertNotNull(resultMsg.getData()); + assertNotNull(resultMsg); + assertNotNull(resultMsg.getData()); var resultJson = JacksonUtil.toJsonNode(resultMsg.getData()); - Assert.assertTrue(resultJson.has("result")); - Assert.assertEquals(4, resultJson.get("result").asInt()); + assertTrue(resultJson.has("result")); + assertEquals(4, resultJson.get("result").asInt()); } @Test @@ -321,12 +330,12 @@ public class TbMathNodeTest { verify(ctx, timeout(TIMEOUT)).tellSuccess(msgCaptor.capture()); TbMsg resultMsg = msgCaptor.getValue(); - Assert.assertNotNull(resultMsg); - Assert.assertNotNull(resultMsg.getData()); - Assert.assertNotNull(resultMsg.getMetaData()); + assertNotNull(resultMsg); + assertNotNull(resultMsg.getData()); + assertNotNull(resultMsg.getMetaData()); var result = resultMsg.getMetaData().getValue("result"); - Assert.assertNotNull(result); - Assert.assertEquals("4", result); + assertNotNull(result); + assertEquals("4", result); } @Test @@ -339,10 +348,10 @@ public class TbMathNodeTest { TbMsg msg = TbMsg.newMsg(TbMsgType.POST_TELEMETRY_REQUEST, originator, TbMsgMetaData.EMPTY, JacksonUtil.newObjectNode().toString()); - Mockito.when(attributesService.find(tenantId, originator, DataConstants.SERVER_SCOPE, "a")) + when(attributesService.find(tenantId, originator, DataConstants.SERVER_SCOPE, "a")) .thenReturn(Futures.immediateFuture(Optional.of(new BaseAttributeKvEntry(System.currentTimeMillis(), new DoubleDataEntry("a", 2.0))))); - Mockito.when(tsService.findLatest(tenantId, originator, "b")) + when(tsService.findLatest(tenantId, originator, "b")) .thenReturn(Futures.immediateFuture(Optional.of(new BasicTsKvEntry(System.currentTimeMillis(), new LongDataEntry("b", 2L))))); node.onMsg(ctx, msg); @@ -351,11 +360,11 @@ public class TbMathNodeTest { verify(ctx, timeout(TIMEOUT)).tellSuccess(msgCaptor.capture()); TbMsg resultMsg = msgCaptor.getValue(); - Assert.assertNotNull(resultMsg); - Assert.assertNotNull(resultMsg.getData()); + assertNotNull(resultMsg); + assertNotNull(resultMsg.getData()); var resultJson = JacksonUtil.toJsonNode(resultMsg.getData()); - Assert.assertTrue(resultJson.has("result")); - Assert.assertEquals(4, resultJson.get("result").asInt()); + assertTrue(resultJson.has("result")); + assertEquals(4, resultJson.get("result").asInt()); } @Test @@ -373,11 +382,11 @@ public class TbMathNodeTest { verify(ctx, timeout(TIMEOUT)).tellSuccess(msgCaptor.capture()); TbMsg resultMsg = msgCaptor.getValue(); - Assert.assertNotNull(resultMsg); - Assert.assertNotNull(resultMsg.getData()); + assertNotNull(resultMsg); + assertNotNull(resultMsg.getData()); var resultJson = JacksonUtil.toJsonNode(resultMsg.getData()); - Assert.assertTrue(resultJson.has("result")); - Assert.assertEquals(2.236, resultJson.get("result").asDouble(), 0.0); + assertTrue(resultJson.has("result")); + assertEquals(2.236, resultJson.get("result").asDouble(), 0.0); } @Test @@ -395,11 +404,11 @@ public class TbMathNodeTest { verify(ctx, timeout(TIMEOUT)).tellSuccess(msgCaptor.capture()); TbMsg resultMsg = msgCaptor.getValue(); - Assert.assertNotNull(resultMsg); - Assert.assertNotNull(resultMsg.getData()); + assertNotNull(resultMsg); + assertNotNull(resultMsg.getData()); var result = resultMsg.getMetaData().getValue("result"); - Assert.assertNotNull(result); - Assert.assertEquals("2.236", result); + assertNotNull(result); + assertEquals("2.236", result); } @Test @@ -411,7 +420,7 @@ public class TbMathNodeTest { TbMsg msg = TbMsg.newMsg(TbMsgType.POST_TELEMETRY_REQUEST, originator, TbMsgMetaData.EMPTY, JacksonUtil.newObjectNode().put("a", 5).toString()); - Mockito.when(telemetryService.saveAttrAndNotify(any(), any(), anyString(), anyString(), anyDouble())) + when(telemetryService.saveAttrAndNotify(any(), any(), anyString(), anyString(), anyDouble())) .thenReturn(Futures.immediateFuture(null)); node.onMsg(ctx, msg); @@ -421,11 +430,11 @@ public class TbMathNodeTest { verify(telemetryService, times(1)).saveAttrAndNotify(any(), any(), anyString(), anyString(), anyDouble()); TbMsg resultMsg = msgCaptor.getValue(); - Assert.assertNotNull(resultMsg); - Assert.assertNotNull(resultMsg.getData()); + assertNotNull(resultMsg); + assertNotNull(resultMsg.getData()); var result = resultMsg.getMetaData().getValue("result"); - Assert.assertNotNull(result); - Assert.assertEquals("2.236", result); + assertNotNull(result); + assertEquals("2.236", result); } @Test @@ -436,7 +445,7 @@ public class TbMathNodeTest { ); TbMsg msg = TbMsg.newMsg(TbMsgType.POST_TELEMETRY_REQUEST, originator, TbMsgMetaData.EMPTY, JacksonUtil.newObjectNode().put("a", 5).toString()); - Mockito.when(telemetryService.saveAndNotify(any(), any(), any(TsKvEntry.class))) + when(telemetryService.saveAndNotify(any(), any(), any(TsKvEntry.class))) .thenReturn(Futures.immediateFuture(null)); node.onMsg(ctx, msg); @@ -446,11 +455,11 @@ public class TbMathNodeTest { verify(telemetryService, times(1)).saveAndNotify(any(), any(), any(TsKvEntry.class)); TbMsg resultMsg = msgCaptor.getValue(); - Assert.assertNotNull(resultMsg); - Assert.assertNotNull(resultMsg.getData()); + assertNotNull(resultMsg); + assertNotNull(resultMsg.getData()); var resultJson = JacksonUtil.toJsonNode(resultMsg.getData()); - Assert.assertTrue(resultJson.has("result")); - Assert.assertEquals(2.236, resultJson.get("result").asDouble(), 0.0); + assertTrue(resultJson.has("result")); + assertEquals(2.236, resultJson.get("result").asDouble(), 0.0); } @Test @@ -461,7 +470,7 @@ public class TbMathNodeTest { ); TbMsg msg = TbMsg.newMsg(TbMsgType.POST_TELEMETRY_REQUEST, originator, TbMsgMetaData.EMPTY, JacksonUtil.newObjectNode().put("a", 5).toString()); - Mockito.when(telemetryService.saveAndNotify(any(), any(), any(TsKvEntry.class))) + when(telemetryService.saveAndNotify(any(), any(), any(TsKvEntry.class))) .thenReturn(Futures.immediateFuture(null)); node.onMsg(ctx, msg); @@ -471,16 +480,16 @@ public class TbMathNodeTest { verify(telemetryService, times(1)).saveAndNotify(any(), any(), any(TsKvEntry.class)); TbMsg resultMsg = msgCaptor.getValue(); - Assert.assertNotNull(resultMsg); - Assert.assertNotNull(resultMsg.getData()); + assertNotNull(resultMsg); + assertNotNull(resultMsg.getData()); var resultMetadata = resultMsg.getMetaData().getValue("result"); var resultData = JacksonUtil.toJsonNode(resultMsg.getData()); - Assert.assertTrue(resultData.has("result")); - Assert.assertEquals(2.236, resultData.get("result").asDouble(), 0.0); + assertTrue(resultData.has("result")); + assertEquals(2.236, resultData.get("result").asDouble(), 0.0); - Assert.assertNotNull(resultMetadata); - Assert.assertEquals("2.236", resultMetadata); + assertNotNull(resultMetadata); + assertEquals("2.236", resultMetadata); } @Test @@ -498,11 +507,11 @@ public class TbMathNodeTest { verify(ctx, timeout(TIMEOUT)).tellSuccess(msgCaptor.capture()); TbMsg resultMsg = msgCaptor.getValue(); - Assert.assertNotNull(resultMsg); - Assert.assertNotNull(resultMsg.getData()); + assertNotNull(resultMsg); + assertNotNull(resultMsg.getData()); var result = resultMsg.getMetaData().getValue("result"); - Assert.assertNotNull(result); - Assert.assertEquals("2.236", result); + assertNotNull(result); + assertEquals("2.236", result); } @Test @@ -515,7 +524,7 @@ public class TbMathNodeTest { Throwable thrown = assertThrows(RuntimeException.class, () -> { node.onMsg(ctx, msg); }); - Assert.assertNotNull(thrown.getMessage()); + assertNotNull(thrown.getMessage()); } @Test @@ -529,7 +538,7 @@ public class TbMathNodeTest { Throwable thrown = assertThrows(RuntimeException.class, () -> { node.onMsg(ctx, msg); }); - Assert.assertNotNull(thrown.getMessage()); + assertNotNull(thrown.getMessage()); } @Test