RequestKey { public static Builder builder(HttpMethod method, String url) { return new Builder(method, url); } private  RequestKey(Builder builder); private  RequestKey(Request request); static Builder builder(HttpMethod method, String url); static RequestKey create(Request request); HttpMethod getMethod(); String getUrl(); RequestHeaders getHeaders(); Charset getCharset(); byte[] getBody(); @Override int hashCode(); @Override boolean equals(Object obj); boolean equalsExtended(Object obj); @Override String toString();  }
@Test public void builder() throws Exception { assertThat(requestKey.getMethod(), equalTo(HttpMethod.GET)); assertThat(requestKey.getUrl(), equalTo("a")); assertThat(requestKey.getHeaders().size(), is(1)); assertThat(requestKey.getHeaders().fetch("my-header"), equalTo((Collection<String>) Arrays.asList("val"))); assertThat(requestKey.getCharset(), equalTo(StandardCharsets.UTF_16)); }