TSK-1151: fixed pretty printing configuration for spring rest doc

This commit is contained in:
Sascha Frevel 2020-03-05 10:25:01 +01:00 committed by Holger Hagen
parent 603e1ef874
commit 89de71f242
1 changed files with 18 additions and 8 deletions

View File

@ -1,25 +1,27 @@
package pro.taskana.doc.api; package pro.taskana.doc.api;
import static org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.document;
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.prettyPrint;
import org.junit.jupiter.api.BeforeEach;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.restdocs.AutoConfigureRestDocs; import org.springframework.boot.test.autoconfigure.restdocs.AutoConfigureRestDocs;
import org.springframework.boot.test.autoconfigure.restdocs.RestDocsMockMvcConfigurationCustomizer;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.TestConfiguration;
import org.springframework.boot.web.server.LocalServerPort; import org.springframework.boot.web.server.LocalServerPort;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Import;
import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MockMvc;
import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.WebApplicationContext;
import pro.taskana.RestHelper; import pro.taskana.RestHelper;
import pro.taskana.TaskanaSpringBootTest; import pro.taskana.TaskanaSpringBootTest;
import pro.taskana.doc.api.BaseRestDocumentation.ResultHandlerConfiguration;
/** Base class for Rest Documentation tests. */ /** Base class for Rest Documentation tests. */
@TaskanaSpringBootTest
@AutoConfigureMockMvc @AutoConfigureMockMvc
@AutoConfigureRestDocs @AutoConfigureRestDocs
@TaskanaSpringBootTest @Import(ResultHandlerConfiguration.class)
public abstract class BaseRestDocumentation { public abstract class BaseRestDocumentation {
@LocalServerPort protected int port; @LocalServerPort protected int port;
@ -30,8 +32,16 @@ public abstract class BaseRestDocumentation {
@Autowired protected RestHelper restHelper; @Autowired protected RestHelper restHelper;
@BeforeEach @TestConfiguration
public void setUpMockMvc() { static class ResultHandlerConfiguration {
document("{methodName}", preprocessRequest(prettyPrint()), preprocessResponse(prettyPrint()));
@Bean
public RestDocsMockMvcConfigurationCustomizer restDocsMockMvcConfigurationCustomizer() {
return configurer ->
configurer
.operationPreprocessors()
.withRequestDefaults(prettyPrint())
.withResponseDefaults(prettyPrint());
}
} }
} }