public HttpResponse get(Application application, String hostName, String serviceType, Path path, Query query) {
        return get(application, hostName, serviceType, path, query, null);
    }
@Test
    public void testNormalGetWithRewrite() throws Exception {
        ArgumentCaptor<HttpFetcher.Params> actualParams = ArgumentCaptor.forClass(HttpFetcher.Params.class);
        ArgumentCaptor<URI> actualUrl = ArgumentCaptor.forClass(URI.class);
        doAnswer(invoc -> new StaticResponse(200, "application/json",
                                             toJson(invoc.getArgument(1, URI.class), "/nested/path")))
                .when(fetcher).get(actualParams.capture(), actualUrl.capture());

        HttpResponse actualResponse = proxy.get(applicationMock, hostname, CLUSTERCONTROLLER_CONTAINER.serviceName,
                                                Path.parse("/service/path"),
                                                Query.parse("foo=%2F"),
                                                HttpURL.from(URI.create("https://api:666/api/path%2E/with?foo=%2F")));

        assertEquals(1, actualUrl.getAllValues().size());
        assertEquals(URI.create("http://" + hostname + ":" + port + "/service/path?foo=%2F"),
                     actualUrl.getValue());

        ByteArrayOutputStream buffer = new ByteArrayOutputStream();
        actualResponse.render(buffer);
        assertEquals("{\"url\":\"https://api:666/api/path./with/nested/path?foo=%2F\"}", buffer.toString(UTF_8));
    }