Refine EndpointRequest matcher `toString` and apply to reactive variant
Refine the recently introduced `EndpointRequest` matcher `toString()` to use lower-case item names. Also applied the same logic to the reactive variant. See gh-33690
This commit is contained in:
parent
29b7e518a5
commit
6a0a61f1ce
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2012-2020 the original author or authors.
|
||||
* Copyright 2012-2023 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.
|
||||
|
@ -226,6 +226,27 @@ public final class EndpointRequest {
|
|||
return source.stream().filter(Objects::nonNull).map(this::getEndpointId).map(pathMappedEndpoints::getPath);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Mono<MatchResult> matches(ServerWebExchange exchange, Supplier<PathMappedEndpoints> context) {
|
||||
return this.delegate.matches(exchange);
|
||||
}
|
||||
|
||||
private List<ServerWebExchangeMatcher> getDelegateMatchers(Set<String> paths) {
|
||||
return paths.stream().map((path) -> new PathPatternParserServerWebExchangeMatcher(path + "/**"))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return String.format("EndpointRequestMatcher includes=%s, excludes=%s, includeLinks=%s",
|
||||
toString(this.includes, "[*]"), toString(this.excludes, "[]"), this.includeLinks);
|
||||
}
|
||||
|
||||
private String toString(List<Object> endpoints, String emptyValue) {
|
||||
return (!endpoints.isEmpty()) ? endpoints.stream().map(this::getEndpointId).map(Object::toString)
|
||||
.collect(Collectors.joining(", ", "[", "]")) : emptyValue;
|
||||
}
|
||||
|
||||
private EndpointId getEndpointId(Object source) {
|
||||
if (source instanceof EndpointId) {
|
||||
return (EndpointId) source;
|
||||
|
@ -245,16 +266,6 @@ public final class EndpointRequest {
|
|||
return EndpointId.of(annotation.getString("id"));
|
||||
}
|
||||
|
||||
private List<ServerWebExchangeMatcher> getDelegateMatchers(Set<String> paths) {
|
||||
return paths.stream().map((path) -> new PathPatternParserServerWebExchangeMatcher(path + "/**"))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Mono<MatchResult> matches(ServerWebExchange exchange, Supplier<PathMappedEndpoints> context) {
|
||||
return this.delegate.matches(exchange);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2012-2020 the original author or authors.
|
||||
* Copyright 2012-2023 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.
|
||||
|
@ -248,6 +248,23 @@ public final class EndpointRequest {
|
|||
return source.stream().filter(Objects::nonNull).map(this::getEndpointId).map(pathMappedEndpoints::getPath);
|
||||
}
|
||||
|
||||
private List<RequestMatcher> getDelegateMatchers(RequestMatcherFactory requestMatcherFactory,
|
||||
RequestMatcherProvider matcherProvider, Set<String> paths) {
|
||||
return paths.stream().map((path) -> requestMatcherFactory.antPath(matcherProvider, path, "/**"))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return String.format("EndpointRequestMatcher includes=%s, excludes=%s, includeLinks=%s",
|
||||
toString(this.includes, "[*]"), toString(this.excludes, "[]"), this.includeLinks);
|
||||
}
|
||||
|
||||
private String toString(List<Object> endpoints, String emptyValue) {
|
||||
return (!endpoints.isEmpty()) ? endpoints.stream().map(this::getEndpointId).map(Object::toString)
|
||||
.collect(Collectors.joining(", ", "[", "]")) : emptyValue;
|
||||
}
|
||||
|
||||
private EndpointId getEndpointId(Object source) {
|
||||
if (source instanceof EndpointId) {
|
||||
return (EndpointId) source;
|
||||
|
@ -267,30 +284,6 @@ public final class EndpointRequest {
|
|||
return EndpointId.of(annotation.getString("id"));
|
||||
}
|
||||
|
||||
private List<RequestMatcher> getDelegateMatchers(RequestMatcherFactory requestMatcherFactory,
|
||||
RequestMatcherProvider matcherProvider, Set<String> paths) {
|
||||
return paths.stream().map((path) -> requestMatcherFactory.antPath(matcherProvider, path, "/**"))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
if (this.includes.isEmpty()) {
|
||||
sb.append("EndpointRequest [includes='[").append("*").append("]'");
|
||||
}
|
||||
else {
|
||||
sb.append("EndpointRequest [includes='")
|
||||
.append(this.includes.stream().map(this::getEndpointId).collect(Collectors.toList()))
|
||||
.append("'");
|
||||
}
|
||||
sb.append(", Excludes='")
|
||||
.append(this.excludes.stream().map(this::getEndpointId).collect(Collectors.toList())).append("'");
|
||||
sb.append(", IncludeLinks='").append(this.includeLinks).append("'");
|
||||
sb.append("]");
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2012-2019 the original author or authors.
|
||||
* Copyright 2012-2023 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.
|
||||
|
@ -188,6 +188,30 @@ class EndpointRequestTests {
|
|||
assertMatcher(matcher, (PathMappedEndpoints) null).doesNotMatch("/actuator/bar");
|
||||
}
|
||||
|
||||
@Test
|
||||
void toStringWhenIncludedEndpoints() {
|
||||
ServerWebExchangeMatcher matcher = EndpointRequest.to("foo", "bar");
|
||||
assertThat(matcher).hasToString("EndpointRequestMatcher includes=[foo, bar], excludes=[], includeLinks=false");
|
||||
}
|
||||
|
||||
@Test
|
||||
void toStringWhenEmptyIncludedEndpoints() {
|
||||
ServerWebExchangeMatcher matcher = EndpointRequest.toAnyEndpoint();
|
||||
assertThat(matcher).hasToString("EndpointRequestMatcher includes=[*], excludes=[], includeLinks=true");
|
||||
}
|
||||
|
||||
@Test
|
||||
void toStringWhenIncludedEndpointsClasses() {
|
||||
ServerWebExchangeMatcher matcher = EndpointRequest.to(FooEndpoint.class).excluding("bar");
|
||||
assertThat(matcher).hasToString("EndpointRequestMatcher includes=[foo], excludes=[bar], includeLinks=false");
|
||||
}
|
||||
|
||||
@Test
|
||||
void toStringWhenIncludedExcludedEndpoints() {
|
||||
ServerWebExchangeMatcher matcher = EndpointRequest.toAnyEndpoint().excluding("bar").excludingLinks();
|
||||
assertThat(matcher).hasToString("EndpointRequestMatcher includes=[*], excludes=[bar], includeLinks=false");
|
||||
}
|
||||
|
||||
private RequestMatcherAssert assertMatcher(ServerWebExchangeMatcher matcher) {
|
||||
return assertMatcher(matcher, mockPathMappedEndpoints("/actuator"));
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2012-2019 the original author or authors.
|
||||
* Copyright 2012-2023 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.
|
||||
|
@ -217,31 +217,27 @@ class EndpointRequestTests {
|
|||
}
|
||||
|
||||
@Test
|
||||
void toStringIncludedEndpoints() {
|
||||
void toStringWhenIncludedEndpoints() {
|
||||
RequestMatcher matcher = EndpointRequest.to("foo", "bar");
|
||||
assertThat(matcher.toString())
|
||||
.isEqualTo("EndpointRequest [includes='[foo, bar]', Excludes='[]', IncludeLinks='false']");
|
||||
assertThat(matcher).hasToString("EndpointRequestMatcher includes=[foo, bar], excludes=[], includeLinks=false");
|
||||
}
|
||||
|
||||
@Test
|
||||
void toStringEmptyIncludedEndpoints() {
|
||||
void toStringWhenEmptyIncludedEndpoints() {
|
||||
RequestMatcher matcher = EndpointRequest.toAnyEndpoint();
|
||||
assertThat(matcher.toString())
|
||||
.isEqualTo("EndpointRequest [includes='[*]', Excludes='[]', IncludeLinks='true']");
|
||||
assertThat(matcher).hasToString("EndpointRequestMatcher includes=[*], excludes=[], includeLinks=true");
|
||||
}
|
||||
|
||||
@Test
|
||||
void toStringIncludedEndpointsClasses() {
|
||||
void toStringWhenIncludedEndpointsClasses() {
|
||||
RequestMatcher matcher = EndpointRequest.to(FooEndpoint.class).excluding("bar");
|
||||
assertThat(matcher.toString())
|
||||
.isEqualTo("EndpointRequest [includes='[foo]', Excludes='[bar]', IncludeLinks='false']");
|
||||
assertThat(matcher).hasToString("EndpointRequestMatcher includes=[foo], excludes=[bar], includeLinks=false");
|
||||
}
|
||||
|
||||
@Test
|
||||
void toStringIncludedExcludedEndpoints() {
|
||||
void toStringWhenIncludedExcludedEndpoints() {
|
||||
RequestMatcher matcher = EndpointRequest.toAnyEndpoint().excluding("bar").excludingLinks();
|
||||
assertThat(matcher.toString())
|
||||
.isEqualTo("EndpointRequest [includes='[*]', Excludes='[bar]', IncludeLinks='false']");
|
||||
assertThat(matcher).hasToString("EndpointRequestMatcher includes=[*], excludes=[bar], includeLinks=false");
|
||||
}
|
||||
|
||||
private RequestMatcherAssert assertMatcher(RequestMatcher matcher) {
|
||||
|
|
Loading…
Reference in New Issue