Polish "Add auto-configuration for REST Docs with REST Assured"
Closes gh-9643
This commit is contained in:
@@ -45,11 +45,12 @@ import org.springframework.restdocs.restassured3.RestAssuredRestDocumentationCon
|
||||
*/
|
||||
@Configuration
|
||||
@EnableConfigurationProperties
|
||||
@ConditionalOnWebApplication
|
||||
public class RestDocsAutoConfiguration {
|
||||
|
||||
@Configuration
|
||||
@ConditionalOnWebApplication(type = Type.SERVLET)
|
||||
@ConditionalOnClass(MockMvcRestDocumentation.class)
|
||||
@ConditionalOnWebApplication(type = Type.SERVLET)
|
||||
static class RestDocsMockMvcAutoConfiguration {
|
||||
|
||||
@Bean
|
||||
@@ -79,7 +80,8 @@ public class RestDocsAutoConfiguration {
|
||||
}
|
||||
|
||||
@Configuration
|
||||
@ConditionalOnClass({ RequestSpecification.class, RestAssuredRestDocumentation.class })
|
||||
@ConditionalOnClass({ RequestSpecification.class,
|
||||
RestAssuredRestDocumentation.class })
|
||||
static class RestDocsRestAssuredAutoConfiguration {
|
||||
|
||||
@Bean
|
||||
@@ -89,7 +91,8 @@ public class RestDocsAutoConfiguration {
|
||||
RestDocumentationContextProvider contextProvider) {
|
||||
RestAssuredRestDocumentationConfigurer configurer = RestAssuredRestDocumentation
|
||||
.documentationConfiguration(contextProvider);
|
||||
RestDocsRestAssuredConfigurationCustomizer configurationCustomizer = configurationCustomizerProvider.getIfAvailable();
|
||||
RestDocsRestAssuredConfigurationCustomizer configurationCustomizer = configurationCustomizerProvider
|
||||
.getIfAvailable();
|
||||
if (configurationCustomizer != null) {
|
||||
configurationCustomizer.customize(configurer);
|
||||
}
|
||||
@@ -105,5 +108,4 @@ public class RestDocsAutoConfiguration {
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
/**
|
||||
* A customizer that configures Spring REST Docs with RestAssured.
|
||||
* A customizer that configures Spring REST Docs with REST Assured.
|
||||
*
|
||||
* @author Eddú Meléndez
|
||||
*/
|
||||
|
||||
@@ -41,14 +41,15 @@ import static org.springframework.restdocs.hypermedia.HypermediaDocumentation.li
|
||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
|
||||
|
||||
/**
|
||||
* Tests for {@link AutoConfigureRestDocs}.
|
||||
* Integration tests for advanced configuration of {@link AutoConfigureRestDocs} with Mock
|
||||
* MVC.
|
||||
*
|
||||
* @author Andy Wilkinson
|
||||
*/
|
||||
@RunWith(SpringRunner.class)
|
||||
@WebMvcTest(controllers = RestDocsTestController.class, secure = false)
|
||||
@AutoConfigureRestDocs
|
||||
public class RestDocsAutoConfigurationAdvancedConfigurationIntegrationTests {
|
||||
public class MockMvcRestDocsAutoConfigurationAdvancedConfigurationIntegrationTests {
|
||||
|
||||
@Before
|
||||
public void deleteSnippets() {
|
||||
@@ -34,14 +34,14 @@ import static org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.docu
|
||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
|
||||
|
||||
/**
|
||||
* Tests for {@link RestDocsAutoConfiguration}.
|
||||
* Integration tests for {@link RestDocsAutoConfiguration} with Mock MVC.
|
||||
*
|
||||
* @author Andy Wilkinson
|
||||
*/
|
||||
@RunWith(SpringRunner.class)
|
||||
@WebMvcTest
|
||||
@AutoConfigureRestDocs(uriScheme = "https", uriHost = "api.example.com", uriPort = 443)
|
||||
public class RestDocsAutoConfigurationIntegrationTests {
|
||||
public class MockMvcRestDocsAutoConfigurationIntegrationTests {
|
||||
|
||||
@Before
|
||||
public void deleteSnippets() {
|
||||
@@ -42,14 +42,15 @@ import static org.springframework.restdocs.restassured3.RestAssuredRestDocumenta
|
||||
import static org.springframework.restdocs.restassured3.operation.preprocess.RestAssuredPreprocessors.modifyUris;
|
||||
|
||||
/**
|
||||
* Tests for {@link AutoConfigureRestDocs}.
|
||||
* Integration tests for advanced configuration of {@link AutoConfigureRestDocs} with REST
|
||||
* Assured.
|
||||
*
|
||||
* @author Eddú Meléndez
|
||||
*/
|
||||
@RunWith(SpringRunner.class)
|
||||
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
|
||||
@AutoConfigureRestDocs
|
||||
public class RestAssuredAutoConfigurationAdvancedConfigurationIntegrationTests {
|
||||
public class RestAssuredRestDocsAutoConfigurationAdvancedConfigurationIntegrationTests {
|
||||
|
||||
@LocalServerPort
|
||||
private int port;
|
||||
@@ -65,15 +66,16 @@ public class RestAssuredAutoConfigurationAdvancedConfigurationIntegrationTests {
|
||||
@Test
|
||||
public void snippetGeneration() throws Exception {
|
||||
given(this.documentationSpec)
|
||||
.filter(document("default-snippets", preprocessRequest(modifyUris()
|
||||
.scheme("https").host("api.example.com").removePort()))).when()
|
||||
.port(this.port).get("/").then().assertThat().statusCode(is(200));
|
||||
.filter(document("default-snippets",
|
||||
preprocessRequest(modifyUris().scheme("https")
|
||||
.host("api.example.com").removePort())))
|
||||
.when().port(this.port).get("/").then().assertThat().statusCode(is(200));
|
||||
File defaultSnippetsDir = new File("target/generated-snippets/default-snippets");
|
||||
assertThat(defaultSnippetsDir).exists();
|
||||
assertThat(new File(defaultSnippetsDir, "curl-request.md")).has(
|
||||
contentContaining("'https://api.example.com/'"));
|
||||
assertThat(new File(defaultSnippetsDir, "http-request.md")).has(
|
||||
contentContaining("api.example.com"));
|
||||
assertThat(new File(defaultSnippetsDir, "curl-request.md"))
|
||||
.has(contentContaining("'https://api.example.com/'"));
|
||||
assertThat(new File(defaultSnippetsDir, "http-request.md"))
|
||||
.has(contentContaining("api.example.com"));
|
||||
assertThat(new File(defaultSnippetsDir, "http-response.md")).isFile();
|
||||
}
|
||||
|
||||
@@ -82,8 +84,8 @@ public class RestAssuredAutoConfigurationAdvancedConfigurationIntegrationTests {
|
||||
}
|
||||
|
||||
@TestConfiguration
|
||||
public static class CustomizationConfiguration implements
|
||||
RestDocsRestAssuredConfigurationCustomizer {
|
||||
public static class CustomizationConfiguration
|
||||
implements RestDocsRestAssuredConfigurationCustomizer {
|
||||
|
||||
@Override
|
||||
public void customize(RestAssuredRestDocumentationConfigurer configurer) {
|
||||
@@ -39,14 +39,14 @@ import static org.springframework.restdocs.restassured3.RestAssuredRestDocumenta
|
||||
import static org.springframework.restdocs.restassured3.operation.preprocess.RestAssuredPreprocessors.modifyUris;
|
||||
|
||||
/**
|
||||
* Tests for {@link RestDocsAutoConfiguration}
|
||||
* Integration tests for {@link RestDocsAutoConfiguration} with REST Assured.
|
||||
*
|
||||
* @author Eddú Meléndez
|
||||
*/
|
||||
@RunWith(SpringRunner.class)
|
||||
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
|
||||
@AutoConfigureRestDocs
|
||||
public class RestAssuredAutoConfigurationIntegrationTests {
|
||||
public class RestAssuredRestDocsAutoConfigurationIntegrationTests {
|
||||
|
||||
@LocalServerPort
|
||||
private int port;
|
||||
@@ -62,15 +62,16 @@ public class RestAssuredAutoConfigurationIntegrationTests {
|
||||
@Test
|
||||
public void defaultSnippetsAreWritten() throws Exception {
|
||||
given(this.documentationSpec)
|
||||
.filter(document("default-snippets", preprocessRequest(modifyUris()
|
||||
.scheme("https").host("api.example.com").removePort()))).when()
|
||||
.port(this.port).get("/").then().assertThat().statusCode(is(200));
|
||||
.filter(document("default-snippets",
|
||||
preprocessRequest(modifyUris().scheme("https")
|
||||
.host("api.example.com").removePort())))
|
||||
.when().port(this.port).get("/").then().assertThat().statusCode(is(200));
|
||||
File defaultSnippetsDir = new File("target/generated-snippets/default-snippets");
|
||||
assertThat(defaultSnippetsDir).exists();
|
||||
assertThat(new File(defaultSnippetsDir, "curl-request.adoc")).has(
|
||||
contentContaining("'https://api.example.com/'"));
|
||||
assertThat(new File(defaultSnippetsDir, "http-request.adoc")).has(
|
||||
contentContaining("api.example.com"));
|
||||
assertThat(new File(defaultSnippetsDir, "curl-request.adoc"))
|
||||
.has(contentContaining("'https://api.example.com/'"));
|
||||
assertThat(new File(defaultSnippetsDir, "http-request.adoc"))
|
||||
.has(contentContaining("api.example.com"));
|
||||
assertThat(new File(defaultSnippetsDir, "http-response.adoc")).isFile();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user