### Question:
StringUri { public static String withQuery(String uri, Map<String, ?> requestParams) { if (requestParams.isEmpty()) { return uri; } String requestParamsString = requestParams.entrySet().stream() .filter(entry -> entry.getKey() != null && entry.getValue() != null) .map(entry -> entry.getKey() + "=" + encode(entry.getValue().toString())) .collect(Collectors.joining("&")); if (requestParamsString.isEmpty()) { return uri; } return uri + "?" + requestParamsString; } private  StringUri(); static String fromElements(Object... elements); static String withQuery(String uri, Map<String, ?> requestParams); static String withQuery(String uri, String paramName, String paramValue); static Map<String, String> getQueryParamsFromUri(String uri); static String decode(String url); static boolean isUri(String stringToCheck); static boolean containsProtocol(String urlToCheck); static boolean containsQueryParam(String uri, String paramName); static String appendQueryParam(String uri, String paramName, String paramValue); static String removeAllQueryParams(String uri); static Optional<String> getVersion(String uri); static String copyQueryParams(String sourceUri, String targetUri);  }### Answer:
@Test void withQueryIgnoresParametersWithNullValues() { assertThat(StringUri.withQuery("http: .isEqualTo("http: }
@Test void withQueryCallsToStringOnValues() { assertThat(StringUri.withQuery("http: .isEqualTo("http: }