@Test public void getHeaderDelegatesToRequestInfo() { String headerName = "someheader"; String expectedValue = UUID.randomUUID().toString(); HttpHeaders headersMock = mock(HttpHeaders.class); doReturn(expectedValue).when(headersMock).get(headerName); setFieldOnRequestInfo("headers", headersMock); assertThat(adapter.getHeader(headerName), is(expectedValue)); }
@Test public void getRequestUriDelegatesToRequestInfoPath() { String expectedValue = UUID.randomUUID().toString(); setFieldOnRequestInfo("path", expectedValue); assertThat(adapter.getRequestUri(), is(expectedValue)); }
@Test public void getQueryStringDelegatesToRequestInfo() { String expectedValue = UUID.randomUUID().toString(); setFieldOnRequestInfo("uri", "/some/path?" + expectedValue); assertThat(adapter.getQueryString(), is(expectedValue)); }
@Test public void getHeaderMapReturnsEmptyMapIfNettyHeaderNamesReturnsNull() { HttpHeaders headersMock = mock(HttpHeaders.class); doReturn(null).when(headersMock).names(); setFieldOnRequestInfo("headers", headersMock); Map<String, List<String>> actualHeaderMap = adapter.getHeadersMap(); assertThat(actualHeaderMap, notNullValue()); assertThat(actualHeaderMap.isEmpty(), is(true)); }
@Test public void getRequestHttpMethodDelegatesToRequestInfo() { String expectedValue = UUID.randomUUID().toString(); setFieldOnRequestInfo("method", HttpMethod.valueOf(expectedValue)); assertThat(adapter.getRequestHttpMethod(), is(expectedValue)); }
@Test public void getHeaderMapIgnoresHeadersWhereNettyGetHeadersMethodReturnsNull() { Map<String, List<String>> expectedHeaderMap = new TreeMap<>(MapBuilder.<String, List<String>>builder() .put("header1", Arrays.asList("h1val1")) .build()); HttpHeaders headersMock = mock(HttpHeaders.class); doReturn(new HashSet<>(Arrays.asList("header1", "header2"))).when(headersMock).names(); doReturn(expectedHeaderMap.get("header1")).when(headersMock).getAll("header1"); doReturn(null).when(headersMock).getAll("header2"); setFieldOnRequestInfo("headers", headersMock); assertThat(adapter.getHeadersMap(), is(expectedHeaderMap)); }
@Test public void getHeaderMapDelegatesToRequestInfoAndCachesResult() { Map<String, List<String>> expectedHeaderMap = new TreeMap<>(MapBuilder.<String, List<String>>builder() .put("header1", Arrays.asList("h1val1")) .put("header2", Arrays.asList("h2val1", "h2val2")) .build()); HttpHeaders nettyHeaders = new DefaultHttpHeaders(); for (Map.Entry<String, List<String>> headerEntry : expectedHeaderMap.entrySet()) { nettyHeaders.add(headerEntry.getKey(), headerEntry.getValue()); } setFieldOnRequestInfo("headers", nettyHeaders); Map<String, List<String>> actualHeaderMap = adapter.getHeadersMap(); assertThat(actualHeaderMap, is(expectedHeaderMap)); assertThat(adapter.getHeadersMap(), sameInstance(actualHeaderMap)); }
@Test public void getHeadersDelegatesToRequestInfo() { Pair<String, List<String>> header1 = Pair.of("header1", Arrays.asList("h1val1")); Pair<String, List<String>> header2 = Pair.of("header2", Arrays.asList("h2val1", "h2val2")); Map<String, List<String>> expectedHeaderMap = new TreeMap<>(MapBuilder.<String, List<String>>builder() .put(header1.getKey(), header1.getValue()) .put(header2.getKey(), header2.getValue()) .build()); HttpHeaders headersMock = mock(HttpHeaders.class); doReturn(expectedHeaderMap.keySet()).when(headersMock).names(); for (Map.Entry<String, List<String>> entry : expectedHeaderMap.entrySet()) { doReturn(entry.getValue()).when(headersMock).getAll(entry.getKey()); } setFieldOnRequestInfo("headers", headersMock); assertThat(adapter.getHeaders(header1.getKey()), is(header1.getValue())); assertThat(adapter.getHeaders(header2.getKey()), is(header2.getValue())); }