Polish "Add support for multiple REST Docs configuration customizers"

Closes gh-13498
This commit is contained in:
Andy Wilkinson 2018-08-16 09:46:04 +01:00
parent 4d310f0d5a
commit f10377bdb7
3 changed files with 40 additions and 44 deletions

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2017 the original author or authors. * Copyright 2012-2018 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -28,7 +28,6 @@ import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.boot.test.context.TestConfiguration; import org.springframework.boot.test.context.TestConfiguration;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.restdocs.mockmvc.MockMvcRestDocumentation; import org.springframework.restdocs.mockmvc.MockMvcRestDocumentation;
import org.springframework.restdocs.mockmvc.MockMvcRestDocumentationConfigurer;
import org.springframework.restdocs.mockmvc.RestDocumentationResultHandler; import org.springframework.restdocs.mockmvc.RestDocumentationResultHandler;
import org.springframework.restdocs.templates.TemplateFormats; import org.springframework.restdocs.templates.TemplateFormats;
import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.junit4.SpringRunner;
@ -47,6 +46,7 @@ import static org.springframework.test.web.servlet.request.MockMvcRequestBuilder
* MVC. * MVC.
* *
* @author Andy Wilkinson * @author Andy Wilkinson
* @author Eddú Meléndez
*/ */
@RunWith(SpringRunner.class) @RunWith(SpringRunner.class)
@WebMvcTest(controllers = RestDocsTestController.class, secure = false) @WebMvcTest(controllers = RestDocsTestController.class, secure = false)
@ -82,28 +82,22 @@ public class MockMvcRestDocsAutoConfigurationAdvancedConfigurationIntegrationTes
} }
@TestConfiguration @TestConfiguration
public static class CustomizationConfiguration public static class CustomizationConfiguration {
implements RestDocsMockMvcConfigurationCustomizer {
@Bean @Bean
public RestDocumentationResultHandler restDocumentation() { public RestDocumentationResultHandler restDocumentation() {
return MockMvcRestDocumentation.document("{method-name}"); return MockMvcRestDocumentation.document("{method-name}");
} }
@Override @Bean
public void customize(MockMvcRestDocumentationConfigurer configurer) { public RestDocsMockMvcConfigurationCustomizer templateFormatCustomizer() {
configurer.snippets().withTemplateFormat(TemplateFormats.markdown()); return (configurer) -> configurer.snippets()
.withTemplateFormat(TemplateFormats.markdown());
} }
} @Bean
public RestDocsMockMvcConfigurationCustomizer defaultSnippetsCustomizer() {
@TestConfiguration return (configurer) -> configurer.snippets().withAdditionalDefaults(
public static class CustomizationConfiguration2
implements RestDocsMockMvcConfigurationCustomizer {
@Override
public void customize(MockMvcRestDocumentationConfigurer configurer) {
configurer.snippets().withAdditionalDefaults(
responseFields(fieldWithPath("_links.self").description("Main URL"))); responseFields(fieldWithPath("_links.self").description("Main URL")));
} }

View File

@ -29,7 +29,9 @@ import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
import org.springframework.boot.test.context.TestConfiguration; import org.springframework.boot.test.context.TestConfiguration;
import org.springframework.boot.web.server.LocalServerPort; import org.springframework.boot.web.server.LocalServerPort;
import org.springframework.restdocs.restassured3.RestAssuredRestDocumentationConfigurer; import org.springframework.context.annotation.Bean;
import org.springframework.restdocs.mockmvc.MockMvcRestDocumentation;
import org.springframework.restdocs.mockmvc.RestDocumentationResultHandler;
import org.springframework.restdocs.templates.TemplateFormats; import org.springframework.restdocs.templates.TemplateFormats;
import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.util.FileSystemUtils; import org.springframework.util.FileSystemUtils;
@ -87,23 +89,22 @@ public class RestAssuredRestDocsAutoConfigurationAdvancedConfigurationIntegratio
} }
@TestConfiguration @TestConfiguration
public static class CustomizationConfiguration public static class CustomizationConfiguration {
implements RestDocsRestAssuredConfigurationCustomizer {
@Override @Bean
public void customize(RestAssuredRestDocumentationConfigurer configurer) { public RestDocumentationResultHandler restDocumentation() {
configurer.snippets().withTemplateFormat(TemplateFormats.markdown()); return MockMvcRestDocumentation.document("{method-name}");
} }
} @Bean
public RestDocsRestAssuredConfigurationCustomizer templateFormatCustomizer() {
return (configurer) -> configurer.snippets()
.withTemplateFormat(TemplateFormats.markdown());
}
@TestConfiguration @Bean
public static class CustomizationConfiguration2 public RestDocsRestAssuredConfigurationCustomizer defaultSnippetsCustomizer() {
implements RestDocsRestAssuredConfigurationCustomizer { return (configurer) -> configurer.snippets().withAdditionalDefaults(
@Override
public void customize(RestAssuredRestDocumentationConfigurer configurer) {
configurer.snippets().withAdditionalDefaults(
responseFields(fieldWithPath("_links.self").description("Main URL"))); responseFields(fieldWithPath("_links.self").description("Main URL")));
} }

View File

@ -26,8 +26,10 @@ import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.reactive.WebFluxTest; import org.springframework.boot.test.autoconfigure.web.reactive.WebFluxTest;
import org.springframework.boot.test.context.TestConfiguration; import org.springframework.boot.test.context.TestConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.restdocs.mockmvc.MockMvcRestDocumentation;
import org.springframework.restdocs.mockmvc.RestDocumentationResultHandler;
import org.springframework.restdocs.templates.TemplateFormats; import org.springframework.restdocs.templates.TemplateFormats;
import org.springframework.restdocs.webtestclient.WebTestClientRestDocumentationConfigurer;
import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.reactive.server.WebTestClient; import org.springframework.test.web.reactive.server.WebTestClient;
import org.springframework.util.FileSystemUtils; import org.springframework.util.FileSystemUtils;
@ -74,23 +76,22 @@ public class WebTestClientRestDocsAutoConfigurationAdvancedConfigurationIntegrat
} }
@TestConfiguration @TestConfiguration
public static class CustomizationConfiguration public static class CustomizationConfiguration {
implements RestDocsWebTestClientConfigurationCustomizer {
@Override @Bean
public void customize(WebTestClientRestDocumentationConfigurer configurer) { public RestDocumentationResultHandler restDocumentation() {
configurer.snippets().withTemplateFormat(TemplateFormats.markdown()); return MockMvcRestDocumentation.document("{method-name}");
} }
} @Bean
public RestDocsWebTestClientConfigurationCustomizer templateFormatCustomizer() {
return (configurer) -> configurer.snippets()
.withTemplateFormat(TemplateFormats.markdown());
}
@TestConfiguration @Bean
public static class CustomizationConfiguration2 public RestDocsWebTestClientConfigurationCustomizer defaultSnippetsCustomizer() {
implements RestDocsWebTestClientConfigurationCustomizer { return (configurer) -> configurer.snippets().withAdditionalDefaults(
@Override
public void customize(WebTestClientRestDocumentationConfigurer configurer) {
configurer.snippets().withAdditionalDefaults(
responseFields(fieldWithPath("_links.self").description("Main URL"))); responseFields(fieldWithPath("_links.self").description("Main URL")));
} }