/** * Convenience method to create the {@link MockServerHttpConnection} for GET / * with no headers nor entity. * * @return {@link MockServerHttpConnection}. */ public static MockServerHttpConnection mockConnection() { return new MockServerHttpConnectionImpl(mockRequest()); }
/** * Creates the {@link MockHttpRequestBuilder}. * * @return {@link MockHttpRequestBuilder}. */ public static MockHttpResponseBuilder mockResponse() { return new MockHttpResponseBuilderImpl((MockHttpRequestBuilderImpl) mockRequest("/mock")); }
@Override public HttpVersion getVersion() { this.ensureNoFailure(); return this.version; }
/** * Instantiate. * * @param request {@link MockHttpRequestBuilderImpl} for the * {@link MockHttpResponse}. */ private MockHttpResponseBuilderImpl(MockHttpRequestBuilderImpl request) { this.request = request; MockStreamBufferPool bufferPool = new MockStreamBufferPool(); HttpServerLocation serverLocation = new MockHttpServer(); ProcessAwareServerHttpConnectionManagedObject<ByteBuffer> serverHttpConnection = new ProcessAwareServerHttpConnectionManagedObject<>( serverLocation, false, () -> HttpMethod.GET, () -> "/", HttpVersion.HTTP_1_1, null, null, null, null, true, new MockHttpResponseWriter(this.request, this, null), bufferPool); this.delegate = new ProcessAwareHttpResponse<>(serverHttpConnection, HttpVersion.HTTP_1_1, new MockProcessAwareContext()); }
/** * Sends the {@link MockHttpRequestBuilder} and blocks waiting for the * {@link MockHttpResponse}. * * @param request {@link MockHttpRequestBuilder}. * @return {@link MockHttpResponse}. */ public MockHttpResponse send(MockHttpRequestBuilder request) { // Create the synchronous callback SynchronousMockHttpRequestCallback callback = new SynchronousMockHttpRequestCallback(); // Undertake the request this.send(request, callback); // Block waiting for response return callback.waitForResponse(1000); }
/** * Configures the {@link MockHttpServer} to be serviced by the * {@link DeployedOfficeInput}. * * @param input {@link DeployedOfficeInput}. * @return {@link MockHttpServer} to send {@link HttpRequest} instances. */ public static MockHttpServer configureMockHttpServer(DeployedOfficeInput input) { MockHttpServer httpServer = new MockHttpServer(); configureMockHttpServer(httpServer, input); return httpServer; }
/** * Convenience method to create a {@link MockHttpRequestBuilder}. * * @param requestUri Request URI. * @return {@link MockHttpRequestBuilder}. */ public static MockHttpRequestBuilder mockRequest(String requestUri) { MockHttpRequestBuilderImpl request = new MockHttpRequestBuilderImpl(); request.uri(requestUri); return request; }
@Override public MockHttpRequestBuilder cookie(String name, String value) { this.getCookieHeader().cookies.add(new MockCookie(name, value)); return this; }
/** * Instantiate. * * @param request {@link MockHttpRequestBuilder}. */ public MockServerHttpConnectionImpl(MockHttpRequestBuilder request) { this.delegate = createServerHttpConnection(request, new MockHttpServer(), this); this.delegate.setProcessAwareContext(new MockProcessAwareContext()); }
/** * Creates the {@link MockHttpRequestBuilder}. * * @return {@link MockHttpRequestBuilder}. */ public static MockHttpRequestBuilder mockRequest() { return new MockHttpRequestBuilderImpl(); }
@Override public HttpHeader materialiseHttpHeader() { return new MockCookieHttpHeader(this); } }
/** * Creates the {@link MockServerHttpConnection}. * * @param request {@link MockHttpRequestBuilder} for the {@link HttpRequest} of * the {@link MockServerHttpConnection}. * @return {@link MockServerHttpConnection}. */ public static MockServerHttpConnection mockConnection(MockHttpRequestBuilder request) { return new MockServerHttpConnectionImpl(request); }
@Override public String createClientUrl(boolean isSecure, String path) { return (isSecure ? "https" : "http") + "://" + this.getDomain() + path; }
@Override public MockHttpRequestBuilder cookies(MockHttpResponse cookies) { this.getCookieHeader().responses.add(cookies); return this; }
/** * Loads the {@link MockHttpRequestBuilder} with the credentials. * * @param request * {@link MockHttpRequestBuilder}. * @return Input {@link MockHttpRequestBuilder}. */ public MockHttpRequestBuilder loadHttpRequest(MockHttpRequestBuilder request) { return request.header("authorization", MockChallengeHttpSecuritySource.AUTHENTICATION_SCHEME + " " + this.userName + "," + this.password + "," + String.join(",", this.roles)); }
/** * Creates a mock {@link HttpResponseCookie}. * * @param name Name. * @param value value. * @return {@link HttpResponseCookie}. */ public static WritableHttpCookie mockResponseCookie(String name, String value) { return new WritableHttpCookie(name, value, new MockProcessAwareContext()); }
@Override public InputStream getEntity() { this.ensureNoFailure(); return this.entityInputStream; }
@Override public List<WritableHttpHeader> getHeaders() { this.ensureNoFailure(); return this.headers; }
@Override public HttpStatus getStatus() { this.ensureNoFailure(); return this.status; }
@Override public List<WritableHttpCookie> getCookies() { this.ensureNoFailure(); return this.cookies; }