Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in / Register
Toggle navigation
S
spring-boot
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
DEMO
spring-boot
Commits
964939d3
Commit
964939d3
authored
Jan 09, 2018
by
Andy Wilkinson
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Polish "Add auto-configuration for using REST Docs with WebTestClient"
Closes gh-10696
parent
ab7c47d3
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
34 additions
and
34 deletions
+34
-34
RestDocsWebTestClientBuilderCustomizer.java
...gure/restdocs/RestDocsWebTestClientBuilderCustomizer.java
+25
-22
RestDocsWebTestClientConfigurationCustomizer.java
...estdocs/RestDocsWebTestClientConfigurationCustomizer.java
+5
-6
WebTestClientRestDocsAutoConfigurationIntegrationTests.java
...bTestClientRestDocsAutoConfigurationIntegrationTests.java
+4
-6
No files found.
spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/restdocs/RestDocsWebTestClientBuilderCustomizer.java
View file @
964939d3
/*
* Copyright 2012-201
7
the original author or authors.
* Copyright 2012-201
8
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.
...
...
@@ -16,19 +16,18 @@
package
org
.
springframework
.
boot
.
test
.
autoconfigure
.
restdocs
;
import
org.springframework.beans.factory.InitializingBean
;
import
org.springframework.boot.test.autoconfigure.web.reactive.WebTestClientBuilderCustomizer
;
import
org.springframework.restdocs.webtestclient.WebTestClientRestDocumentationConfigurer
;
import
org.springframework.test.web.reactive.server.WebTestClient
;
import
org.springframework.util.StringUtils
;
/**
* A
customizer that configures Spring REST Docs with WebTestClient
.
* A
{@WebTestClientBuilderCustomizer} that configures Spring REST Docs
.
*
* @author Eddú Meléndez
* @author Roman Zaynetdinov
* @author Andy Wilkinson
*/
class
RestDocsWebTestClientBuilderCustomizer
implements
InitializingBean
,
WebTestClientBuilderCustomizer
{
class
RestDocsWebTestClientBuilderCustomizer
implements
WebTestClientBuilderCustomizer
{
private
final
WebTestClientRestDocumentationConfigurer
delegate
;
...
...
@@ -38,7 +37,8 @@ class RestDocsWebTestClientBuilderCustomizer implements InitializingBean, WebTes
private
Integer
uriPort
;
RestDocsWebTestClientBuilderCustomizer
(
WebTestClientRestDocumentationConfigurer
delegate
)
{
RestDocsWebTestClientBuilderCustomizer
(
WebTestClientRestDocumentationConfigurer
delegate
)
{
this
.
delegate
=
delegate
;
}
...
...
@@ -67,24 +67,27 @@ class RestDocsWebTestClientBuilderCustomizer implements InitializingBean, WebTes
}
@Override
public
void
afterPropertiesSet
()
throws
Exception
{
public
void
customize
(
WebTestClient
.
Builder
builder
)
{
customizeBaseUrl
(
builder
);
builder
.
filter
(
this
.
delegate
);
}
@Override
public
void
customize
(
WebTestClient
.
Builder
builder
)
{
if
(
StringUtils
.
hasText
(
this
.
uriScheme
)
&&
StringUtils
.
hasText
(
this
.
uriHost
))
{
String
baseUrl
=
this
.
uriScheme
+
"://"
+
this
.
uriHost
;
if
(
this
.
uriPort
==
80
&&
this
.
uriScheme
.
equals
(
"http"
))
{
// Don't add default port
}
else
if
(
this
.
uriPort
==
443
&&
this
.
uriScheme
.
equals
(
"https"
))
{
// Don't add default port
}
else
if
(
this
.
uriPort
!=
null
)
{
baseUrl
+=
":"
+
this
.
uriPort
;
}
builder
.
baseUrl
(
baseUrl
);
private
void
customizeBaseUrl
(
WebTestClient
.
Builder
builder
)
{
String
scheme
=
StringUtils
.
hasText
(
this
.
uriScheme
)
?
this
.
uriScheme
:
"http"
;
String
host
=
StringUtils
.
hasText
(
this
.
uriHost
)
?
this
.
uriHost
:
"localhost"
;
String
baseUrl
=
scheme
+
"://"
+
host
;
if
(!
isStandardPort
())
{
baseUrl
+=
":"
+
this
.
uriPort
;
}
builder
.
filter
(
this
.
delegate
);
builder
.
baseUrl
(
baseUrl
);
}
private
boolean
isStandardPort
()
{
if
(
this
.
uriPort
==
null
)
{
return
true
;
}
return
this
.
uriScheme
.
equals
(
"http"
)
&&
this
.
uriPort
==
80
||
this
.
uriScheme
.
equals
(
"https"
)
&&
this
.
uriPort
.
equals
(
443
);
}
}
spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/restdocs/RestDocsWebTestClientConfigurationCustomizer.java
View file @
964939d3
/*
* Copyright 2012-201
7
the original author or authors.
* Copyright 2012-201
8
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.
...
...
@@ -20,13 +20,12 @@ import org.springframework.restdocs.webtestclient.WebTestClientRestDocumentation
/**
* A customizer for {@link WebTestClientRestDocumentationConfigurer}. If a
* {@code RestDocsWebTestClientConfigurationCustomizer} bean is found in the application
context
* it will be {@link #customize called} to customize the
* {@code WebTestClientRestDocumentationConfigurer} before it is applied. Intended for use
only
* when the attributes on {@link AutoConfigureRestDocs} do not provide sufficient
* {@code RestDocsWebTestClientConfigurationCustomizer} bean is found in the application
*
context
it will be {@link #customize called} to customize the
* {@code WebTestClientRestDocumentationConfigurer} before it is applied. Intended for use
*
only
when the attributes on {@link AutoConfigureRestDocs} do not provide sufficient
* customization.
*
* @author Andy Wilkinson
* @author Roman Zaynetdinov
* @since 2.0.0
*/
...
...
spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/restdocs/WebTestClientRestDocsAutoConfigurationIntegrationTests.java
View file @
964939d3
/*
* Copyright 2012-201
7
the original author or authors.
* Copyright 2012-201
8
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.
...
...
@@ -29,14 +29,12 @@ import org.springframework.test.context.junit4.SpringRunner;
import
org.springframework.test.web.reactive.server.WebTestClient
;
import
org.springframework.util.FileSystemUtils
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
import
static
org
.
springframework
.
restdocs
.
webtestclient
.
WebTestClientRestDocumentation
.
document
;
/**
* Integration tests for {@link RestDocsAutoConfiguration} with
WebClientTest
.
* Integration tests for {@link RestDocsAutoConfiguration} with
{@link WebTestClient}
.
*
* @author Andy Wilkinson
* @author Roman Zaynetdinov
*/
@RunWith
(
SpringRunner
.
class
)
...
...
@@ -54,8 +52,8 @@ public class WebTestClientRestDocsAutoConfigurationIntegrationTests {
@Test
public
void
defaultSnippetsAreWritten
()
throws
Exception
{
this
.
webTestClient
.
get
().
uri
(
"/"
).
exchange
()
.
expectBody
()
.
consumeWith
(
document
(
"default-snippets"
));
this
.
webTestClient
.
get
().
uri
(
"/"
).
exchange
()
.
expectBody
()
.
consumeWith
(
document
(
"default-snippets"
));
File
defaultSnippetsDir
=
new
File
(
"target/generated-snippets/default-snippets"
);
assertThat
(
defaultSnippetsDir
).
exists
();
assertThat
(
new
File
(
defaultSnippetsDir
,
"curl-request.adoc"
))
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment