Add support for configuring default request and response preprocessors

See gh-424
This commit is contained in:
Filip Hrisafov
2017-09-02 10:35:11 +02:00
committed by Andy Wilkinson
parent 22cf08a9ad
commit 4f8b173836
20 changed files with 699 additions and 52 deletions

View File

@@ -19,7 +19,6 @@ package com.example.mockmvc;
import org.junit.Before;
import org.junit.Rule;
import org.springframework.restdocs.JUnitRestDocumentation;
import org.springframework.restdocs.mockmvc.RestDocumentationResultHandler;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;
@@ -29,8 +28,6 @@ import static org.springframework.restdocs.hypermedia.HypermediaDocumentation.li
import static org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.document;
import static org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.documentationConfiguration;
import static org.springframework.restdocs.mockmvc.RestDocumentationRequestBuilders.get;
import static org.springframework.restdocs.operation.preprocess.Preprocessors.preprocessRequest;
import static org.springframework.restdocs.operation.preprocess.Preprocessors.preprocessResponse;
import static org.springframework.restdocs.operation.preprocess.Preprocessors.prettyPrint;
import static org.springframework.restdocs.operation.preprocess.Preprocessors.removeHeaders;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
@@ -45,16 +42,12 @@ public class EveryTestPreprocessing {
// tag::setup[]
private MockMvc mockMvc;
private RestDocumentationResultHandler documentationHandler;
@Before
public void setup() {
this.documentationHandler = document("{method-name}", // <1>
preprocessRequest(removeHeaders("Foo")),
preprocessResponse(prettyPrint()));
this.mockMvc = MockMvcBuilders.webAppContextSetup(this.context)
.apply(documentationConfiguration(this.restDocumentation))
.alwaysDo(this.documentationHandler) // <2>
.apply(documentationConfiguration(this.restDocumentation).operationPreprocessors()
.withDefaultRequestPreprocessors(removeHeaders("Foo"))
.withDefaultResponsePreprocessors(prettyPrint()))
.build();
}
@@ -64,7 +57,7 @@ public class EveryTestPreprocessing {
// tag::use[]
this.mockMvc.perform(get("/")) // <1>
.andExpect(status().isOk())
.andDo(this.documentationHandler.document( // <2>
.andDo(document("{method-name}",
links(linkWithRel("self").description("Canonical self link"))
));
// end::use[]