private void setHeaderIfNotAlreadyExists(HttpResponse response, String name, String value) { if (response.getFirstHeader(name).isEmpty()) { response.withHeader(name, value); } }
response = response() .withHeader(HttpHeaderNames.CONTENT_TYPE.toString(), MIME_MAP.get(extension)) .withHeader(HttpHeaderNames.CONTENT_LENGTH.toString(), String.valueOf(content.length())) .withBody(content); } else { response = response() .withHeader(HttpHeaderNames.CONTENT_TYPE.toString(), MIME_MAP.get(extension)) .withHeader(HttpHeaderNames.CONTENT_LENGTH.toString(), String.valueOf(bytes.length)) .withBody(bytes); response.withHeader(HttpHeaderNames.CONNECTION.toString(), HttpHeaderValues.KEEP_ALIVE.toString());
@Override public void writeResponse(HttpRequest request, HttpResponse response, boolean apiResponse) { if (response == null) { response = notFoundResponse(); } if (enableCORSForAllResponses()) { addCORSHeaders.addCORSHeaders(request, response); } else if (apiResponse && enableCORSForAPI()) { addCORSHeaders.addCORSHeaders(request, response); } if (apiResponse) { response.withHeader("version", org.mockserver.Version.getVersion()); final String path = request.getPath().getValue(); if (!path.startsWith(PATH_PREFIX)) { response.withHeader("deprecated", "\"" + path + "\" is deprecated use \"" + PATH_PREFIX + path + "\" instead"); } } addConnectionHeader(request, response); writeAndCloseSocket(ctx, request, response); }
@Override public void writeResponse(HttpRequest request, HttpResponse response, boolean apiResponse) { if (response == null) { response = notFoundResponse(); } if (enableCORSForAllResponses()) { addCORSHeaders.addCORSHeaders(request, response); } else if (apiResponse && enableCORSForAPI()) { addCORSHeaders.addCORSHeaders(request, response); } if (apiResponse) { response.withHeader("version", org.mockserver.Version.getVersion()); final String path = request.getPath().getValue(); if (!path.startsWith(PATH_PREFIX)) { response.withHeader("deprecated", "\"" + path + "\" is deprecated use \"" + PATH_PREFIX + path + "\" instead"); } } addConnectionHeader(request, response); mockServerResponseToHttpServletResponseEncoder.mapMockServerResponseToHttpServletResponse(response, httpServletResponse); }
ctx.writeAndFlush(response() .withStatusCode(PROXY_AUTHENTICATION_REQUIRED.code()) .withHeader(PROXY_AUTHENTICATE.toString(), "Basic realm=\"" + ConfigurationProperties.proxyAuthenticationRealm().replace("\"", "\\\"") + "\"")); } else { ctx.channel().attr(PROXYING).set(Boolean.TRUE);
private void returnNotFound(ResponseWriter responseWriter, HttpRequest request) { HttpResponse response = notFoundResponse(); if (request.getHeaders().containsEntry("x-forwarded-by", "MockServer")) { response.withHeader("x-forwarded-by", "MockServer"); mockServerLogger.trace(request, "no expectation for:{}returning response:{}", request, notFoundResponse()); } else { httpStateHandler.log(new RequestLogEntry(request)); mockServerLogger.info(EXPECTATION_NOT_MATCHED, request, "no expectation for:{}returning response:{}", request, notFoundResponse()); } responseWriter.writeResponse(request, response, false); } }
@Test public void testHeartbeatReplicationWithResponseBody() throws Exception { InstanceInfo remoteInfo = new InstanceInfo(this.instanceInfo); remoteInfo.setStatus(InstanceStatus.DOWN); byte[] responseBody = toGzippedJson(remoteInfo); serverMockClient.when( request() .withMethod("PUT") .withHeader(header(PeerEurekaNode.HEADER_REPLICATION, "true")) .withPath("/eureka/v2/apps/" + this.instanceInfo.getAppName() + '/' + this.instanceInfo.getId()) ).respond( response() .withStatusCode(Status.CONFLICT.getStatusCode()) .withHeader(header("Content-Type", MediaType.APPLICATION_JSON)) .withHeader(header("Content-Encoding", "gzip")) .withBody(responseBody) ); EurekaHttpResponse<InstanceInfo> response = replicationClient.sendHeartBeat(this.instanceInfo.getAppName(), this.instanceInfo.getId(), this.instanceInfo, null); assertThat(response.getStatusCode(), is(equalTo(Status.CONFLICT.getStatusCode()))); assertThat(response.getEntity(), is(notNullValue())); }
@Test public void testHeartbeatReplicationWithResponseBody() throws Exception { InstanceInfo remoteInfo = new InstanceInfo(this.instanceInfo); remoteInfo.setStatus(InstanceStatus.DOWN); byte[] responseBody = toGzippedJson(remoteInfo); serverMockClient.when( request() .withMethod("PUT") .withHeader(header(PeerEurekaNode.HEADER_REPLICATION, "true")) .withPath("/eureka/v2/apps/" + this.instanceInfo.getAppName() + '/' + this.instanceInfo.getId()) ).respond( response() .withStatusCode(Status.CONFLICT.getStatusCode()) .withHeader(header("Content-Type", MediaType.APPLICATION_JSON)) .withHeader(header("Content-Encoding", "gzip")) .withBody(responseBody) ); EurekaHttpResponse<InstanceInfo> response = replicationClient.sendHeartBeat(this.instanceInfo.getAppName(), this.instanceInfo.getId(), this.instanceInfo, null); assertThat(response.getStatusCode(), is(equalTo(Status.CONFLICT.getStatusCode()))); assertThat(response.getEntity(), is(notNullValue())); }
assertEquals( response("some_body_one") .withHeader("some", "header") .withHeader("cookie", "some=parameter") .withHeader("set-cookie", "some=parameter") .withCookie("some", "parameter"), makeRequest(
.withHeader(CONTENT_TYPE.toString(), MediaType.create("text", "plain").withCharset(StandardCharsets.UTF_8).toString()) .withBody(body) ); .withHeader(CONTENT_TYPE.toString(), MediaType.create("text", "plain").withCharset(StandardCharsets.UTF_8).toString()) .withStatusCode(OK_200.code()) .withReasonPhrase(OK_200.reasonPhrase()) .withHeader(CONTENT_TYPE.toString(), MediaType.create("text", "plain").withCharset(StandardCharsets.UTF_8).toString()) .withStatusCode(OK_200.code()) .withReasonPhrase(OK_200.reasonPhrase())
.withHeader(CONTENT_TYPE.toString(), MediaType.create("text", "plain").withCharset(StandardCharsets.UTF_16).toString()) .withStatusCode(OK_200.code()) .withReasonPhrase(OK_200.reasonPhrase()) .withHeader(CONTENT_TYPE.toString(), MediaType.create("text", "plain").withCharset(StandardCharsets.UTF_16).toString()) .withStatusCode(OK_200.code()) .withReasonPhrase(OK_200.reasonPhrase())
.withStatusCode(OK_200.code()) .withReasonPhrase(OK_200.reasonPhrase()) .withHeader("name", "value") .withBody("some_request_body"), makeRequest( .withStatusCode(OK_200.code()) .withReasonPhrase(OK_200.reasonPhrase()) .withHeader("name", "value") .withBody("some_request_body"), makeRequest(
.withHeader(CONTENT_TYPE.toString(), MediaType.create("text", "plain").withCharset(StandardCharsets.UTF_8).toString()) .withStatusCode(OK_200.code()) .withReasonPhrase(OK_200.reasonPhrase()) .withHeader(CONTENT_TYPE.toString(), MediaType.create("text", "plain").withCharset(StandardCharsets.UTF_8).toString()) .withStatusCode(OK_200.code()) .withReasonPhrase(OK_200.reasonPhrase())
.withReasonPhrase(OK_200.reasonPhrase()) .withCookie("name", "value") .withHeader("set-cookie", "name=value") .withBody("{\"method\":\"GET\",\"path\":\"/some_path\",\"body\":\"some_request_body\"}"), makeRequest( .withReasonPhrase(OK_200.reasonPhrase()) .withCookie("name", "value") .withHeader("set-cookie", "name=value") .withBody("{\"method\":\"GET\",\"path\":\"/some_path\",\"body\":\"some_request_body\"}"), makeRequest(
.withHeader(CONTENT_TYPE.toString(), MediaType.create("text", "plain").withCharset(StandardCharsets.UTF_8).toString()) .withStatusCode(OK_200.code()) .withReasonPhrase(OK_200.reasonPhrase()) .withHeader(CONTENT_TYPE.toString(), MediaType.create("text", "plain").withCharset(StandardCharsets.UTF_8).toString()) .withStatusCode(OK_200.code()) .withReasonPhrase(OK_200.reasonPhrase())
response() .withStatusCode(302) .withHeader(new Header("Location", targetServerBaseUri + "/eureka/v2/apps/")) ); targetServerMockClient.client.when( response() .withStatusCode(200) .withHeader(new Header("Content-Type", "application/json")) .withBody(fullFetchJson) ); response() .withStatusCode(200) .withHeader(new Header("Content-Type", "application/json")) .withBody(deltaFetchJson) );
response() .withStatusCode(302) .withHeader(new Header("Location", targetServerBaseUri + "/eureka/v2/apps/")) ); targetServerMockClient.client.when( response() .withStatusCode(200) .withHeader(new Header("Content-Type", "application/json")) .withBody(fullFetchJson1) ); response() .withStatusCode(200) .withHeader(new Header("Content-Type", "application/json")) .withBody(fullFetchJson2) );
public void addResponseHeader(String headerName, String headerValue) { response.withHeader(headerName, headerValue); }
private void setHeaderIfNotAlreadyExists(HttpResponse response, String name, String value) { if (response.getFirstHeader(name).isEmpty()) { response.withHeader(name, value); } }
private void returnNotFound(ResponseWriter responseWriter, HttpRequest request) { HttpResponse response = notFoundResponse(); if (request.getHeaders().containsEntry("x-forwarded-by", "MockServer")) { response.withHeader("x-forwarded-by", "MockServer"); } else { httpStateHandler.log(new RequestLogEntry(request)); mockServerLogger.info(EXPECTATION_NOT_MATCHED, request, "no expectation for:{}returning response:{}", request, notFoundResponse()); } responseWriter.writeResponse(request, response, false); } }