@Override public CompletableFuture<DownstreamRequestFirstChunkInfo> getDownstreamRequestFirstChunkInfo( RequestInfo<?> request, Executor longRunningTaskExecutor, ChannelHandlerContext ctx ) { return CompletableFuture.completedFuture( new DownstreamRequestFirstChunkInfo( downstreamDestinationHost, downstreamDestinationPort, isDownstreamCallHttps, generateSimplePassthroughRequest( request, HttpUtils.replaceUriPathVariables(request, downstreamDestinationUriPath), request.getMethod(), ctx ), customCircuitBreaker, disableCircuitBreaker ) ); } }
@Override public CompletableFuture<DownstreamRequestFirstChunkInfo> getDownstreamRequestFirstChunkInfo( RequestInfo<?> request, Executor longRunningTaskExecutor, ChannelHandlerContext ctx ) { return CompletableFuture.completedFuture( new DownstreamRequestFirstChunkInfo( downstreamDestinationHost, downstreamDestinationPort, isDownstreamCallHttps, generateSimplePassthroughRequest( request, HttpUtils.replaceUriPathVariables(request, downstreamDestinationUriPath), request.getMethod(), ctx ), customCircuitBreaker, disableCircuitBreaker ) ); } }
@Test public void replaceUriPathVariables_works_as_expected() { // given RequestInfo<?> reqMock = mock(RequestInfo.class); Map<String, String> params = new HashMap<>(); params.put("foo", "fooVal"); params.put("bar", "barVal"); doReturn(params).when(reqMock).getPathParams(); doReturn("fooVal").when(reqMock).getPathParam("foo"); doReturn("barVal").when(reqMock).getPathParam("bar"); String uriWithPlaceholders = "/some/{foo}/path/{bar}"; // when String result = HttpUtils.replaceUriPathVariables(reqMock, uriWithPlaceholders); // then assertThat(result, is("/some/fooVal/path/barVal")); }