diff --git a/documentation/spring-boot-docs/build.gradle b/documentation/spring-boot-docs/build.gradle index bf5bf6027ce..9dde0773402 100644 --- a/documentation/spring-boot-docs/build.gradle +++ b/documentation/spring-boot-docs/build.gradle @@ -83,6 +83,8 @@ plugins.withType(EclipsePlugin) { } dependencies { + compileOnly("org.hamcrest:hamcrest-core") + implementation(project(path: ":cli:spring-boot-cli")) implementation(project(path: ":core:spring-boot-docker-compose")) implementation(project(path: ":core:spring-boot-test")) @@ -204,7 +206,6 @@ dependencies { implementation("org.springframework.pulsar:spring-pulsar") implementation("org.springframework.pulsar:spring-pulsar-reactive") implementation("org.springframework.restdocs:spring-restdocs-mockmvc") - implementation("org.springframework.restdocs:spring-restdocs-restassured") implementation("org.springframework.restdocs:spring-restdocs-webtestclient") implementation("org.springframework.security:spring-security-config") implementation("org.springframework.security:spring-security-oauth2-client") diff --git a/documentation/spring-boot-docs/src/docs/antora/modules/ROOT/pages/redirect.adoc b/documentation/spring-boot-docs/src/docs/antora/modules/ROOT/pages/redirect.adoc index a4aec2cf083..1e6f5e5cb64 100644 --- a/documentation/spring-boot-docs/src/docs/antora/modules/ROOT/pages/redirect.adoc +++ b/documentation/spring-boot-docs/src/docs/antora/modules/ROOT/pages/redirect.adoc @@ -1886,8 +1886,6 @@ * xref:reference:testing/spring-boot-applications.adoc#testing.spring-boot-applications.autoconfigured-spring-data-redis[#features.testing.spring-boot-applications.autoconfigured-spring-data-redis] * xref:reference:testing/spring-boot-applications.adoc#testing.spring-boot-applications.autoconfigured-spring-restdocs.with-mock-mvc[#boot-features-testing-spring-boot-applications-testing-autoconfigured-rest-docs-mock-mvc] * xref:reference:testing/spring-boot-applications.adoc#testing.spring-boot-applications.autoconfigured-spring-restdocs.with-mock-mvc[#features.testing.spring-boot-applications.autoconfigured-spring-restdocs.with-mock-mvc] -* xref:reference:testing/spring-boot-applications.adoc#testing.spring-boot-applications.autoconfigured-spring-restdocs.with-rest-assured[#boot-features-testing-spring-boot-applications-testing-autoconfigured-rest-docs-rest-assured] -* xref:reference:testing/spring-boot-applications.adoc#testing.spring-boot-applications.autoconfigured-spring-restdocs.with-rest-assured[#features.testing.spring-boot-applications.autoconfigured-spring-restdocs.with-rest-assured] * xref:reference:testing/spring-boot-applications.adoc#testing.spring-boot-applications.autoconfigured-spring-restdocs.with-web-test-client[#boot-features-testing-spring-boot-applications-testing-autoconfigured-rest-docs-web-test-client] * xref:reference:testing/spring-boot-applications.adoc#testing.spring-boot-applications.autoconfigured-spring-restdocs.with-web-test-client[#features.testing.spring-boot-applications.autoconfigured-spring-restdocs.with-web-test-client] * xref:reference:testing/spring-boot-applications.adoc#testing.spring-boot-applications.autoconfigured-spring-restdocs[#boot-features-testing-spring-boot-applications-testing-autoconfigured-rest-docs] diff --git a/documentation/spring-boot-docs/src/docs/antora/modules/reference/pages/testing/spring-boot-applications.adoc b/documentation/spring-boot-docs/src/docs/antora/modules/reference/pages/testing/spring-boot-applications.adoc index 6c90a670da5..d6224f8de50 100644 --- a/documentation/spring-boot-docs/src/docs/antora/modules/reference/pages/testing/spring-boot-applications.adoc +++ b/documentation/spring-boot-docs/src/docs/antora/modules/reference/pages/testing/spring-boot-applications.adoc @@ -746,7 +746,7 @@ The specific beans that you want to test should be specified by using the `value [[testing.spring-boot-applications.autoconfigured-spring-restdocs]] == Auto-configured Spring REST Docs Tests -You can use the javadoc:org.springframework.boot.restdocs.test.autoconfigure.AutoConfigureRestDocs[format=annotation] annotation from the `spring-boot-restdocs- module to use {url-spring-restdocs-site}[Spring REST Docs] in your tests with Mock MVC, REST Assured, or WebTestClient. +You can use the javadoc:org.springframework.boot.restdocs.test.autoconfigure.AutoConfigureRestDocs[format=annotation] annotation from the `spring-boot-restdocs- module to use {url-spring-restdocs-site}[Spring REST Docs] in your tests with Mock MVC or WebTestClient. It removes the need for the JUnit extension in Spring REST Docs. javadoc:org.springframework.boot.restdocs.test.autoconfigure.AutoConfigureRestDocs[format=annotation] can be used to override the default output directory (`target/generated-snippets` if you are using Maven or `build/generated-snippets` if you are using Gradle). @@ -799,20 +799,6 @@ include-code::MyWebTestClientBuilderCustomizerConfiguration[] -[[testing.spring-boot-applications.autoconfigured-spring-restdocs.with-rest-assured]] -=== Auto-configured Spring REST Docs Tests With REST Assured - -javadoc:org.springframework.boot.restdocs.test.autoconfigure.AutoConfigureRestDocs[format=annotation] makes a javadoc:io.restassured.specification.RequestSpecification[] bean, preconfigured to use Spring REST Docs, available to your tests. -You can inject it by using javadoc:org.springframework.beans.factory.annotation.Autowired[format=annotation] and use it in your tests as you normally would when using REST Assured and Spring REST Docs, as shown in the following example: - -include-code::MyUserDocumentationTests[] - -If you require more control over Spring REST Docs configuration than offered by the attributes of javadoc:org.springframework.boot.restdocs.test.autoconfigure.AutoConfigureRestDocs[format=annotation], a javadoc:org.springframework.boot.restdocs.test.autoconfigure.RestDocsRestAssuredConfigurationCustomizer[] bean can be used, as shown in the following example: - -include-code::MyRestDocsConfiguration[] - - - [[testing.spring-boot-applications.autoconfigured-webservices]] == Auto-configured Spring Web Services Tests diff --git a/documentation/spring-boot-docs/src/main/java/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withrestassured/MyRestDocsConfiguration.java b/documentation/spring-boot-docs/src/main/java/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withrestassured/MyRestDocsConfiguration.java deleted file mode 100644 index debb703c38e..00000000000 --- a/documentation/spring-boot-docs/src/main/java/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withrestassured/MyRestDocsConfiguration.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright 2012-present the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.boot.docs.testing.springbootapplications.autoconfiguredspringrestdocs.withrestassured; - -import org.springframework.boot.restdocs.test.autoconfigure.RestDocsRestAssuredConfigurationCustomizer; -import org.springframework.boot.test.context.TestConfiguration; -import org.springframework.restdocs.restassured.RestAssuredRestDocumentationConfigurer; -import org.springframework.restdocs.templates.TemplateFormats; - -@TestConfiguration(proxyBeanMethods = false) -public class MyRestDocsConfiguration implements RestDocsRestAssuredConfigurationCustomizer { - - @Override - public void customize(RestAssuredRestDocumentationConfigurer configurer) { - configurer.snippets().withTemplateFormat(TemplateFormats.markdown()); - } - -} diff --git a/documentation/spring-boot-docs/src/main/java/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withrestassured/MyUserDocumentationTests.java b/documentation/spring-boot-docs/src/main/java/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withrestassured/MyUserDocumentationTests.java deleted file mode 100644 index 24d23f8f34e..00000000000 --- a/documentation/spring-boot-docs/src/main/java/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withrestassured/MyUserDocumentationTests.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright 2012-present the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.boot.docs.testing.springbootapplications.autoconfiguredspringrestdocs.withrestassured; - -import io.restassured.specification.RequestSpecification; -import org.junit.jupiter.api.Test; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.restdocs.test.autoconfigure.AutoConfigureRestDocs; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; -import org.springframework.boot.test.web.server.LocalServerPort; - -import static io.restassured.RestAssured.given; -import static org.hamcrest.Matchers.is; -import static org.springframework.restdocs.restassured.RestAssuredRestDocumentation.document; - -@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) -@AutoConfigureRestDocs -class MyUserDocumentationTests { - - @Test - void listUsers(@Autowired RequestSpecification documentationSpec, @LocalServerPort int port) { - // @formatter:off - given(documentationSpec) - .filter(document("list-users")) - .when() - .port(port) - .get("/") - .then().assertThat() - .statusCode(is(200)); - // @formatter:on - } - -} diff --git a/documentation/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withrestassured/MyRestDocsConfiguration.kt b/documentation/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withrestassured/MyRestDocsConfiguration.kt deleted file mode 100644 index 54890a13bba..00000000000 --- a/documentation/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withrestassured/MyRestDocsConfiguration.kt +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright 2012-present the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.boot.docs.testing.springbootapplications.autoconfiguredspringrestdocs.withrestassured - -import org.springframework.boot.restdocs.test.autoconfigure.RestDocsRestAssuredConfigurationCustomizer -import org.springframework.boot.test.context.TestConfiguration -import org.springframework.restdocs.restassured.RestAssuredRestDocumentationConfigurer -import org.springframework.restdocs.templates.TemplateFormats - -@TestConfiguration(proxyBeanMethods = false) -class MyRestDocsConfiguration : RestDocsRestAssuredConfigurationCustomizer { - - override fun customize(configurer: RestAssuredRestDocumentationConfigurer) { - configurer.snippets().withTemplateFormat(TemplateFormats.markdown()) - } - -} - diff --git a/documentation/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withrestassured/MyUserDocumentationTests.kt b/documentation/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withrestassured/MyUserDocumentationTests.kt deleted file mode 100644 index c7f574c52d3..00000000000 --- a/documentation/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withrestassured/MyUserDocumentationTests.kt +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright 2012-present the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.boot.docs.testing.springbootapplications.autoconfiguredspringrestdocs.withrestassured - -import io.restassured.RestAssured -import io.restassured.specification.RequestSpecification -import org.hamcrest.Matchers -import org.junit.jupiter.api.Test -import org.springframework.beans.factory.annotation.Autowired -import org.springframework.boot.restdocs.test.autoconfigure.AutoConfigureRestDocs -import org.springframework.boot.test.context.SpringBootTest -import org.springframework.boot.test.context.SpringBootTest.WebEnvironment -import org.springframework.boot.test.web.server.LocalServerPort -import org.springframework.restdocs.restassured.RestAssuredRestDocumentation - -@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) -@AutoConfigureRestDocs -class MyUserDocumentationTests { - - @Test - fun listUsers(@Autowired documentationSpec: RequestSpecification?, @LocalServerPort port: Int) { - RestAssured.given(documentationSpec) - .filter(RestAssuredRestDocumentation.document("list-users")) - .`when`() - .port(port)["/"] - .then().assertThat() - .statusCode(Matchers.`is`(200)) - } - -} - diff --git a/module/spring-boot-restdocs/build.gradle b/module/spring-boot-restdocs/build.gradle index 0e83001e147..37aefce6dc6 100644 --- a/module/spring-boot-restdocs/build.gradle +++ b/module/spring-boot-restdocs/build.gradle @@ -32,7 +32,6 @@ dependencies { optional(project(":module:spring-boot-webflux-test")) optional(project(":module:spring-boot-webmvc-test")) optional("org.springframework.restdocs:spring-restdocs-mockmvc") - optional("org.springframework.restdocs:spring-restdocs-restassured") optional("org.springframework.restdocs:spring-restdocs-webtestclient") testImplementation(project(":test-support:spring-boot-test-support")) diff --git a/module/spring-boot-restdocs/src/main/java/org/springframework/boot/restdocs/test/autoconfigure/AutoConfigureRestDocs.java b/module/spring-boot-restdocs/src/main/java/org/springframework/boot/restdocs/test/autoconfigure/AutoConfigureRestDocs.java index 2a4d0a95c48..e64cae34169 100644 --- a/module/spring-boot-restdocs/src/main/java/org/springframework/boot/restdocs/test/autoconfigure/AutoConfigureRestDocs.java +++ b/module/spring-boot-restdocs/src/main/java/org/springframework/boot/restdocs/test/autoconfigure/AutoConfigureRestDocs.java @@ -23,8 +23,6 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -import io.restassured.RestAssured; - import org.springframework.boot.autoconfigure.ImportAutoConfiguration; import org.springframework.boot.test.context.PropertyMapping; import org.springframework.context.annotation.Import; @@ -35,22 +33,19 @@ import org.springframework.test.web.servlet.MockMvc; /** * Annotation that can be applied to a test class to enable and configure * auto-configuration of Spring REST Docs. The auto-configuration sets up - * {@link MockMvc}-based testing of a servlet web application, {@link WebTestClient}-based - * testing of a reactive web application, or {@link RestAssured}-based testing of any web - * application over HTTP. + * {@link MockMvc}-based testing of a servlet web application or + * {@link WebTestClient}-based testing of a reactive web application. *

* Allows configuration of the output directory and the host, scheme, and port of * generated URIs. When further configuration is required a - * {@link RestDocsMockMvcConfigurationCustomizer}, - * {@link RestDocsWebTestClientConfigurationCustomizer}, or - * {@link RestDocsRestAssuredConfigurationCustomizer} bean can be used. + * {@link RestDocsMockMvcConfigurationCustomizer} or + * {@link RestDocsWebTestClientConfigurationCustomizer} bean can be used. * * @author Andy Wilkinson * @since 4.0.0 * @see RestDocsAutoConfiguration * @see RestDocsMockMvcConfigurationCustomizer * @see RestDocsWebTestClientConfigurationCustomizer - * @see RestDocsRestAssuredConfigurationCustomizer */ @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) diff --git a/module/spring-boot-restdocs/src/main/java/org/springframework/boot/restdocs/test/autoconfigure/RestDocsAutoConfiguration.java b/module/spring-boot-restdocs/src/main/java/org/springframework/boot/restdocs/test/autoconfigure/RestDocsAutoConfiguration.java index fabc84132aa..1d692cfdda0 100644 --- a/module/spring-boot-restdocs/src/main/java/org/springframework/boot/restdocs/test/autoconfigure/RestDocsAutoConfiguration.java +++ b/module/spring-boot-restdocs/src/main/java/org/springframework/boot/restdocs/test/autoconfigure/RestDocsAutoConfiguration.java @@ -16,9 +16,6 @@ package org.springframework.boot.restdocs.test.autoconfigure; -import io.restassured.builder.RequestSpecBuilder; -import io.restassured.specification.RequestSpecification; - import org.springframework.beans.factory.ObjectProvider; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; @@ -34,8 +31,6 @@ import org.springframework.restdocs.RestDocumentationContextProvider; import org.springframework.restdocs.mockmvc.MockMvcRestDocumentation; import org.springframework.restdocs.mockmvc.MockMvcRestDocumentationConfigurer; import org.springframework.restdocs.mockmvc.RestDocumentationResultHandler; -import org.springframework.restdocs.restassured.RestAssuredRestDocumentation; -import org.springframework.restdocs.restassured.RestAssuredRestDocumentationConfigurer; import org.springframework.restdocs.webtestclient.WebTestClientRestDocumentation; import org.springframework.restdocs.webtestclient.WebTestClientRestDocumentationConfigurer; @@ -78,31 +73,6 @@ public final class RestDocsAutoConfiguration { } - @Configuration(proxyBeanMethods = false) - @ConditionalOnClass({ RequestSpecification.class, RestAssuredRestDocumentation.class }) - @EnableConfigurationProperties(RestDocsProperties.class) - static class RestDocsRestAssuredConfiguration { - - @Bean - @ConditionalOnMissingBean - RequestSpecification restDocsRestAssuredConfigurer( - ObjectProvider configurationCustomizers, - RestDocumentationContextProvider contextProvider) { - RestAssuredRestDocumentationConfigurer configurer = RestAssuredRestDocumentation - .documentationConfiguration(contextProvider); - configurationCustomizers.orderedStream() - .forEach((configurationCustomizer) -> configurationCustomizer.customize(configurer)); - return new RequestSpecBuilder().addFilter(configurer).build(); - } - - @Bean - RestDocsRestAssuredBuilderCustomizer restAssuredBuilderCustomizer(RestDocsProperties properties, - RequestSpecification configurer) { - return new RestDocsRestAssuredBuilderCustomizer(properties, configurer); - } - - } - @Configuration(proxyBeanMethods = false) @ConditionalOnClass({ WebTestClientRestDocumentation.class, WebTestClientBuilderCustomizer.class }) @ConditionalOnWebApplication(type = Type.REACTIVE) diff --git a/module/spring-boot-restdocs/src/main/java/org/springframework/boot/restdocs/test/autoconfigure/RestDocsRestAssuredBuilderCustomizer.java b/module/spring-boot-restdocs/src/main/java/org/springframework/boot/restdocs/test/autoconfigure/RestDocsRestAssuredBuilderCustomizer.java deleted file mode 100644 index cc607d5c0a9..00000000000 --- a/module/spring-boot-restdocs/src/main/java/org/springframework/boot/restdocs/test/autoconfigure/RestDocsRestAssuredBuilderCustomizer.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright 2012-present the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.boot.restdocs.test.autoconfigure; - -import io.restassured.specification.RequestSpecification; - -import org.springframework.beans.factory.InitializingBean; -import org.springframework.boot.context.properties.PropertyMapper; -import org.springframework.boot.restdocs.test.autoconfigure.RestDocsProperties.Uri; -import org.springframework.util.StringUtils; - -/** - * A customizer that configures Spring REST Docs with REST Assured. - * - * @author Eddú Meléndez - */ -class RestDocsRestAssuredBuilderCustomizer implements InitializingBean { - - private final RestDocsProperties properties; - - private final RequestSpecification delegate; - - RestDocsRestAssuredBuilderCustomizer(RestDocsProperties properties, RequestSpecification delegate) { - this.properties = properties; - this.delegate = delegate; - } - - @Override - public void afterPropertiesSet() throws Exception { - PropertyMapper map = PropertyMapper.get(); - Uri uri = this.properties.getUri(); - String host = uri.getHost(); - map.from(uri::getScheme) - .when((scheme) -> StringUtils.hasText(scheme) && StringUtils.hasText(host)) - .to((scheme) -> this.delegate.baseUri(scheme + "://" + host)); - map.from(uri::getPort).to(this.delegate::port); - } - -} diff --git a/module/spring-boot-restdocs/src/main/java/org/springframework/boot/restdocs/test/autoconfigure/RestDocsRestAssuredConfigurationCustomizer.java b/module/spring-boot-restdocs/src/main/java/org/springframework/boot/restdocs/test/autoconfigure/RestDocsRestAssuredConfigurationCustomizer.java deleted file mode 100644 index 53b774b193b..00000000000 --- a/module/spring-boot-restdocs/src/main/java/org/springframework/boot/restdocs/test/autoconfigure/RestDocsRestAssuredConfigurationCustomizer.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright 2012-present the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.boot.restdocs.test.autoconfigure; - -import org.springframework.restdocs.restassured.RestAssuredRestDocumentationConfigurer; - -/** - * A customizer for {@link RestAssuredRestDocumentationConfigurer}. If a - * {@code RestDocsRestAssuredConfigurationCustomizer} bean is found in the application - * context it will be {@link #customize called} to customize the - * {@code RestAssuredRestDocumentationConfigurer} before it is applied. Intended for use - * only when the attributes on {@link AutoConfigureRestDocs @AutoConfigureRestDocs} do not - * provide sufficient customization. - * - * @author Eddú Meléndez - * @since 4.0.0 - */ -@FunctionalInterface -public interface RestDocsRestAssuredConfigurationCustomizer { - - /** - * Customize the given {@code configurer}. - * @param configurer the configurer - */ - void customize(RestAssuredRestDocumentationConfigurer configurer); - -} diff --git a/module/spring-boot-restdocs/src/test/java/org/springframework/boot/restdocs/test/autoconfigure/RestAssuredRestDocsAutoConfigurationAdvancedConfigurationIntegrationTests.java b/module/spring-boot-restdocs/src/test/java/org/springframework/boot/restdocs/test/autoconfigure/RestAssuredRestDocsAutoConfigurationAdvancedConfigurationIntegrationTests.java deleted file mode 100644 index 5e8879c9e07..00000000000 --- a/module/spring-boot-restdocs/src/test/java/org/springframework/boot/restdocs/test/autoconfigure/RestAssuredRestDocsAutoConfigurationAdvancedConfigurationIntegrationTests.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright 2012-present the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.boot.restdocs.test.autoconfigure; - -import java.io.File; - -import io.restassured.specification.RequestSpecification; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; -import org.springframework.boot.test.context.TestConfiguration; -import org.springframework.boot.test.web.server.LocalServerPort; -import org.springframework.boot.testsupport.BuildOutput; -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.util.FileSystemUtils; - -import static io.restassured.RestAssured.given; -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.contentOf; -import static org.hamcrest.Matchers.is; -import static org.springframework.restdocs.operation.preprocess.Preprocessors.modifyUris; -import static org.springframework.restdocs.operation.preprocess.Preprocessors.preprocessRequest; -import static org.springframework.restdocs.payload.PayloadDocumentation.fieldWithPath; -import static org.springframework.restdocs.payload.PayloadDocumentation.responseFields; -import static org.springframework.restdocs.restassured.RestAssuredRestDocumentation.document; - -/** - * Integration tests for advanced configuration of - * {@link AutoConfigureRestDocs @AutoConfigureRestDocs} with REST Assured. - * - * @author Eddú Meléndez - */ -@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) -@AutoConfigureRestDocs -class RestAssuredRestDocsAutoConfigurationAdvancedConfigurationIntegrationTests { - - @LocalServerPort - private int port; - - @Autowired - private RequestSpecification documentationSpec; - - private File generatedSnippets; - - @BeforeEach - void deleteSnippets() { - this.generatedSnippets = new File(new BuildOutput(getClass()).getRootLocation(), "generated-snippets"); - FileSystemUtils.deleteRecursively(this.generatedSnippets); - } - - @Test - void snippetGeneration() { - 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)); - File defaultSnippetsDir = new File(this.generatedSnippets, "default-snippets"); - assertThat(defaultSnippetsDir).exists(); - assertThat(contentOf(new File(defaultSnippetsDir, "curl-request.md"))).contains("'https://api.example.com/'"); - assertThat(contentOf(new File(defaultSnippetsDir, "http-request.md"))).contains("api.example.com"); - assertThat(new File(defaultSnippetsDir, "http-response.md")).isFile(); - assertThat(new File(defaultSnippetsDir, "response-fields.md")).isFile(); - } - - @TestConfiguration(proxyBeanMethods = false) - static class CustomizationConfiguration { - - @Bean - RestDocumentationResultHandler restDocumentation() { - return MockMvcRestDocumentation.document("{method-name}"); - } - - @Bean - RestDocsRestAssuredConfigurationCustomizer templateFormatCustomizer() { - return (configurer) -> configurer.snippets().withTemplateFormat(TemplateFormats.markdown()); - } - - @Bean - RestDocsRestAssuredConfigurationCustomizer defaultSnippetsCustomizer() { - return (configurer) -> configurer.snippets() - .withAdditionalDefaults(responseFields(fieldWithPath("_links.self").description("Main URL"))); - } - - } - -} diff --git a/module/spring-boot-restdocs/src/test/java/org/springframework/boot/restdocs/test/autoconfigure/RestAssuredRestDocsAutoConfigurationIntegrationTests.java b/module/spring-boot-restdocs/src/test/java/org/springframework/boot/restdocs/test/autoconfigure/RestAssuredRestDocsAutoConfigurationIntegrationTests.java deleted file mode 100644 index e11c5bc4bfc..00000000000 --- a/module/spring-boot-restdocs/src/test/java/org/springframework/boot/restdocs/test/autoconfigure/RestAssuredRestDocsAutoConfigurationIntegrationTests.java +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright 2012-present the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.boot.restdocs.test.autoconfigure; - -import java.io.File; - -import io.restassured.specification.RequestSpecification; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; -import org.springframework.boot.test.web.server.LocalServerPort; -import org.springframework.boot.testsupport.BuildOutput; -import org.springframework.util.FileSystemUtils; - -import static io.restassured.RestAssured.given; -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.contentOf; -import static org.hamcrest.Matchers.is; -import static org.springframework.restdocs.operation.preprocess.Preprocessors.modifyUris; -import static org.springframework.restdocs.operation.preprocess.Preprocessors.preprocessRequest; -import static org.springframework.restdocs.restassured.RestAssuredRestDocumentation.document; - -/** - * Integration tests for {@link RestDocsAutoConfiguration} with REST Assured. - * - * @author Eddú Meléndez - */ -@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) -@AutoConfigureRestDocs -class RestAssuredRestDocsAutoConfigurationIntegrationTests { - - @LocalServerPort - private int port; - - @Autowired - private RequestSpecification documentationSpec; - - private File generatedSnippets; - - @BeforeEach - void deleteSnippets() { - this.generatedSnippets = new File(new BuildOutput(getClass()).getRootLocation(), "generated-snippets"); - FileSystemUtils.deleteRecursively(this.generatedSnippets); - } - - @Test - void defaultSnippetsAreWritten() { - 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)); - File defaultSnippetsDir = new File(this.generatedSnippets, "default-snippets"); - assertThat(defaultSnippetsDir).exists(); - assertThat(contentOf(new File(defaultSnippetsDir, "curl-request.adoc"))).contains("'https://api.example.com/'"); - assertThat(contentOf(new File(defaultSnippetsDir, "http-request.adoc"))).contains("api.example.com"); - assertThat(new File(defaultSnippetsDir, "http-response.adoc")).isFile(); - } - -} diff --git a/platform/spring-boot-dependencies/build.gradle b/platform/spring-boot-dependencies/build.gradle index 192ffa77e8f..0fcf8e18a7e 100644 --- a/platform/spring-boot-dependencies/build.gradle +++ b/platform/spring-boot-dependencies/build.gradle @@ -1961,14 +1961,6 @@ bom { releaseNotes("https://github.com/reactor/reactor/releases/tag/{version}") } } - library("REST Assured", "5.5.6") { - group("io.rest-assured") { - bom("rest-assured-bom") - } - links { - javadoc("https://javadoc.io/doc/io.rest-assured/rest-assured/{version}", "io.restassured") - } - } library("RSocket", "1.1.5") { group("io.rsocket") { bom("rsocket-bom")