@Test public void noHostHeaderOn11Request() throws Exception { final AtomicReference<RequestHandler> requestHandlerRef = new AtomicReference<>(); when(mockHttpListenerConfig.addRequestHandler( any(ListenerRequestMatcher.class), any(RequestHandler.class))) .then( new Answer<RequestHandlerManager>() { @Override public RequestHandlerManager answer(InvocationOnMock invocation) throws Throwable { requestHandlerRef.set((RequestHandler) invocation.getArguments()[1]); return null; } }); usePath("/"); HttpRequest request = buildGetRootRequest(HTTP_1_1); HttpRequestContext requestContext = buildRequestContext(request); HttpResponseReadyCallback responseCallback = mock(HttpResponseReadyCallback.class); requestHandlerRef.get().handleRequest(requestContext, responseCallback); assertResponse( responseCallback, BAD_REQUEST.getStatusCode(), BAD_REQUEST.getReasonPhrase(), "Missing 'host' header"); }
@Test public void eventCreationWithInvalidPath() throws Exception { final AtomicReference<RequestHandler> requestHandlerRef = new AtomicReference<>(); when(mockHttpListenerConfig.addRequestHandler( any(ListenerRequestMatcher.class), any(RequestHandler.class))) .then( new Answer<RequestHandlerManager>() { @Override public RequestHandlerManager answer(InvocationOnMock invocation) throws Throwable { requestHandlerRef.set((RequestHandler) invocation.getArguments()[1]); return null; } }); useInvalidPath("/"); assertThat(RequestContext.getEvent(), is(nullValue())); requestHandlerRef .get() .handleRequest(mock(HttpRequestContext.class), mock(HttpResponseReadyCallback.class)); assertThat(RequestContext.getEvent(), is(nullValue())); }
@Test public void eventCreation() throws Exception { final AtomicReference<RequestHandler> requestHandlerRef = new AtomicReference<>(); when(mockHttpListenerConfig.addRequestHandler( any(ListenerRequestMatcher.class), any(RequestHandler.class))) .then( new Answer<RequestHandlerManager>() { @Override public RequestHandlerManager answer(InvocationOnMock invocation) throws Throwable { requestHandlerRef.set((RequestHandler) invocation.getArguments()[1]); return null; } }); usePath("/"); assertThat(RequestContext.getEvent(), is(nullValue())); HttpResponseReadyCallback responseCallback = mock(HttpResponseReadyCallback.class); doAnswer( new Answer<Void>() { @Override public Void answer(InvocationOnMock invocation) throws Throwable { assertThat(RequestContext.getEvent(), not(nullValue())); return null; } }) .when(responseCallback) .responseReady(any(HttpResponse.class), any(ResponseStatusCallback.class)); HttpRequest request = buildGetRootRequest(HTTP_1_1); when(request.getHeaderValue("host")).thenReturn("localhost"); HttpRequestContext requestContext = buildRequestContext(request); requestHandlerRef.get().handleRequest(requestContext, responseCallback); assertThat(RequestContext.getEvent(), is(nullValue())); }