diff --git a/rule-engine/rule-engine-components/src/test/java/org/thingsboard/rule/engine/rest/TbHttpClientTest.java b/rule-engine/rule-engine-components/src/test/java/org/thingsboard/rule/engine/rest/TbHttpClientTest.java index 9834ef631d..4a2f085f81 100644 --- a/rule-engine/rule-engine-components/src/test/java/org/thingsboard/rule/engine/rest/TbHttpClientTest.java +++ b/rule-engine/rule-engine-components/src/test/java/org/thingsboard/rule/engine/rest/TbHttpClientTest.java @@ -21,13 +21,26 @@ import io.netty.channel.nio.NioEventLoopGroup; import org.junit.After; import org.junit.Before; import org.junit.Test; +import org.thingsboard.rule.engine.api.TbContext; +import org.thingsboard.rule.engine.credentials.AnonymousCredentials; +import org.thingsboard.rule.engine.credentials.ClientCredentials; +import org.thingsboard.server.common.data.id.DeviceId; +import org.thingsboard.server.common.data.id.EntityId; +import org.thingsboard.server.common.msg.TbMsg; +import org.thingsboard.server.common.msg.TbMsgMetaData; + +import java.util.Map; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.instanceOf; import static org.hamcrest.Matchers.is; import static org.mockito.ArgumentMatchers.any; import static org.mockito.BDDMockito.willCallRealMethod; +import static org.mockito.Mockito.doCallRealMethod; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; public class TbHttpClientTest { @@ -58,4 +71,23 @@ public class TbHttpClientTest { eventLoop = client.getSharedOrCreateEventLoopGroup(null); assertThat(eventLoop, instanceOf(NioEventLoopGroup.class)); } + + @Test + public void testProcessMessageWithJsonInUrlVariable() throws Exception{ + var config = mock(TbRestApiCallNodeConfiguration.class); + when(config.getCredentials()).thenReturn(new AnonymousCredentials()); + when(config.getRequestMethod()).thenReturn("GET"); + when(config.getRestEndpointUrlPattern()) + .thenReturn("http://localhost/api?data=[{\\\"test\\\":\\\"test\\\"}]"); + + var httpClient = new TbHttpClient(config, eventLoop); + var ctx = mock(TbContext.class); + var msg = TbMsg.newMsg( + "Main", "GET", new DeviceId(EntityId.NULL_UUID), + TbMsgMetaData.EMPTY, "" + ); + + + httpClient.processMessage(ctx, msg); + } } \ No newline at end of file