Apply Eclipse Mars' code formatting
This commit is contained in:
@@ -89,7 +89,8 @@ class MockMvcOperationRequestFactory {
|
||||
List<OperationRequestPart> parts = new ArrayList<>();
|
||||
parts.addAll(extractServletRequestParts(servletRequest));
|
||||
if (servletRequest instanceof MockMultipartHttpServletRequest) {
|
||||
parts.addAll(extractMultipartRequestParts((MockMultipartHttpServletRequest) servletRequest));
|
||||
parts.addAll(extractMultipartRequestParts(
|
||||
(MockMultipartHttpServletRequest) servletRequest));
|
||||
}
|
||||
return parts;
|
||||
}
|
||||
@@ -103,24 +104,24 @@ class MockMvcOperationRequestFactory {
|
||||
return parts;
|
||||
}
|
||||
|
||||
private OperationRequestPart createOperationRequestPart(Part part) throws IOException {
|
||||
private OperationRequestPart createOperationRequestPart(Part part)
|
||||
throws IOException {
|
||||
HttpHeaders partHeaders = extractHeaders(part);
|
||||
List<String> contentTypeHeader = partHeaders.get(HttpHeaders.CONTENT_TYPE);
|
||||
if (part.getContentType() != null && contentTypeHeader == null) {
|
||||
partHeaders.setContentType(MediaType.parseMediaType(part.getContentType()));
|
||||
}
|
||||
return new OperationRequestPartFactory()
|
||||
.create(part.getName(),
|
||||
StringUtils.hasText(part.getSubmittedFileName()) ? part
|
||||
.getSubmittedFileName() : null, FileCopyUtils
|
||||
.copyToByteArray(part.getInputStream()), partHeaders);
|
||||
return new OperationRequestPartFactory().create(part.getName(),
|
||||
StringUtils.hasText(part.getSubmittedFileName())
|
||||
? part.getSubmittedFileName() : null,
|
||||
FileCopyUtils.copyToByteArray(part.getInputStream()), partHeaders);
|
||||
}
|
||||
|
||||
private List<OperationRequestPart> extractMultipartRequestParts(
|
||||
MockMultipartHttpServletRequest multipartRequest) throws IOException {
|
||||
List<OperationRequestPart> parts = new ArrayList<>();
|
||||
for (Entry<String, List<MultipartFile>> entry : multipartRequest
|
||||
.getMultiFileMap().entrySet()) {
|
||||
for (Entry<String, List<MultipartFile>> entry : multipartRequest.getMultiFileMap()
|
||||
.entrySet()) {
|
||||
for (MultipartFile file : entry.getValue()) {
|
||||
parts.add(createOperationRequestPart(file));
|
||||
}
|
||||
@@ -134,8 +135,9 @@ class MockMvcOperationRequestFactory {
|
||||
if (StringUtils.hasText(file.getContentType())) {
|
||||
partHeaders.setContentType(MediaType.parseMediaType(file.getContentType()));
|
||||
}
|
||||
return new OperationRequestPartFactory().create(file.getName(), StringUtils
|
||||
.hasText(file.getOriginalFilename()) ? file.getOriginalFilename() : null,
|
||||
return new OperationRequestPartFactory().create(file.getName(),
|
||||
StringUtils.hasText(file.getOriginalFilename())
|
||||
? file.getOriginalFilename() : null,
|
||||
file.getBytes(), partHeaders);
|
||||
}
|
||||
|
||||
@@ -170,8 +172,10 @@ class MockMvcOperationRequestFactory {
|
||||
}
|
||||
|
||||
private boolean isNonStandardPort(MockHttpServletRequest request) {
|
||||
return (SCHEME_HTTP.equals(request.getScheme()) && request.getServerPort() != STANDARD_PORT_HTTP)
|
||||
|| (SCHEME_HTTPS.equals(request.getScheme()) && request.getServerPort() != STANDARD_PORT_HTTPS);
|
||||
return (SCHEME_HTTP.equals(request.getScheme())
|
||||
&& request.getServerPort() != STANDARD_PORT_HTTP)
|
||||
|| (SCHEME_HTTPS.equals(request.getScheme())
|
||||
&& request.getServerPort() != STANDARD_PORT_HTTPS);
|
||||
}
|
||||
|
||||
private String getRequestUri(MockHttpServletRequest request) {
|
||||
|
||||
@@ -108,7 +108,8 @@ public class RestDocumentationMockMvcConfigurer extends MockMvcConfigurerAdapter
|
||||
* @param templateEngine the template engine to use
|
||||
* @return {@code this}
|
||||
*/
|
||||
public RestDocumentationMockMvcConfigurer templateEngine(TemplateEngine templateEngine) {
|
||||
public RestDocumentationMockMvcConfigurer templateEngine(
|
||||
TemplateEngine templateEngine) {
|
||||
this.templateEngineConfigurer.setTemplateEngine(templateEngine);
|
||||
return this;
|
||||
}
|
||||
@@ -120,7 +121,8 @@ public class RestDocumentationMockMvcConfigurer extends MockMvcConfigurerAdapter
|
||||
* @param writerResolver The writer resolver to use
|
||||
* @return {@code this}
|
||||
*/
|
||||
public RestDocumentationMockMvcConfigurer writerResolver(WriterResolver writerResolver) {
|
||||
public RestDocumentationMockMvcConfigurer writerResolver(
|
||||
WriterResolver writerResolver) {
|
||||
this.writerResolverConfigurer.setWriterResolver(writerResolver);
|
||||
return this;
|
||||
}
|
||||
@@ -157,9 +159,8 @@ public class RestDocumentationMockMvcConfigurer extends MockMvcConfigurerAdapter
|
||||
if (resolverToUse == null) {
|
||||
resolverToUse = new StandardWriterResolver(
|
||||
new RestDocumentationContextPlaceholderResolver(
|
||||
(RestDocumentationContext) request
|
||||
.getAttribute(RestDocumentationContext.class
|
||||
.getName())));
|
||||
(RestDocumentationContext) request.getAttribute(
|
||||
RestDocumentationContext.class.getName())));
|
||||
}
|
||||
request.setAttribute(WriterResolver.class.getName(), resolverToUse);
|
||||
}
|
||||
@@ -170,8 +171,8 @@ public class RestDocumentationMockMvcConfigurer extends MockMvcConfigurerAdapter
|
||||
|
||||
}
|
||||
|
||||
private static final class ConfigurerApplyingRequestPostProcessor implements
|
||||
RequestPostProcessor {
|
||||
private static final class ConfigurerApplyingRequestPostProcessor
|
||||
implements RequestPostProcessor {
|
||||
|
||||
private final RestDocumentation restDocumentation;
|
||||
|
||||
|
||||
@@ -54,8 +54,8 @@ public abstract class RestDocumentationRequestBuilders {
|
||||
*/
|
||||
public static MockHttpServletRequestBuilder get(String urlTemplate,
|
||||
Object... urlVariables) {
|
||||
return MockMvcRequestBuilders.get(urlTemplate, urlVariables).requestAttr(
|
||||
ATTRIBUTE_NAME_URL_TEMPLATE, urlTemplate);
|
||||
return MockMvcRequestBuilders.get(urlTemplate, urlVariables)
|
||||
.requestAttr(ATTRIBUTE_NAME_URL_TEMPLATE, urlTemplate);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -78,8 +78,8 @@ public abstract class RestDocumentationRequestBuilders {
|
||||
*/
|
||||
public static MockHttpServletRequestBuilder post(String urlTemplate,
|
||||
Object... urlVariables) {
|
||||
return MockMvcRequestBuilders.post(urlTemplate, urlVariables).requestAttr(
|
||||
ATTRIBUTE_NAME_URL_TEMPLATE, urlTemplate);
|
||||
return MockMvcRequestBuilders.post(urlTemplate, urlVariables)
|
||||
.requestAttr(ATTRIBUTE_NAME_URL_TEMPLATE, urlTemplate);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -102,8 +102,8 @@ public abstract class RestDocumentationRequestBuilders {
|
||||
*/
|
||||
public static MockHttpServletRequestBuilder put(String urlTemplate,
|
||||
Object... urlVariables) {
|
||||
return MockMvcRequestBuilders.put(urlTemplate, urlVariables).requestAttr(
|
||||
ATTRIBUTE_NAME_URL_TEMPLATE, urlTemplate);
|
||||
return MockMvcRequestBuilders.put(urlTemplate, urlVariables)
|
||||
.requestAttr(ATTRIBUTE_NAME_URL_TEMPLATE, urlTemplate);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -126,8 +126,8 @@ public abstract class RestDocumentationRequestBuilders {
|
||||
*/
|
||||
public static MockHttpServletRequestBuilder patch(String urlTemplate,
|
||||
Object... urlVariables) {
|
||||
return MockMvcRequestBuilders.patch(urlTemplate, urlVariables).requestAttr(
|
||||
ATTRIBUTE_NAME_URL_TEMPLATE, urlTemplate);
|
||||
return MockMvcRequestBuilders.patch(urlTemplate, urlVariables)
|
||||
.requestAttr(ATTRIBUTE_NAME_URL_TEMPLATE, urlTemplate);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -150,8 +150,8 @@ public abstract class RestDocumentationRequestBuilders {
|
||||
*/
|
||||
public static MockHttpServletRequestBuilder delete(String urlTemplate,
|
||||
Object... urlVariables) {
|
||||
return MockMvcRequestBuilders.delete(urlTemplate, urlVariables).requestAttr(
|
||||
ATTRIBUTE_NAME_URL_TEMPLATE, urlTemplate);
|
||||
return MockMvcRequestBuilders.delete(urlTemplate, urlVariables)
|
||||
.requestAttr(ATTRIBUTE_NAME_URL_TEMPLATE, urlTemplate);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -174,8 +174,8 @@ public abstract class RestDocumentationRequestBuilders {
|
||||
*/
|
||||
public static MockHttpServletRequestBuilder options(String urlTemplate,
|
||||
Object... urlVariables) {
|
||||
return MockMvcRequestBuilders.options(urlTemplate, urlVariables).requestAttr(
|
||||
ATTRIBUTE_NAME_URL_TEMPLATE, urlTemplate);
|
||||
return MockMvcRequestBuilders.options(urlTemplate, urlVariables)
|
||||
.requestAttr(ATTRIBUTE_NAME_URL_TEMPLATE, urlTemplate);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -198,8 +198,8 @@ public abstract class RestDocumentationRequestBuilders {
|
||||
*/
|
||||
public static MockHttpServletRequestBuilder head(String urlTemplate,
|
||||
Object... urlVariables) {
|
||||
return MockMvcRequestBuilders.head(urlTemplate, urlVariables).requestAttr(
|
||||
ATTRIBUTE_NAME_URL_TEMPLATE, urlTemplate);
|
||||
return MockMvcRequestBuilders.head(urlTemplate, urlVariables)
|
||||
.requestAttr(ATTRIBUTE_NAME_URL_TEMPLATE, urlTemplate);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -249,8 +249,8 @@ public abstract class RestDocumentationRequestBuilders {
|
||||
public static MockMultipartHttpServletRequestBuilder fileUpload(String urlTemplate,
|
||||
Object... urlVariables) {
|
||||
return (MockMultipartHttpServletRequestBuilder) MockMvcRequestBuilders
|
||||
.fileUpload(urlTemplate, urlVariables).requestAttr(
|
||||
ATTRIBUTE_NAME_URL_TEMPLATE, urlTemplate);
|
||||
.fileUpload(urlTemplate, urlVariables)
|
||||
.requestAttr(ATTRIBUTE_NAME_URL_TEMPLATE, urlTemplate);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -59,14 +59,14 @@ public class RestDocumentationResultHandler implements ResultHandler {
|
||||
|
||||
RestDocumentationResultHandler(String identifier,
|
||||
OperationRequestPreprocessor requestPreprocessor, Snippet... snippets) {
|
||||
this(identifier, requestPreprocessor,
|
||||
new IdentityOperationResponsePreprocessor(), snippets);
|
||||
this(identifier, requestPreprocessor, new IdentityOperationResponsePreprocessor(),
|
||||
snippets);
|
||||
}
|
||||
|
||||
RestDocumentationResultHandler(String identifier,
|
||||
OperationResponsePreprocessor responsePreprocessor, Snippet... snippets) {
|
||||
this(identifier, new IdentityOperationRequestPreprocessor(),
|
||||
responsePreprocessor, snippets);
|
||||
this(identifier, new IdentityOperationRequestPreprocessor(), responsePreprocessor,
|
||||
snippets);
|
||||
}
|
||||
|
||||
RestDocumentationResultHandler(String identifier,
|
||||
@@ -116,15 +116,15 @@ public class RestDocumentationResultHandler implements ResultHandler {
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private List<Snippet> getSnippets(MvcResult result) {
|
||||
List<Snippet> combinedSnippets = new ArrayList<>((List<Snippet>) result
|
||||
.getRequest().getAttribute(
|
||||
List<Snippet> combinedSnippets = new ArrayList<>(
|
||||
(List<Snippet>) result.getRequest().getAttribute(
|
||||
"org.springframework.restdocs.mockmvc.defaultSnippets"));
|
||||
combinedSnippets.addAll(this.snippets);
|
||||
return combinedSnippets;
|
||||
}
|
||||
|
||||
private static final class IdentityOperationRequestPreprocessor implements
|
||||
OperationRequestPreprocessor {
|
||||
private static final class IdentityOperationRequestPreprocessor
|
||||
implements OperationRequestPreprocessor {
|
||||
|
||||
@Override
|
||||
public OperationRequest preprocess(OperationRequest request) {
|
||||
@@ -133,8 +133,8 @@ public class RestDocumentationResultHandler implements ResultHandler {
|
||||
|
||||
}
|
||||
|
||||
private static final class IdentityOperationResponsePreprocessor implements
|
||||
OperationResponsePreprocessor {
|
||||
private static final class IdentityOperationResponsePreprocessor
|
||||
implements OperationResponsePreprocessor {
|
||||
|
||||
@Override
|
||||
public OperationResponse preprocess(OperationResponse response) {
|
||||
|
||||
@@ -30,12 +30,11 @@ import org.springframework.restdocs.snippet.WriterResolver;
|
||||
*
|
||||
* @author Andy Wilkinson
|
||||
*/
|
||||
public class SnippetConfigurer extends
|
||||
AbstractNestedConfigurer<RestDocumentationMockMvcConfigurer> {
|
||||
public class SnippetConfigurer
|
||||
extends AbstractNestedConfigurer<RestDocumentationMockMvcConfigurer> {
|
||||
|
||||
private List<Snippet> defaultSnippets = Arrays.asList(
|
||||
CurlDocumentation.curlRequest(), HttpDocumentation.httpRequest(),
|
||||
HttpDocumentation.httpResponse());
|
||||
private List<Snippet> defaultSnippets = Arrays.asList(CurlDocumentation.curlRequest(),
|
||||
HttpDocumentation.httpRequest(), HttpDocumentation.httpResponse());
|
||||
|
||||
/**
|
||||
* The default encoding for documentation snippets.
|
||||
|
||||
@@ -23,8 +23,8 @@ import org.springframework.mock.web.MockHttpServletRequest;
|
||||
*
|
||||
* @author Andy Wilkinson
|
||||
*/
|
||||
public class UriConfigurer extends
|
||||
AbstractNestedConfigurer<RestDocumentationMockMvcConfigurer> {
|
||||
public class UriConfigurer
|
||||
extends AbstractNestedConfigurer<RestDocumentationMockMvcConfigurer> {
|
||||
|
||||
/**
|
||||
* The default scheme for documented URIs.
|
||||
|
||||
@@ -18,4 +18,3 @@
|
||||
* Core classes for using Spring REST Docs with Spring Test's MockMvc.
|
||||
*/
|
||||
package org.springframework.restdocs.mockmvc;
|
||||
|
||||
|
||||
@@ -23,6 +23,7 @@ import java.util.Arrays;
|
||||
import javax.servlet.http.Part;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import org.springframework.http.HttpMethod;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.mock.web.MockHttpServletRequest;
|
||||
@@ -53,8 +54,8 @@ public class MockMvcOperationRequestFactoryTests {
|
||||
|
||||
@Test
|
||||
public void httpRequest() throws Exception {
|
||||
OperationRequest request = createOperationRequest(MockMvcRequestBuilders
|
||||
.get("/foo"));
|
||||
OperationRequest request = createOperationRequest(
|
||||
MockMvcRequestBuilders.get("/foo"));
|
||||
assertThat(request.getUri(), is(URI.create("http://localhost/foo")));
|
||||
assertThat(request.getMethod(), is(HttpMethod.GET));
|
||||
}
|
||||
@@ -71,8 +72,8 @@ public class MockMvcOperationRequestFactoryTests {
|
||||
|
||||
@Test
|
||||
public void requestWithContextPath() throws Exception {
|
||||
OperationRequest request = createOperationRequest(MockMvcRequestBuilders.get(
|
||||
"/foo/bar").contextPath("/foo"));
|
||||
OperationRequest request = createOperationRequest(
|
||||
MockMvcRequestBuilders.get("/foo/bar").contextPath("/foo"));
|
||||
assertThat(request.getUri(), is(URI.create("http://localhost/foo/bar")));
|
||||
assertThat(request.getMethod(), is(HttpMethod.GET));
|
||||
}
|
||||
@@ -124,8 +125,8 @@ public class MockMvcOperationRequestFactoryTests {
|
||||
|
||||
@Test
|
||||
public void getRequestWithQueryStringPopulatesParameters() throws Exception {
|
||||
OperationRequest request = createOperationRequest(MockMvcRequestBuilders
|
||||
.get("/foo?a=alpha&b=bravo"));
|
||||
OperationRequest request = createOperationRequest(
|
||||
MockMvcRequestBuilders.get("/foo?a=alpha&b=bravo"));
|
||||
assertThat(request.getUri(),
|
||||
is(URI.create("http://localhost/foo?a=alpha&b=bravo")));
|
||||
assertThat(request.getParameters().size(), is(2));
|
||||
@@ -148,9 +149,9 @@ public class MockMvcOperationRequestFactoryTests {
|
||||
|
||||
@Test
|
||||
public void mockMultipartFileUpload() throws Exception {
|
||||
OperationRequest request = createOperationRequest(MockMvcRequestBuilders
|
||||
.fileUpload("/foo").file(
|
||||
new MockMultipartFile("file", new byte[] { 1, 2, 3, 4 })));
|
||||
OperationRequest request = createOperationRequest(
|
||||
MockMvcRequestBuilders.fileUpload("/foo")
|
||||
.file(new MockMultipartFile("file", new byte[] { 1, 2, 3, 4 })));
|
||||
assertThat(request.getUri(), is(URI.create("http://localhost/foo")));
|
||||
assertThat(request.getMethod(), is(HttpMethod.POST));
|
||||
assertThat(request.getParts().size(), is(1));
|
||||
@@ -164,10 +165,9 @@ public class MockMvcOperationRequestFactoryTests {
|
||||
|
||||
@Test
|
||||
public void mockMultipartFileUploadWithContentType() throws Exception {
|
||||
OperationRequest request = createOperationRequest(MockMvcRequestBuilders
|
||||
.fileUpload("/foo").file(
|
||||
new MockMultipartFile("file", "original", "image/png",
|
||||
new byte[] { 1, 2, 3, 4 })));
|
||||
OperationRequest request = createOperationRequest(
|
||||
MockMvcRequestBuilders.fileUpload("/foo").file(new MockMultipartFile(
|
||||
"file", "original", "image/png", new byte[] { 1, 2, 3, 4 })));
|
||||
assertThat(request.getUri(), is(URI.create("http://localhost/foo")));
|
||||
assertThat(request.getMethod(), is(HttpMethod.POST));
|
||||
assertThat(request.getParts().size(), is(1));
|
||||
@@ -186,8 +186,8 @@ public class MockMvcOperationRequestFactoryTests {
|
||||
given(mockPart.getHeaderNames()).willReturn(Arrays.asList("a", "b"));
|
||||
given(mockPart.getHeaders("a")).willReturn(Arrays.asList("alpha"));
|
||||
given(mockPart.getHeaders("b")).willReturn(Arrays.asList("bravo", "banana"));
|
||||
given(mockPart.getInputStream()).willReturn(
|
||||
new ByteArrayInputStream(new byte[] { 1, 2, 3, 4 }));
|
||||
given(mockPart.getInputStream())
|
||||
.willReturn(new ByteArrayInputStream(new byte[] { 1, 2, 3, 4 }));
|
||||
given(mockPart.getName()).willReturn("part-name");
|
||||
given(mockPart.getSubmittedFileName()).willReturn("submitted.txt");
|
||||
mockRequest.addPart(mockPart);
|
||||
@@ -210,8 +210,8 @@ public class MockMvcOperationRequestFactoryTests {
|
||||
given(mockPart.getHeaderNames()).willReturn(Arrays.asList("a", "b"));
|
||||
given(mockPart.getHeaders("a")).willReturn(Arrays.asList("alpha"));
|
||||
given(mockPart.getHeaders("b")).willReturn(Arrays.asList("bravo", "banana"));
|
||||
given(mockPart.getInputStream()).willReturn(
|
||||
new ByteArrayInputStream(new byte[] { 1, 2, 3, 4 }));
|
||||
given(mockPart.getInputStream())
|
||||
.willReturn(new ByteArrayInputStream(new byte[] { 1, 2, 3, 4 }));
|
||||
given(mockPart.getName()).willReturn("part-name");
|
||||
given(mockPart.getSubmittedFileName()).willReturn("submitted.png");
|
||||
given(mockPart.getContentType()).willReturn("image/png");
|
||||
@@ -229,8 +229,8 @@ public class MockMvcOperationRequestFactoryTests {
|
||||
|
||||
private OperationRequest createOperationRequest(MockHttpServletRequestBuilder builder)
|
||||
throws Exception {
|
||||
return this.factory.createOperationRequest(builder
|
||||
.buildRequest(new MockServletContext()));
|
||||
return this.factory
|
||||
.createOperationRequest(builder.buildRequest(new MockServletContext()));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -29,6 +29,7 @@ import org.junit.Before;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
@@ -128,12 +129,12 @@ public class MockMvcRestDocumentationIntegrationTests {
|
||||
|
||||
mockMvc.perform(post("/").accept(MediaType.APPLICATION_JSON).content("content"))
|
||||
.andExpect(status().isOk()).andDo(document("curl-snippet-with-content"));
|
||||
assertThat(new File(
|
||||
"build/generated-snippets/curl-snippet-with-content/curl-request.adoc"),
|
||||
is(snippet().withContents(
|
||||
codeBlock("bash").content(
|
||||
"$ curl " + "'http://localhost:8080/' -i -X POST "
|
||||
+ "-H 'Accept: application/json' -d 'content'"))));
|
||||
assertThat(
|
||||
new File(
|
||||
"build/generated-snippets/curl-snippet-with-content/curl-request.adoc"),
|
||||
is(snippet().withContents(codeBlock("bash")
|
||||
.content("$ curl " + "'http://localhost:8080/' -i -X POST "
|
||||
+ "-H 'Accept: application/json' -d 'content'"))));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -141,18 +142,15 @@ public class MockMvcRestDocumentationIntegrationTests {
|
||||
MockMvc mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
|
||||
.apply(documentationConfiguration(this.restDocumentation)).build();
|
||||
|
||||
mockMvc.perform(
|
||||
post("/?foo=bar").param("foo", "bar").param("a", "alpha")
|
||||
.accept(MediaType.APPLICATION_JSON)).andExpect(status().isOk())
|
||||
mockMvc.perform(post("/?foo=bar").param("foo", "bar").param("a", "alpha")
|
||||
.accept(MediaType.APPLICATION_JSON)).andExpect(status().isOk())
|
||||
.andDo(document("curl-snippet-with-query-string"));
|
||||
assertThat(
|
||||
new File(
|
||||
"build/generated-snippets/curl-snippet-with-query-string/curl-request.adoc"),
|
||||
is(snippet().withContents(
|
||||
codeBlock("bash").content(
|
||||
"$ curl "
|
||||
+ "'http://localhost:8080/?foo=bar' -i -X POST "
|
||||
+ "-H 'Accept: application/json' -d 'a=alpha'"))));
|
||||
is(snippet().withContents(codeBlock("bash").content(
|
||||
"$ curl " + "'http://localhost:8080/?foo=bar' -i -X POST "
|
||||
+ "-H 'Accept: application/json' -d 'a=alpha'"))));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -161,8 +159,7 @@ public class MockMvcRestDocumentationIntegrationTests {
|
||||
.apply(documentationConfiguration(this.restDocumentation)).build();
|
||||
|
||||
mockMvc.perform(get("/").accept(MediaType.APPLICATION_JSON))
|
||||
.andExpect(status().isOk())
|
||||
.andDo(document("links",
|
||||
.andExpect(status().isOk()).andDo(document("links",
|
||||
links(linkWithRel("rel").description("The description"))));
|
||||
|
||||
assertExpectedSnippetFilesExist(new File("build/generated-snippets/links"),
|
||||
@@ -176,9 +173,8 @@ public class MockMvcRestDocumentationIntegrationTests {
|
||||
.apply(documentationConfiguration(this.restDocumentation)).build();
|
||||
|
||||
mockMvc.perform(get("{foo}", "/").accept(MediaType.APPLICATION_JSON))
|
||||
.andExpect(status().isOk())
|
||||
.andDo(document("links", pathParameters(parameterWithName("foo")
|
||||
.description("The description"))));
|
||||
.andExpect(status().isOk()).andDo(document("links", pathParameters(
|
||||
parameterWithName("foo").description("The description"))));
|
||||
|
||||
assertExpectedSnippetFilesExist(new File("build/generated-snippets/links"),
|
||||
"http-request.adoc", "http-response.adoc", "curl-request.adoc",
|
||||
@@ -191,9 +187,8 @@ public class MockMvcRestDocumentationIntegrationTests {
|
||||
.apply(documentationConfiguration(this.restDocumentation)).build();
|
||||
|
||||
mockMvc.perform(get("/").param("foo", "bar").accept(MediaType.APPLICATION_JSON))
|
||||
.andExpect(status().isOk())
|
||||
.andDo(document("links", requestParameters(parameterWithName("foo")
|
||||
.description("The description"))));
|
||||
.andExpect(status().isOk()).andDo(document("links", requestParameters(
|
||||
parameterWithName("foo").description("The description"))));
|
||||
|
||||
assertExpectedSnippetFilesExist(new File("build/generated-snippets/links"),
|
||||
"http-request.adoc", "http-response.adoc", "curl-request.adoc",
|
||||
@@ -205,12 +200,10 @@ public class MockMvcRestDocumentationIntegrationTests {
|
||||
MockMvc mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
|
||||
.apply(documentationConfiguration(this.restDocumentation)).build();
|
||||
|
||||
mockMvc.perform(
|
||||
get("/").param("foo", "bar").content("{\"a\":\"alpha\"}")
|
||||
.accept(MediaType.APPLICATION_JSON))
|
||||
.andExpect(status().isOk())
|
||||
.andDo(document("links",
|
||||
requestFields(fieldWithPath("a").description("The description"))));
|
||||
mockMvc.perform(get("/").param("foo", "bar").content("{\"a\":\"alpha\"}")
|
||||
.accept(MediaType.APPLICATION_JSON)).andExpect(status().isOk())
|
||||
.andDo(document("links", requestFields(
|
||||
fieldWithPath("a").description("The description"))));
|
||||
|
||||
assertExpectedSnippetFilesExist(new File("build/generated-snippets/links"),
|
||||
"http-request.adoc", "http-response.adoc", "curl-request.adoc",
|
||||
@@ -224,12 +217,10 @@ public class MockMvcRestDocumentationIntegrationTests {
|
||||
|
||||
mockMvc.perform(get("/").param("foo", "bar").accept(MediaType.APPLICATION_JSON))
|
||||
.andExpect(status().isOk())
|
||||
.andDo(document(
|
||||
"links",
|
||||
responseFields(
|
||||
fieldWithPath("a").description("The description"),
|
||||
fieldWithPath("links").description(
|
||||
"Links to other resources"))));
|
||||
.andDo(document("links",
|
||||
responseFields(fieldWithPath("a")
|
||||
.description("The description"),
|
||||
fieldWithPath("links").description("Links to other resources"))));
|
||||
|
||||
assertExpectedSnippetFilesExist(new File("build/generated-snippets/links"),
|
||||
"http-request.adoc", "http-response.adoc", "curl-request.adoc",
|
||||
@@ -243,8 +234,8 @@ public class MockMvcRestDocumentationIntegrationTests {
|
||||
|
||||
mockMvc.perform(get("/").accept(MediaType.APPLICATION_JSON))
|
||||
.andExpect(status().isOk()).andDo(document("{method-name}"));
|
||||
assertExpectedSnippetFilesExist(new File(
|
||||
"build/generated-snippets/parameterized-output-directory"),
|
||||
assertExpectedSnippetFilesExist(
|
||||
new File("build/generated-snippets/parameterized-output-directory"),
|
||||
"http-request.adoc", "http-response.adoc", "curl-request.adoc");
|
||||
}
|
||||
|
||||
@@ -254,20 +245,20 @@ public class MockMvcRestDocumentationIntegrationTests {
|
||||
.apply(documentationConfiguration(this.restDocumentation))
|
||||
.alwaysDo(document("{method-name}-{step}")).build();
|
||||
|
||||
mockMvc.perform(get("/").accept(MediaType.APPLICATION_JSON)).andExpect(
|
||||
status().isOk());
|
||||
mockMvc.perform(get("/").accept(MediaType.APPLICATION_JSON))
|
||||
.andExpect(status().isOk());
|
||||
assertExpectedSnippetFilesExist(
|
||||
new File("build/generated-snippets/multi-step-1/"), "http-request.adoc",
|
||||
"http-response.adoc", "curl-request.adoc");
|
||||
|
||||
mockMvc.perform(get("/").accept(MediaType.APPLICATION_JSON)).andExpect(
|
||||
status().isOk());
|
||||
mockMvc.perform(get("/").accept(MediaType.APPLICATION_JSON))
|
||||
.andExpect(status().isOk());
|
||||
assertExpectedSnippetFilesExist(
|
||||
new File("build/generated-snippets/multi-step-2/"), "http-request.adoc",
|
||||
"http-response.adoc", "curl-request.adoc");
|
||||
|
||||
mockMvc.perform(get("/").accept(MediaType.APPLICATION_JSON)).andExpect(
|
||||
status().isOk());
|
||||
mockMvc.perform(get("/").accept(MediaType.APPLICATION_JSON))
|
||||
.andExpect(status().isOk());
|
||||
assertExpectedSnippetFilesExist(
|
||||
new File("build/generated-snippets/multi-step-3/"), "http-request.adoc",
|
||||
"http-response.adoc", "curl-request.adoc");
|
||||
@@ -280,39 +271,32 @@ public class MockMvcRestDocumentationIntegrationTests {
|
||||
|
||||
Pattern pattern = Pattern.compile("(\"alpha\")");
|
||||
|
||||
mockMvc.perform(
|
||||
get("/").header("a", "alpha").header("b", "bravo")
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.accept(MediaType.APPLICATION_JSON).content("{\"a\":\"alpha\"}"))
|
||||
.andExpect(status().isOk())
|
||||
.andDo(document("original-request"))
|
||||
.andDo(document(
|
||||
"preprocessed-request",
|
||||
preprocessRequest(
|
||||
prettyPrint(),
|
||||
mockMvc.perform(get("/").header("a", "alpha").header("b", "bravo")
|
||||
.contentType(MediaType.APPLICATION_JSON)
|
||||
.accept(MediaType.APPLICATION_JSON).content("{\"a\":\"alpha\"}"))
|
||||
.andExpect(status().isOk()).andDo(document("original-request"))
|
||||
.andDo(document("preprocessed-request",
|
||||
preprocessRequest(prettyPrint(),
|
||||
removeHeaders("a", HttpHeaders.HOST,
|
||||
HttpHeaders.CONTENT_LENGTH),
|
||||
replacePattern(pattern, "\"<<beta>>\""))));
|
||||
|
||||
assertThat(
|
||||
new File("build/generated-snippets/original-request/http-request.adoc"),
|
||||
is(snippet().withContents(
|
||||
httpRequest(RequestMethod.GET, "/").header("a", "alpha")
|
||||
.header("b", "bravo")
|
||||
.header("Content-Type", "application/json")
|
||||
.header("Accept", MediaType.APPLICATION_JSON_VALUE)
|
||||
.header("Host", "localhost")
|
||||
.header("Content-Length", "13")
|
||||
.content("{\"a\":\"alpha\"}"))));
|
||||
is(snippet().withContents(httpRequest(RequestMethod.GET, "/")
|
||||
.header("a", "alpha").header("b", "bravo")
|
||||
.header("Content-Type", "application/json")
|
||||
.header("Accept", MediaType.APPLICATION_JSON_VALUE)
|
||||
.header("Host", "localhost").header("Content-Length", "13")
|
||||
.content("{\"a\":\"alpha\"}"))));
|
||||
String prettyPrinted = String.format("{%n \"a\" : \"<<beta>>\"%n}");
|
||||
assertThat(
|
||||
new File(
|
||||
"build/generated-snippets/preprocessed-request/http-request.adoc"),
|
||||
is(snippet().withContents(
|
||||
httpRequest(RequestMethod.GET, "/").header("b", "bravo")
|
||||
.header("Content-Type", "application/json")
|
||||
.header("Accept", MediaType.APPLICATION_JSON_VALUE)
|
||||
.content(prettyPrinted))));
|
||||
is(snippet().withContents(httpRequest(RequestMethod.GET, "/")
|
||||
.header("b", "bravo").header("Content-Type", "application/json")
|
||||
.header("Accept", MediaType.APPLICATION_JSON_VALUE)
|
||||
.content(prettyPrinted))));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -323,35 +307,29 @@ public class MockMvcRestDocumentationIntegrationTests {
|
||||
Pattern pattern = Pattern.compile("(\"alpha\")");
|
||||
|
||||
mockMvc.perform(get("/").accept(MediaType.APPLICATION_JSON))
|
||||
.andExpect(status().isOk())
|
||||
.andDo(document("original-response"))
|
||||
.andDo(document(
|
||||
"preprocessed-response",
|
||||
preprocessResponse(prettyPrint(), maskLinks(),
|
||||
removeHeaders("a"),
|
||||
.andExpect(status().isOk()).andDo(document("original-response"))
|
||||
.andDo(document("preprocessed-response",
|
||||
preprocessResponse(prettyPrint(), maskLinks(), removeHeaders("a"),
|
||||
replacePattern(pattern, "\"<<beta>>\""))));
|
||||
|
||||
String original = "{\"a\":\"alpha\",\"links\":[{\"rel\":\"rel\","
|
||||
+ "\"href\":\"href\"}]}";
|
||||
assertThat(
|
||||
new File("build/generated-snippets/original-response/http-response.adoc"),
|
||||
is(snippet().withContents(
|
||||
httpResponse(HttpStatus.OK)
|
||||
.header("a", "alpha")
|
||||
.header("Content-Type", "application/json")
|
||||
.header(HttpHeaders.CONTENT_LENGTH,
|
||||
original.getBytes().length).content(original))));
|
||||
is(snippet().withContents(httpResponse(HttpStatus.OK).header("a", "alpha")
|
||||
.header("Content-Type", "application/json")
|
||||
.header(HttpHeaders.CONTENT_LENGTH, original.getBytes().length)
|
||||
.content(original))));
|
||||
String prettyPrinted = String.format("{%n \"a\" : \"<<beta>>\",%n \"links\" : "
|
||||
+ "[ {%n \"rel\" : \"rel\",%n \"href\" : \"...\"%n } ]%n}");
|
||||
assertThat(
|
||||
new File(
|
||||
"build/generated-snippets/preprocessed-response/http-response.adoc"),
|
||||
is(snippet().withContents(
|
||||
httpResponse(HttpStatus.OK)
|
||||
.header("Content-Type", "application/json")
|
||||
.header(HttpHeaders.CONTENT_LENGTH,
|
||||
prettyPrinted.getBytes().length)
|
||||
.content(prettyPrinted))));
|
||||
is(snippet().withContents(httpResponse(HttpStatus.OK)
|
||||
.header("Content-Type", "application/json")
|
||||
.header(HttpHeaders.CONTENT_LENGTH,
|
||||
prettyPrinted.getBytes().length)
|
||||
.content(prettyPrinted))));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -359,8 +337,8 @@ public class MockMvcRestDocumentationIntegrationTests {
|
||||
MockMvc mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
|
||||
.apply(documentationConfiguration(this.restDocumentation)).build();
|
||||
|
||||
ClassLoader classLoader = new URLClassLoader(new URL[] { new File(
|
||||
"src/test/resources/custom-snippet-templates").toURI().toURL() },
|
||||
ClassLoader classLoader = new URLClassLoader(new URL[] {
|
||||
new File("src/test/resources/custom-snippet-templates").toURI().toURL() },
|
||||
getClass().getClassLoader());
|
||||
ClassLoader previous = Thread.currentThread().getContextClassLoader();
|
||||
Thread.currentThread().setContextClassLoader(classLoader);
|
||||
@@ -372,15 +350,13 @@ public class MockMvcRestDocumentationIntegrationTests {
|
||||
finally {
|
||||
Thread.currentThread().setContextClassLoader(previous);
|
||||
}
|
||||
assertThat(new File(
|
||||
"build/generated-snippets/custom-snippet-template/curl-request.adoc"),
|
||||
assertThat(
|
||||
new File(
|
||||
"build/generated-snippets/custom-snippet-template/curl-request.adoc"),
|
||||
is(snippet().withContents(equalTo("Custom curl request"))));
|
||||
|
||||
mockMvc.perform(get("/")).andDo(
|
||||
document(
|
||||
"index",
|
||||
curlRequest(attributes(key("title").value(
|
||||
"Access the index using curl")))));
|
||||
mockMvc.perform(get("/")).andDo(document("index", curlRequest(
|
||||
attributes(key("title").value("Access the index using curl")))));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -392,12 +368,10 @@ public class MockMvcRestDocumentationIntegrationTests {
|
||||
get("/custom/").contextPath("/custom").accept(MediaType.APPLICATION_JSON))
|
||||
.andExpect(status().isOk()).andDo(document("custom-context-path"));
|
||||
assertThat(
|
||||
new File("build/generated-snippets/custom-context-path/curl-request.adoc"),
|
||||
is(snippet()
|
||||
.withContents(
|
||||
codeBlock("bash")
|
||||
.content(
|
||||
"$ curl 'http://localhost:8080/custom/' -i -H 'Accept: application/json'"))));
|
||||
new File(
|
||||
"build/generated-snippets/custom-context-path/curl-request.adoc"),
|
||||
is(snippet().withContents(codeBlock("bash").content(
|
||||
"$ curl 'http://localhost:8080/custom/' -i -H 'Accept: application/json'"))));
|
||||
}
|
||||
|
||||
private void assertExpectedSnippetFilesExist(File directory, String... snippets) {
|
||||
|
||||
@@ -20,6 +20,7 @@ import java.net.URI;
|
||||
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
|
||||
import org.springframework.hateoas.mvc.BasicLinkBuilder;
|
||||
import org.springframework.mock.web.MockHttpServletRequest;
|
||||
import org.springframework.restdocs.RestDocumentation;
|
||||
@@ -58,7 +59,7 @@ public class RestDocumentationConfigurerTests {
|
||||
public void customScheme() {
|
||||
RequestPostProcessor postProcessor = new RestDocumentationMockMvcConfigurer(
|
||||
this.restDocumentation).uris().withScheme("https")
|
||||
.beforeMockMvcCreated(null, null);
|
||||
.beforeMockMvcCreated(null, null);
|
||||
postProcessor.postProcessRequest(this.request);
|
||||
|
||||
assertUriConfiguration("https", "localhost", 8080);
|
||||
@@ -68,7 +69,7 @@ public class RestDocumentationConfigurerTests {
|
||||
public void customHost() {
|
||||
RequestPostProcessor postProcessor = new RestDocumentationMockMvcConfigurer(
|
||||
this.restDocumentation).uris().withHost("api.example.com")
|
||||
.beforeMockMvcCreated(null, null);
|
||||
.beforeMockMvcCreated(null, null);
|
||||
postProcessor.postProcessRequest(this.request);
|
||||
|
||||
assertUriConfiguration("http", "api.example.com", 8080);
|
||||
@@ -77,8 +78,8 @@ public class RestDocumentationConfigurerTests {
|
||||
@Test
|
||||
public void customPort() {
|
||||
RequestPostProcessor postProcessor = new RestDocumentationMockMvcConfigurer(
|
||||
this.restDocumentation).uris().withPort(8081)
|
||||
.beforeMockMvcCreated(null, null);
|
||||
this.restDocumentation).uris().withPort(8081).beforeMockMvcCreated(null,
|
||||
null);
|
||||
postProcessor.postProcessRequest(this.request);
|
||||
|
||||
assertUriConfiguration("http", "localhost", 8081);
|
||||
@@ -87,8 +88,8 @@ public class RestDocumentationConfigurerTests {
|
||||
@Test
|
||||
public void noContentLengthHeaderWhenRequestHasNotContent() {
|
||||
RequestPostProcessor postProcessor = new RestDocumentationMockMvcConfigurer(
|
||||
this.restDocumentation).uris().withPort(8081)
|
||||
.beforeMockMvcCreated(null, null);
|
||||
this.restDocumentation).uris().withPort(8081).beforeMockMvcCreated(null,
|
||||
null);
|
||||
postProcessor.postProcessRequest(this.request);
|
||||
assertThat(this.request.getHeader("Content-Length"), is(nullValue()));
|
||||
}
|
||||
@@ -97,8 +98,8 @@ public class RestDocumentationConfigurerTests {
|
||||
assertEquals(scheme, this.request.getScheme());
|
||||
assertEquals(host, this.request.getServerName());
|
||||
assertEquals(port, this.request.getServerPort());
|
||||
RequestContextHolder.setRequestAttributes(new ServletRequestAttributes(
|
||||
this.request));
|
||||
RequestContextHolder
|
||||
.setRequestAttributes(new ServletRequestAttributes(this.request));
|
||||
try {
|
||||
URI uri = BasicLinkBuilder.linkToCurrentMapping().toUri();
|
||||
assertEquals(scheme, uri.getScheme());
|
||||
|
||||
@@ -21,6 +21,7 @@ import java.net.URI;
|
||||
import javax.servlet.ServletContext;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import org.springframework.http.HttpMethod;
|
||||
import org.springframework.mock.web.MockHttpServletRequest;
|
||||
import org.springframework.mock.web.MockServletContext;
|
||||
|
||||
Reference in New Issue
Block a user