Polish AbstractMockWebServerTestCase

This commit is contained in:
Sam Brannen
2019-06-27 13:45:32 +03:00
parent 0b6239cecc
commit d522e9835f

View File

@@ -32,9 +32,13 @@ import org.junit.Before;
import org.springframework.http.MediaType;
import static org.assertj.core.api.Assertions.assertThat;
import static org.springframework.http.HttpHeaders.CONTENT_LENGTH;
import static org.springframework.http.HttpHeaders.CONTENT_TYPE;
import static org.springframework.http.HttpHeaders.LOCATION;
/**
* @author Brian Clozel
* @author Sam Brannen
*/
public class AbstractMockWebServerTestCase {
@@ -43,7 +47,7 @@ public class AbstractMockWebServerTestCase {
protected static final String helloWorld = "H\u00e9llo W\u00f6rld";
private MockWebServer server;
private final MockWebServer server = new MockWebServer();
protected int port;
@@ -52,7 +56,6 @@ public class AbstractMockWebServerTestCase {
@Before
public void setUp() throws Exception {
this.server = new MockWebServer();
this.server.setDispatcher(new TestDispatcher());
this.server.start();
this.port = this.server.getPort();
@@ -72,11 +75,11 @@ public class AbstractMockWebServerTestCase {
Buffer buf = new Buffer();
buf.write(body);
MockResponse response = new MockResponse()
.setHeader("Content-Length", body.length)
.setHeader(CONTENT_LENGTH, body.length)
.setBody(buf)
.setResponseCode(200);
if (contentType != null) {
response = response.setHeader("Content-Type", contentType);
response = response.setHeader(CONTENT_TYPE, contentType);
}
return response;
}
@@ -84,9 +87,9 @@ public class AbstractMockWebServerTestCase {
private MockResponse postRequest(RecordedRequest request, String expectedRequestContent,
String location, String contentType, byte[] responseBody) {
assertThat(request.getHeaders().values("Content-Length").size()).isEqualTo(1);
assertThat(Integer.parseInt(request.getHeader("Content-Length"))).as("Invalid request content-length").isGreaterThan(0);
String requestContentType = request.getHeader("Content-Type");
assertThat(request.getHeaders().values(CONTENT_LENGTH).size()).isEqualTo(1);
assertThat(Integer.parseInt(request.getHeader(CONTENT_LENGTH))).as("Invalid request content-length").isGreaterThan(0);
String requestContentType = request.getHeader(CONTENT_TYPE);
assertThat(requestContentType).as("No content-type").isNotNull();
Charset charset = StandardCharsets.ISO_8859_1;
if (requestContentType.contains("charset=")) {
@@ -97,22 +100,22 @@ public class AbstractMockWebServerTestCase {
Buffer buf = new Buffer();
buf.write(responseBody);
return new MockResponse()
.setHeader("Location", baseUrl + location)
.setHeader("Content-Type", contentType)
.setHeader("Content-Length", responseBody.length)
.setHeader(LOCATION, baseUrl + location)
.setHeader(CONTENT_TYPE, contentType)
.setHeader(CONTENT_LENGTH, responseBody.length)
.setBody(buf)
.setResponseCode(201);
}
private MockResponse jsonPostRequest(RecordedRequest request, String location, String contentType) {
if (request.getBodySize() > 0) {
assertThat(Integer.parseInt(request.getHeader("Content-Length"))).as("Invalid request content-length").isGreaterThan(0);
assertThat(request.getHeader("Content-Type")).as("No content-type").isNotNull();
assertThat(Integer.parseInt(request.getHeader(CONTENT_LENGTH))).as("Invalid request content-length").isGreaterThan(0);
assertThat(request.getHeader(CONTENT_TYPE)).as("No content-type").isNotNull();
}
return new MockResponse()
.setHeader("Location", baseUrl + location)
.setHeader("Content-Type", contentType)
.setHeader("Content-Length", request.getBody().size())
.setHeader(LOCATION, baseUrl + location)
.setHeader(CONTENT_TYPE, contentType)
.setHeader(CONTENT_LENGTH, request.getBody().size())
.setBody(request.getBody())
.setResponseCode(201);
}
@@ -139,9 +142,9 @@ public class AbstractMockWebServerTestCase {
assertThat(buffer.readUtf8Line()).contains("--" + boundary);
String line = buffer.readUtf8Line();
assertThat(line).contains("Content-Disposition: "+ disposition);
assertThat(line).contains("name=\""+ name + "\"");
assertThat(buffer.readUtf8Line()).startsWith("Content-Type: "+contentType);
assertThat(line).contains("Content-Disposition: " + disposition);
assertThat(line).contains("name=\"" + name + "\"");
assertThat(buffer.readUtf8Line()).startsWith("Content-Type: " + contentType);
assertThat(buffer.readUtf8Line()).isEqualTo("Content-Length: " + value.length());
assertThat(buffer.readUtf8Line()).isEqualTo("");
assertThat(buffer.readUtf8Line()).isEqualTo(value);
@@ -162,11 +165,8 @@ public class AbstractMockWebServerTestCase {
}
private MockResponse formRequest(RecordedRequest request) {
assertThat(request.getHeader("Content-Type")).isEqualTo("application/x-www-form-urlencoded;charset=UTF-8");
String body = request.getBody().readUtf8();
assertThat(body).contains("name+1=value+1");
assertThat(body).contains("name+2=value+2%2B1");
assertThat(body).contains("name+2=value+2%2B2");
assertThat(request.getHeader(CONTENT_TYPE)).isEqualTo("application/x-www-form-urlencoded;charset=UTF-8");
assertThat(request.getBody().readUtf8()).contains("name+1=value+1", "name+2=value+2%2B1", "name+2=value+2%2B2");
return new MockResponse().setResponseCode(200);
}
@@ -174,8 +174,8 @@ public class AbstractMockWebServerTestCase {
String contentType, byte[] responseBody) {
assertThat(request.getMethod()).isEqualTo("PATCH");
assertThat(Integer.parseInt(request.getHeader("Content-Length"))).as("Invalid request content-length").isGreaterThan(0);
String requestContentType = request.getHeader("Content-Type");
assertThat(Integer.parseInt(request.getHeader(CONTENT_LENGTH))).as("Invalid request content-length").isGreaterThan(0);
String requestContentType = request.getHeader(CONTENT_TYPE);
assertThat(requestContentType).as("No content-type").isNotNull();
Charset charset = StandardCharsets.ISO_8859_1;
if (requestContentType.contains("charset=")) {
@@ -186,14 +186,14 @@ public class AbstractMockWebServerTestCase {
Buffer buf = new Buffer();
buf.write(responseBody);
return new MockResponse().setResponseCode(201)
.setHeader("Content-Length", responseBody.length)
.setHeader("Content-Type", contentType)
.setHeader(CONTENT_LENGTH, responseBody.length)
.setHeader(CONTENT_TYPE, contentType)
.setBody(buf);
}
private MockResponse putRequest(RecordedRequest request, String expectedRequestContent) {
assertThat(Integer.parseInt(request.getHeader("Content-Length"))).as("Invalid request content-length").isGreaterThan(0);
String requestContentType = request.getHeader("Content-Type");
assertThat(Integer.parseInt(request.getHeader(CONTENT_LENGTH))).as("Invalid request content-length").isGreaterThan(0);
String requestContentType = request.getHeader(CONTENT_TYPE);
assertThat(requestContentType).as("No content-type").isNotNull();
Charset charset = StandardCharsets.ISO_8859_1;
if (requestContentType.contains("charset=")) {
@@ -243,7 +243,7 @@ public class AbstractMockWebServerTestCase {
return new MockResponse().setResponseCode(500);
}
else if (request.getPath().contains("/uri/")) {
return new MockResponse().setBody(request.getPath()).setHeader("Content-Type", "text/plain");
return new MockResponse().setBody(request.getPath()).setHeader(CONTENT_TYPE, "text/plain");
}
else if (request.getPath().equals("/multipart")) {
return multipartRequest(request);