Merge branch '2.1.x'
This commit is contained in:
commit
9d2d6d5812
|
@ -16,6 +16,8 @@
|
|||
|
||||
package org.springframework.boot.actuate.autoconfigure.cloudfoundry.reactive;
|
||||
|
||||
import java.time.Duration;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import org.springframework.boot.actuate.autoconfigure.endpoint.EndpointAutoConfiguration;
|
||||
|
@ -63,7 +65,8 @@ public class CloudFoundryReactiveHealthEndpointWebExtensionTests {
|
|||
this.contextRunner.run((context) -> {
|
||||
CloudFoundryReactiveHealthEndpointWebExtension extension = context
|
||||
.getBean(CloudFoundryReactiveHealthEndpointWebExtension.class);
|
||||
assertThat(extension.health().block().getBody().getDetails()).isNotEmpty();
|
||||
assertThat(extension.health().block(Duration.ofSeconds(30)).getBody()
|
||||
.getDetails()).isNotEmpty();
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
package org.springframework.boot.actuate.autoconfigure.cloudfoundry.reactive;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
@ -198,16 +199,17 @@ public class ReactiveCloudFoundryActuatorAutoConfigurationTests {
|
|||
Boolean cfRequestMatches = filters.get(0)
|
||||
.matches(MockServerWebExchange.from(MockServerHttpRequest
|
||||
.get("/cloudfoundryapplication/my-path").build()))
|
||||
.block();
|
||||
.block(Duration.ofSeconds(30));
|
||||
Boolean otherRequestMatches = filters.get(0)
|
||||
.matches(MockServerWebExchange.from(MockServerHttpRequest
|
||||
.get("/some-other-path").build()))
|
||||
.block();
|
||||
.block(Duration.ofSeconds(30));
|
||||
assertThat(cfRequestMatches).isTrue();
|
||||
assertThat(otherRequestMatches).isFalse();
|
||||
otherRequestMatches = filters.get(1).matches(MockServerWebExchange
|
||||
.from(MockServerHttpRequest.get("/some-other-path").build()))
|
||||
.block();
|
||||
otherRequestMatches = filters.get(1)
|
||||
.matches(MockServerWebExchange.from(MockServerHttpRequest
|
||||
.get("/some-other-path").build()))
|
||||
.block(Duration.ofSeconds(30));
|
||||
assertThat(otherRequestMatches).isTrue();
|
||||
});
|
||||
|
||||
|
@ -312,7 +314,7 @@ public class ReactiveCloudFoundryActuatorAutoConfigurationTests {
|
|||
WebClient webClient = (WebClient) ReflectionTestUtils
|
||||
.getField(interceptorSecurityService, "webClient");
|
||||
webClient.get().uri("https://self-signed.badssl.com/").exchange()
|
||||
.block();
|
||||
.block(Duration.ofSeconds(30));
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -334,9 +336,9 @@ public class ReactiveCloudFoundryActuatorAutoConfigurationTests {
|
|||
WebClient webClient = (WebClient) ReflectionTestUtils
|
||||
.getField(interceptorSecurityService, "webClient");
|
||||
assertThatExceptionOfType(RuntimeException.class)
|
||||
.isThrownBy(
|
||||
webClient.get().uri("https://self-signed.badssl.com/")
|
||||
.exchange()::block)
|
||||
.isThrownBy(() -> webClient.get()
|
||||
.uri("https://self-signed.badssl.com/").exchange()
|
||||
.block(Duration.ofSeconds(30)))
|
||||
.withCauseInstanceOf(SSLException.class);
|
||||
});
|
||||
}
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
package org.springframework.boot.actuate.autoconfigure.health;
|
||||
|
||||
import java.security.Principal;
|
||||
import java.time.Duration;
|
||||
|
||||
import org.junit.Test;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
@ -98,8 +99,8 @@ public class ReactiveHealthEndpointWebExtensionTests {
|
|||
SecurityContext securityContext = mock(SecurityContext.class);
|
||||
given(securityContext.getPrincipal())
|
||||
.willReturn(mock(Principal.class));
|
||||
Health extensionHealth = extension.health(securityContext).block()
|
||||
.getBody();
|
||||
Health extensionHealth = extension.health(securityContext)
|
||||
.block(Duration.ofSeconds(30)).getBody();
|
||||
assertThat(endpointHealth.getDetails())
|
||||
.containsOnlyKeys("application", "first", "second");
|
||||
assertThat(extensionHealth.getDetails())
|
||||
|
@ -112,8 +113,8 @@ public class ReactiveHealthEndpointWebExtensionTests {
|
|||
this.contextRunner.run((context) -> {
|
||||
ReactiveHealthEndpointWebExtension extension = context
|
||||
.getBean(ReactiveHealthEndpointWebExtension.class);
|
||||
assertThat(extension.health(mock(SecurityContext.class)).block().getBody()
|
||||
.getDetails()).isEmpty();
|
||||
assertThat(extension.health(mock(SecurityContext.class))
|
||||
.block(Duration.ofSeconds(30)).getBody().getDetails()).isEmpty();
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -124,8 +125,8 @@ public class ReactiveHealthEndpointWebExtensionTests {
|
|||
.getBean(ReactiveHealthEndpointWebExtension.class);
|
||||
SecurityContext securityContext = mock(SecurityContext.class);
|
||||
given(securityContext.getPrincipal()).willReturn(mock(Principal.class));
|
||||
assertThat(extension.health(securityContext).block().getBody().getDetails())
|
||||
.isEmpty();
|
||||
assertThat(extension.health(securityContext).block(Duration.ofSeconds(30))
|
||||
.getBody().getDetails()).isEmpty();
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -140,8 +141,9 @@ public class ReactiveHealthEndpointWebExtensionTests {
|
|||
SecurityContext securityContext = mock(SecurityContext.class);
|
||||
given(securityContext.getPrincipal())
|
||||
.willReturn(mock(Principal.class));
|
||||
assertThat(extension.health(securityContext).block().getBody()
|
||||
.getDetails()).isNotEmpty();
|
||||
assertThat(extension.health(securityContext)
|
||||
.block(Duration.ofSeconds(30)).getBody().getDetails())
|
||||
.isNotEmpty();
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -152,8 +154,8 @@ public class ReactiveHealthEndpointWebExtensionTests {
|
|||
.run((context) -> {
|
||||
ReactiveHealthEndpointWebExtension extension = context
|
||||
.getBean(ReactiveHealthEndpointWebExtension.class);
|
||||
assertThat(extension.health(null).block().getBody().getDetails())
|
||||
.isNotEmpty();
|
||||
assertThat(extension.health(null).block(Duration.ofSeconds(30))
|
||||
.getBody().getDetails()).isNotEmpty();
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -165,8 +167,9 @@ public class ReactiveHealthEndpointWebExtensionTests {
|
|||
ReactiveHealthEndpointWebExtension extension = context
|
||||
.getBean(ReactiveHealthEndpointWebExtension.class);
|
||||
SecurityContext securityContext = mock(SecurityContext.class);
|
||||
assertThat(extension.health(securityContext).block().getBody()
|
||||
.getDetails()).isEmpty();
|
||||
assertThat(extension.health(securityContext)
|
||||
.block(Duration.ofSeconds(30)).getBody().getDetails())
|
||||
.isEmpty();
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -181,8 +184,9 @@ public class ReactiveHealthEndpointWebExtensionTests {
|
|||
given(securityContext.getPrincipal())
|
||||
.willReturn(mock(Principal.class));
|
||||
given(securityContext.isUserInRole("ACTUATOR")).willReturn(false);
|
||||
assertThat(extension.health(securityContext).block().getBody()
|
||||
.getDetails()).isEmpty();
|
||||
assertThat(extension.health(securityContext)
|
||||
.block(Duration.ofSeconds(30)).getBody().getDetails())
|
||||
.isEmpty();
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -197,8 +201,9 @@ public class ReactiveHealthEndpointWebExtensionTests {
|
|||
given(securityContext.getPrincipal())
|
||||
.willReturn(mock(Principal.class));
|
||||
given(securityContext.isUserInRole("ACTUATOR")).willReturn(true);
|
||||
assertThat(extension.health(securityContext).block().getBody()
|
||||
.getDetails()).isNotEmpty();
|
||||
assertThat(extension.health(securityContext)
|
||||
.block(Duration.ofSeconds(30)).getBody().getDetails())
|
||||
.isNotEmpty();
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -213,8 +218,9 @@ public class ReactiveHealthEndpointWebExtensionTests {
|
|||
given(securityContext.getPrincipal())
|
||||
.willReturn(mock(Principal.class));
|
||||
given(securityContext.isUserInRole("ADMIN")).willReturn(true);
|
||||
assertThat(extension.health(securityContext).block().getBody()
|
||||
.getDetails()).isNotEmpty();
|
||||
assertThat(extension.health(securityContext)
|
||||
.block(Duration.ofSeconds(30)).getBody().getDetails())
|
||||
.isNotEmpty();
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -227,11 +233,12 @@ public class ReactiveHealthEndpointWebExtensionTests {
|
|||
.getBean(ReactiveHealthIndicatorRegistry.class);
|
||||
ReactiveHealthEndpointWebExtension extension = context
|
||||
.getBean(ReactiveHealthEndpointWebExtension.class);
|
||||
assertThat(extension.health(null).block().getBody().getDetails())
|
||||
.containsOnlyKeys("application", "first", "second");
|
||||
assertThat(extension.health(null).block(Duration.ofSeconds(30))
|
||||
.getBody().getDetails()).containsOnlyKeys("application",
|
||||
"first", "second");
|
||||
assertThat(registry.unregister("second")).isNotNull();
|
||||
assertThat(extension.health(null).block().getBody().getDetails())
|
||||
.containsKeys("application", "first");
|
||||
assertThat(extension.health(null).block(Duration.ofSeconds(30))
|
||||
.getBody().getDetails()).containsKeys("application", "first");
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -16,6 +16,8 @@
|
|||
|
||||
package org.springframework.boot.actuate.autoconfigure.metrics.web.client;
|
||||
|
||||
import java.time.Duration;
|
||||
|
||||
import io.micrometer.core.instrument.MeterRegistry;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
|
@ -106,7 +108,8 @@ public class WebClientMetricsConfigurationTests {
|
|||
WebClient webClient = mockWebClient(context.getBean(WebClient.Builder.class));
|
||||
MeterRegistry registry = context.getBean(MeterRegistry.class);
|
||||
for (int i = 0; i < 3; i++) {
|
||||
webClient.get().uri("http://example.org/projects/" + i).exchange().block();
|
||||
webClient.get().uri("http://example.org/projects/" + i).exchange()
|
||||
.block(Duration.ofSeconds(30));
|
||||
}
|
||||
return registry;
|
||||
}
|
||||
|
@ -115,7 +118,7 @@ public class WebClientMetricsConfigurationTests {
|
|||
WebClient webClient = mockWebClient(builder);
|
||||
assertThat(registry.find("http.client.requests").meter()).isNull();
|
||||
webClient.get().uri("http://example.org/projects/{project}", "spring-boot")
|
||||
.exchange().block();
|
||||
.exchange().block(Duration.ofSeconds(30));
|
||||
assertThat(registry.find("http.client.requests")
|
||||
.tags("uri", "/projects/{project}").meter()).isNotNull();
|
||||
}
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
package org.springframework.boot.actuate.autoconfigure.security.reactive;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
@ -250,8 +251,8 @@ public class EndpointRequestTests {
|
|||
}
|
||||
|
||||
private void matches(ServerWebExchange exchange) {
|
||||
assertThat(this.matcher.matches(exchange).block().isMatch())
|
||||
.as("Matches " + getRequestPath(exchange)).isTrue();
|
||||
assertThat(this.matcher.matches(exchange).block(Duration.ofSeconds(30))
|
||||
.isMatch()).as("Matches " + getRequestPath(exchange)).isTrue();
|
||||
}
|
||||
|
||||
void doesNotMatch(String path) {
|
||||
|
@ -262,8 +263,9 @@ public class EndpointRequestTests {
|
|||
}
|
||||
|
||||
private void doesNotMatch(ServerWebExchange exchange) {
|
||||
assertThat(this.matcher.matches(exchange).block().isMatch())
|
||||
.as("Does not match " + getRequestPath(exchange)).isFalse();
|
||||
assertThat(this.matcher.matches(exchange).block(Duration.ofSeconds(30))
|
||||
.isMatch()).as("Does not match " + getRequestPath(exchange))
|
||||
.isFalse();
|
||||
}
|
||||
|
||||
private TestHttpWebHandlerAdapter webHandler() {
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
package org.springframework.boot.actuate.autoconfigure.security.reactive;
|
||||
|
||||
import java.net.URI;
|
||||
import java.time.Duration;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
|
@ -139,7 +140,8 @@ public class ReactiveManagementWebSecurityAutoConfigurationTests {
|
|||
ServerWebExchange exchange = webHandler(context).createExchange(
|
||||
MockServerHttpRequest.get(path).build(), new MockServerHttpResponse());
|
||||
WebFilterChainProxy proxy = context.getBean(WebFilterChainProxy.class);
|
||||
proxy.filter(exchange, (serverWebExchange) -> Mono.empty()).block();
|
||||
proxy.filter(exchange, (serverWebExchange) -> Mono.empty())
|
||||
.block(Duration.ofSeconds(30));
|
||||
return exchange;
|
||||
}
|
||||
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
package org.springframework.boot.actuate.couchbase;
|
||||
|
||||
import java.net.InetSocketAddress;
|
||||
import java.time.Duration;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
@ -52,7 +53,7 @@ public class CouchbaseReactiveHealthIndicatorTests {
|
|||
DiagnosticsReport diagnostics = new DiagnosticsReport(endpoints, "test-sdk",
|
||||
"test-id", null);
|
||||
given(cluster.diagnostics()).willReturn(diagnostics);
|
||||
Health health = healthIndicator.health().block();
|
||||
Health health = healthIndicator.health().block(Duration.ofSeconds(30));
|
||||
assertThat(health.getStatus()).isEqualTo(Status.UP);
|
||||
assertThat(health.getDetails()).containsEntry("sdk", "test-sdk");
|
||||
assertThat(health.getDetails()).containsKey("endpoints");
|
||||
|
@ -77,7 +78,7 @@ public class CouchbaseReactiveHealthIndicatorTests {
|
|||
DiagnosticsReport diagnostics = new DiagnosticsReport(endpoints, "test-sdk",
|
||||
"test-id", null);
|
||||
given(cluster.diagnostics()).willReturn(diagnostics);
|
||||
Health health = healthIndicator.health().block();
|
||||
Health health = healthIndicator.health().block(Duration.ofSeconds(30));
|
||||
assertThat(health.getStatus()).isEqualTo(Status.DOWN);
|
||||
assertThat(health.getDetails()).containsEntry("sdk", "test-sdk");
|
||||
assertThat(health.getDetails()).containsKey("endpoints");
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
package org.springframework.boot.actuate.endpoint.web.reactive;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.util.Arrays;
|
||||
|
||||
import org.junit.Test;
|
||||
|
@ -95,7 +96,8 @@ public class ControllerEndpointHandlerMappingTests {
|
|||
|
||||
private Object getHandler(ControllerEndpointHandlerMapping mapping, HttpMethod method,
|
||||
String requestURI) {
|
||||
return mapping.getHandler(exchange(method, requestURI)).block();
|
||||
return mapping.getHandler(exchange(method, requestURI))
|
||||
.block(Duration.ofSeconds(30));
|
||||
}
|
||||
|
||||
private ControllerEndpointHandlerMapping createMapping(String prefix,
|
||||
|
|
|
@ -73,7 +73,7 @@ public class MetricsWebClientFilterFunctionTests {
|
|||
ClientRequest request = ClientRequest.create(HttpMethod.GET,
|
||||
URI.create("http://example.com/projects/spring-boot")).build();
|
||||
given(this.response.statusCode()).willReturn(HttpStatus.OK);
|
||||
this.filterFunction.filter(request, this.exchange).block();
|
||||
this.filterFunction.filter(request, this.exchange).block(Duration.ofSeconds(30));
|
||||
assertThat(this.registry.get("http.client.requests")
|
||||
.tags("method", "GET", "uri", "/projects/spring-boot", "status", "200")
|
||||
.timer().count()).isEqualTo(1);
|
||||
|
@ -86,7 +86,7 @@ public class MetricsWebClientFilterFunctionTests {
|
|||
URI.create("http://example.com/projects/spring-boot"))
|
||||
.attribute(URI_TEMPLATE_ATTRIBUTE, "/projects/{project}").build();
|
||||
given(this.response.statusCode()).willReturn(HttpStatus.OK);
|
||||
this.filterFunction.filter(request, this.exchange).block();
|
||||
this.filterFunction.filter(request, this.exchange).block(Duration.ofSeconds(30));
|
||||
assertThat(this.registry.get("http.client.requests")
|
||||
.tags("method", "GET", "uri", "/projects/{project}", "status", "200")
|
||||
.timer().count()).isEqualTo(1);
|
||||
|
@ -98,7 +98,8 @@ public class MetricsWebClientFilterFunctionTests {
|
|||
URI.create("http://example.com/projects/spring-boot")).build();
|
||||
ExchangeFunction errorExchange = (r) -> Mono.error(new IOException());
|
||||
this.filterFunction.filter(request, errorExchange)
|
||||
.onErrorResume(IOException.class, (t) -> Mono.empty()).block();
|
||||
.onErrorResume(IOException.class, (t) -> Mono.empty())
|
||||
.block(Duration.ofSeconds(30));
|
||||
assertThat(
|
||||
this.registry
|
||||
.get("http.client.requests").tags("method", "GET", "uri",
|
||||
|
@ -113,7 +114,7 @@ public class MetricsWebClientFilterFunctionTests {
|
|||
ExchangeFunction exchange = (r) -> Mono.error(new IllegalArgumentException());
|
||||
this.filterFunction.filter(request, exchange)
|
||||
.onErrorResume(IllegalArgumentException.class, (t) -> Mono.empty())
|
||||
.block();
|
||||
.block(Duration.ofSeconds(30));
|
||||
assertThat(this.registry
|
||||
.get("http.client.requests").tags("method", "GET", "uri",
|
||||
"/projects/spring-boot", "status", "CLIENT_ERROR")
|
||||
|
@ -128,7 +129,7 @@ public class MetricsWebClientFilterFunctionTests {
|
|||
.delaySubscription(Duration.ofMillis(300)).cast(ClientResponse.class);
|
||||
this.filterFunction.filter(request, exchange).retry(1)
|
||||
.onErrorResume(IllegalArgumentException.class, (t) -> Mono.empty())
|
||||
.block();
|
||||
.block(Duration.ofSeconds(30));
|
||||
Timer timer = this.registry.get("http.client.requests").tags("method", "GET",
|
||||
"uri", "/projects/spring-boot", "status", "CLIENT_ERROR").timer();
|
||||
assertThat(timer.count()).isEqualTo(2);
|
||||
|
|
|
@ -16,6 +16,8 @@
|
|||
|
||||
package org.springframework.boot.actuate.metrics.web.reactive.server;
|
||||
|
||||
import java.time.Duration;
|
||||
|
||||
import io.micrometer.core.instrument.MockClock;
|
||||
import io.micrometer.core.instrument.simple.SimpleConfig;
|
||||
import io.micrometer.core.instrument.simple.SimpleMeterRegistry;
|
||||
|
@ -58,7 +60,7 @@ public class MetricsWebFilterTests {
|
|||
this.webFilter
|
||||
.filter(exchange,
|
||||
(serverWebExchange) -> exchange.getResponse().setComplete())
|
||||
.block();
|
||||
.block(Duration.ofSeconds(30));
|
||||
assertMetricsContainsTag("uri", "/projects/{project}");
|
||||
assertMetricsContainsTag("status", "200");
|
||||
}
|
||||
|
@ -74,7 +76,7 @@ public class MetricsWebFilterTests {
|
|||
.onErrorResume((t) -> {
|
||||
exchange.getResponse().setStatusCodeValue(500);
|
||||
return exchange.getResponse().setComplete();
|
||||
}).block();
|
||||
}).block(Duration.ofSeconds(30));
|
||||
assertMetricsContainsTag("uri", "/projects/{project}");
|
||||
assertMetricsContainsTag("status", "500");
|
||||
assertMetricsContainsTag("exception", "IllegalStateException");
|
||||
|
@ -91,7 +93,7 @@ public class MetricsWebFilterTests {
|
|||
.onErrorResume((t) -> {
|
||||
exchange.getResponse().setStatusCodeValue(500);
|
||||
return exchange.getResponse().setComplete();
|
||||
}).block();
|
||||
}).block(Duration.ofSeconds(30));
|
||||
assertMetricsContainsTag("uri", "/projects/{project}");
|
||||
assertMetricsContainsTag("status", "500");
|
||||
assertMetricsContainsTag("exception", anonymous.getClass().getName());
|
||||
|
@ -105,7 +107,7 @@ public class MetricsWebFilterTests {
|
|||
exchange.getResponse().setStatusCodeValue(500);
|
||||
return exchange.getResponse().setComplete()
|
||||
.then(Mono.error(new IllegalStateException("test error")));
|
||||
}).onErrorResume((t) -> Mono.empty()).block();
|
||||
}).onErrorResume((t) -> Mono.empty()).block(Duration.ofSeconds(30));
|
||||
assertMetricsContainsTag("uri", "/projects/{project}");
|
||||
assertMetricsContainsTag("status", "500");
|
||||
}
|
||||
|
|
|
@ -18,6 +18,7 @@ package org.springframework.boot.actuate.trace.http.reactive;
|
|||
|
||||
import java.io.IOException;
|
||||
import java.security.Principal;
|
||||
import java.time.Duration;
|
||||
import java.util.EnumSet;
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
|
@ -68,7 +69,7 @@ public class HttpTraceWebFilterTests {
|
|||
return Mono.empty();
|
||||
}
|
||||
|
||||
}).block();
|
||||
}).block(Duration.ofSeconds(30));
|
||||
assertThat(this.repository.findAll()).hasSize(1);
|
||||
}
|
||||
|
||||
|
@ -82,11 +83,12 @@ public class HttpTraceWebFilterTests {
|
|||
|
||||
@Override
|
||||
public Mono<Void> filter(ServerWebExchange exchange) {
|
||||
exchange.getSession().block().getAttributes().put("a", "alpha");
|
||||
exchange.getSession().block(Duration.ofSeconds(30))
|
||||
.getAttributes().put("a", "alpha");
|
||||
return Mono.empty();
|
||||
}
|
||||
|
||||
}).block();
|
||||
}).block(Duration.ofSeconds(30));
|
||||
assertThat(this.repository.findAll()).hasSize(1);
|
||||
Session session = this.repository.findAll().get(0).getSession();
|
||||
assertThat(session).isNotNull();
|
||||
|
@ -103,11 +105,11 @@ public class HttpTraceWebFilterTests {
|
|||
|
||||
@Override
|
||||
public Mono<Void> filter(ServerWebExchange exchange) {
|
||||
exchange.getSession().block();
|
||||
exchange.getSession().block(Duration.ofSeconds(30));
|
||||
return Mono.empty();
|
||||
}
|
||||
|
||||
}).block();
|
||||
}).block(Duration.ofSeconds(30));
|
||||
assertThat(this.repository.findAll()).hasSize(1);
|
||||
Session session = this.repository.findAll().get(0).getSession();
|
||||
assertThat(session).isNull();
|
||||
|
@ -129,11 +131,12 @@ public class HttpTraceWebFilterTests {
|
|||
|
||||
@Override
|
||||
public Mono<Void> filter(ServerWebExchange exchange) {
|
||||
exchange.getSession().block().getAttributes().put("a", "alpha");
|
||||
exchange.getSession().block(Duration.ofSeconds(30)).getAttributes()
|
||||
.put("a", "alpha");
|
||||
return Mono.empty();
|
||||
}
|
||||
|
||||
}).block();
|
||||
}).block(Duration.ofSeconds(30));
|
||||
assertThat(this.repository.findAll()).hasSize(1);
|
||||
org.springframework.boot.actuate.trace.http.HttpTrace.Principal tracedPrincipal = this.repository
|
||||
.findAll().get(0).getPrincipal();
|
||||
|
@ -155,7 +158,7 @@ public class HttpTraceWebFilterTests {
|
|||
return Mono.error(new RuntimeException());
|
||||
}
|
||||
|
||||
}).block();
|
||||
}).block(Duration.ofSeconds(30));
|
||||
fail();
|
||||
}
|
||||
catch (Exception ex) {
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
package org.springframework.boot.autoconfigure.freemarker;
|
||||
|
||||
import java.io.StringWriter;
|
||||
import java.time.Duration;
|
||||
import java.util.Locale;
|
||||
|
||||
import org.junit.Test;
|
||||
|
@ -60,7 +61,8 @@ public class FreeMarkerAutoConfigurationReactiveIntegrationTests {
|
|||
public void defaultViewResolution() {
|
||||
this.contextRunner.run((context) -> {
|
||||
MockServerWebExchange exchange = render(context, "home");
|
||||
String result = exchange.getResponse().getBodyAsString().block();
|
||||
String result = exchange.getResponse().getBodyAsString()
|
||||
.block(Duration.ofSeconds(30));
|
||||
assertThat(result).contains("home");
|
||||
assertThat(exchange.getResponse().getHeaders().getContentType())
|
||||
.isEqualTo(MediaType.TEXT_HTML);
|
||||
|
@ -72,7 +74,8 @@ public class FreeMarkerAutoConfigurationReactiveIntegrationTests {
|
|||
this.contextRunner.withPropertyValues("spring.freemarker.prefix:prefix/")
|
||||
.run((context) -> {
|
||||
MockServerWebExchange exchange = render(context, "prefixed");
|
||||
String result = exchange.getResponse().getBodyAsString().block();
|
||||
String result = exchange.getResponse().getBodyAsString()
|
||||
.block(Duration.ofSeconds(30));
|
||||
assertThat(result).contains("prefixed");
|
||||
});
|
||||
}
|
||||
|
@ -82,7 +85,8 @@ public class FreeMarkerAutoConfigurationReactiveIntegrationTests {
|
|||
this.contextRunner.withPropertyValues("spring.freemarker.suffix:.freemarker")
|
||||
.run((context) -> {
|
||||
MockServerWebExchange exchange = render(context, "suffixed");
|
||||
String result = exchange.getResponse().getBodyAsString().block();
|
||||
String result = exchange.getResponse().getBodyAsString()
|
||||
.block(Duration.ofSeconds(30));
|
||||
assertThat(result).contains("suffixed");
|
||||
});
|
||||
}
|
||||
|
@ -93,7 +97,8 @@ public class FreeMarkerAutoConfigurationReactiveIntegrationTests {
|
|||
"spring.freemarker.templateLoaderPath:classpath:/custom-templates/")
|
||||
.run((context) -> {
|
||||
MockServerWebExchange exchange = render(context, "custom");
|
||||
String result = exchange.getResponse().getBodyAsString().block();
|
||||
String result = exchange.getResponse().getBodyAsString()
|
||||
.block(Duration.ofSeconds(30));
|
||||
assertThat(result).contains("custom");
|
||||
});
|
||||
}
|
||||
|
@ -128,7 +133,8 @@ public class FreeMarkerAutoConfigurationReactiveIntegrationTests {
|
|||
Mono<View> view = resolver.resolveViewName(viewName, Locale.UK);
|
||||
MockServerWebExchange exchange = MockServerWebExchange
|
||||
.from(MockServerHttpRequest.get("/path"));
|
||||
view.flatMap((v) -> v.render(null, MediaType.TEXT_HTML, exchange)).block();
|
||||
view.flatMap((v) -> v.render(null, MediaType.TEXT_HTML, exchange))
|
||||
.block(Duration.ofSeconds(30));
|
||||
return exchange;
|
||||
}
|
||||
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
*/
|
||||
package org.springframework.boot.autoconfigure.security.oauth2.client.reactive;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
@ -77,7 +78,7 @@ public class ReactiveOAuth2ClientAutoConfigurationTests {
|
|||
ReactiveClientRegistrationRepository repository = context
|
||||
.getBean(ReactiveClientRegistrationRepository.class);
|
||||
ClientRegistration registration = repository
|
||||
.findByRegistrationId("foo").block();
|
||||
.findByRegistrationId("foo").block(Duration.ofSeconds(30));
|
||||
assertThat(registration).isNotNull();
|
||||
assertThat(registration.getClientSecret()).isEqualTo("secret");
|
||||
});
|
||||
|
|
|
@ -16,6 +16,8 @@
|
|||
|
||||
package org.springframework.boot.autoconfigure.security.reactive;
|
||||
|
||||
import java.time.Duration;
|
||||
|
||||
import org.junit.Test;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
|
@ -55,8 +57,8 @@ public class ReactiveUserDetailsServiceAutoConfigurationTests {
|
|||
.run((context) -> {
|
||||
ReactiveUserDetailsService userDetailsService = context
|
||||
.getBean(ReactiveUserDetailsService.class);
|
||||
assertThat(userDetailsService.findByUsername("user").block())
|
||||
.isNotNull();
|
||||
assertThat(userDetailsService.findByUsername("user")
|
||||
.block(Duration.ofSeconds(30))).isNotNull();
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -67,12 +69,12 @@ public class ReactiveUserDetailsServiceAutoConfigurationTests {
|
|||
.run((context) -> {
|
||||
ReactiveUserDetailsService userDetailsService = context
|
||||
.getBean(ReactiveUserDetailsService.class);
|
||||
assertThat(userDetailsService.findByUsername("user").block())
|
||||
.isNull();
|
||||
assertThat(userDetailsService.findByUsername("foo").block())
|
||||
.isNotNull();
|
||||
assertThat(userDetailsService.findByUsername("admin").block())
|
||||
.isNotNull();
|
||||
assertThat(userDetailsService.findByUsername("user")
|
||||
.block(Duration.ofSeconds(30))).isNull();
|
||||
assertThat(userDetailsService.findByUsername("foo")
|
||||
.block(Duration.ofSeconds(30))).isNotNull();
|
||||
assertThat(userDetailsService.findByUsername("admin")
|
||||
.block(Duration.ofSeconds(30))).isNotNull();
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -93,8 +95,8 @@ public class ReactiveUserDetailsServiceAutoConfigurationTests {
|
|||
.run(((context) -> {
|
||||
MapReactiveUserDetailsService userDetailsService = context
|
||||
.getBean(MapReactiveUserDetailsService.class);
|
||||
String password = userDetailsService.findByUsername("user").block()
|
||||
.getPassword();
|
||||
String password = userDetailsService.findByUsername("user")
|
||||
.block(Duration.ofSeconds(30)).getPassword();
|
||||
assertThat(password).startsWith("{noop}");
|
||||
}));
|
||||
}
|
||||
|
@ -122,8 +124,8 @@ public class ReactiveUserDetailsServiceAutoConfigurationTests {
|
|||
.run(((context) -> {
|
||||
MapReactiveUserDetailsService userDetailsService = context
|
||||
.getBean(MapReactiveUserDetailsService.class);
|
||||
String password = userDetailsService.findByUsername("user").block()
|
||||
.getPassword();
|
||||
String password = userDetailsService.findByUsername("user")
|
||||
.block(Duration.ofSeconds(30)).getPassword();
|
||||
assertThat(password).isEqualTo(expectedPassword);
|
||||
}));
|
||||
}
|
||||
|
|
|
@ -16,6 +16,8 @@
|
|||
|
||||
package org.springframework.boot.autoconfigure.security.reactive;
|
||||
|
||||
import java.time.Duration;
|
||||
|
||||
import org.assertj.core.api.AssertDelegateTarget;
|
||||
import org.junit.Test;
|
||||
|
||||
|
@ -113,8 +115,8 @@ public class StaticResourceRequestTests {
|
|||
}
|
||||
|
||||
private void matches(ServerWebExchange exchange) {
|
||||
assertThat(this.matcher.matches(exchange).block().isMatch())
|
||||
.as("Matches " + getRequestPath(exchange)).isTrue();
|
||||
assertThat(this.matcher.matches(exchange).block(Duration.ofSeconds(30))
|
||||
.isMatch()).as("Matches " + getRequestPath(exchange)).isTrue();
|
||||
}
|
||||
|
||||
void doesNotMatch(String path) {
|
||||
|
@ -125,8 +127,9 @@ public class StaticResourceRequestTests {
|
|||
}
|
||||
|
||||
private void doesNotMatch(ServerWebExchange exchange) {
|
||||
assertThat(this.matcher.matches(exchange).block().isMatch())
|
||||
.as("Does not match " + getRequestPath(exchange)).isFalse();
|
||||
assertThat(this.matcher.matches(exchange).block(Duration.ofSeconds(30))
|
||||
.isMatch()).as("Does not match " + getRequestPath(exchange))
|
||||
.isFalse();
|
||||
}
|
||||
|
||||
private TestHttpWebHandlerAdapter webHandler() {
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
package org.springframework.boot.autoconfigure.web.reactive.function.client;
|
||||
|
||||
import java.net.URI;
|
||||
import java.time.Duration;
|
||||
|
||||
import org.junit.Test;
|
||||
import reactor.core.publisher.Mono;
|
||||
|
@ -109,8 +110,10 @@ public class WebClientAutoConfigurationTests {
|
|||
secondBuilder.clientConnector(secondConnector)
|
||||
.baseUrl("http://second.example.org");
|
||||
assertThat(firstBuilder).isNotEqualTo(secondBuilder);
|
||||
firstBuilder.build().get().uri("/foo").exchange().block();
|
||||
secondBuilder.build().get().uri("/foo").exchange().block();
|
||||
firstBuilder.build().get().uri("/foo").exchange()
|
||||
.block(Duration.ofSeconds(30));
|
||||
secondBuilder.build().get().uri("/foo").exchange()
|
||||
.block(Duration.ofSeconds(30));
|
||||
verify(firstConnector).connect(eq(HttpMethod.GET),
|
||||
eq(URI.create("http://first.example.org/foo")), any());
|
||||
verify(secondConnector).connect(eq(HttpMethod.GET),
|
||||
|
|
|
@ -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");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -16,6 +16,8 @@
|
|||
|
||||
package org.springframework.boot.test.autoconfigure.data.mongo;
|
||||
|
||||
import java.time.Duration;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
|
@ -44,10 +46,11 @@ public class DataMongoTestReactiveIntegrationTests {
|
|||
public void testRepository() {
|
||||
ExampleDocument exampleDocument = new ExampleDocument();
|
||||
exampleDocument.setText("Look, new @DataMongoTest!");
|
||||
exampleDocument = this.exampleRepository.save(exampleDocument).block();
|
||||
exampleDocument = this.exampleRepository.save(exampleDocument)
|
||||
.block(Duration.ofSeconds(30));
|
||||
assertThat(exampleDocument.getId()).isNotNull();
|
||||
assertThat(this.mongoTemplate.collectionExists("exampleDocuments").block())
|
||||
.isTrue();
|
||||
assertThat(this.mongoTemplate.collectionExists("exampleDocuments")
|
||||
.block(Duration.ofSeconds(30))).isTrue();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -19,6 +19,7 @@ package org.springframework.boot.web.embedded.undertow;
|
|||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.net.URISyntaxException;
|
||||
import java.time.Duration;
|
||||
import java.util.Arrays;
|
||||
|
||||
import io.undertow.Undertow;
|
||||
|
@ -122,7 +123,7 @@ public class UndertowReactiveWebServerFactoryTests
|
|||
Mono<String> result = client.post().uri("/test").contentType(MediaType.TEXT_PLAIN)
|
||||
.body(BodyInserters.fromObject("Hello World")).exchange()
|
||||
.flatMap((response) -> response.bodyToMono(String.class));
|
||||
assertThat(result.block()).isEqualTo("Hello World");
|
||||
assertThat(result.block(Duration.ofSeconds(30))).isEqualTo("Hello World");
|
||||
File accessLog = new File(accessLogDirectory, expectedFile);
|
||||
awaitFile(accessLog);
|
||||
assertThat(accessLogDirectory.listFiles()).contains(accessLog);
|
||||
|
|
|
@ -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");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -16,6 +16,8 @@
|
|||
|
||||
package org.springframework.boot.web.reactive.result.view;
|
||||
|
||||
import java.time.Duration;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
|
@ -46,12 +48,15 @@ public class MustacheViewResolverTests {
|
|||
|
||||
@Test
|
||||
public void resolveNonExistent() {
|
||||
assertThat(this.resolver.resolveViewName("bar", null).block()).isNull();
|
||||
assertThat(
|
||||
this.resolver.resolveViewName("bar", null).block(Duration.ofSeconds(30)))
|
||||
.isNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void resolveExisting() {
|
||||
assertThat(this.resolver.resolveViewName("template", null).block()).isNotNull();
|
||||
assertThat(this.resolver.resolveViewName("template", null)
|
||||
.block(Duration.ofSeconds(30))).isNotNull();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -17,6 +17,7 @@
|
|||
package org.springframework.boot.web.reactive.result.view;
|
||||
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.time.Duration;
|
||||
import java.util.Collections;
|
||||
|
||||
import com.samskivert.mustache.Mustache;
|
||||
|
@ -59,9 +60,9 @@ public class MustacheViewTests {
|
|||
view.setCharset(StandardCharsets.UTF_8.displayName());
|
||||
view.setApplicationContext(this.context);
|
||||
view.render(Collections.singletonMap("World", "Spring"), MediaType.TEXT_HTML,
|
||||
this.exchange).block();
|
||||
assertThat(this.exchange.getResponse().getBodyAsString().block())
|
||||
.isEqualTo("Hello Spring");
|
||||
this.exchange).block(Duration.ofSeconds(30));
|
||||
assertThat(this.exchange.getResponse().getBodyAsString()
|
||||
.block(Duration.ofSeconds(30))).isEqualTo("Hello Spring");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -100,7 +100,7 @@ public abstract class AbstractReactiveWebServerFactoryTests {
|
|||
.contentType(MediaType.TEXT_PLAIN)
|
||||
.body(BodyInserters.fromObject("Hello World")).exchange()
|
||||
.flatMap((response) -> response.bodyToMono(String.class));
|
||||
assertThat(result.block()).isEqualTo("Hello World");
|
||||
assertThat(result.block(Duration.ofSeconds(30))).isEqualTo("Hello World");
|
||||
assertThat(this.webServer.getPort()).isEqualTo(specificPort);
|
||||
}
|
||||
|
||||
|
@ -129,7 +129,7 @@ public abstract class AbstractReactiveWebServerFactoryTests {
|
|||
Mono<String> result = client.post().uri("/test").contentType(MediaType.TEXT_PLAIN)
|
||||
.body(BodyInserters.fromObject("Hello World")).exchange()
|
||||
.flatMap((response) -> response.bodyToMono(String.class));
|
||||
assertThat(result.block()).isEqualTo("Hello World");
|
||||
assertThat(result.block(Duration.ofSeconds(30))).isEqualTo("Hello World");
|
||||
}
|
||||
|
||||
protected ReactorClientHttpConnector buildTrustAllSslConnector() {
|
||||
|
@ -191,7 +191,7 @@ public abstract class AbstractReactiveWebServerFactoryTests {
|
|||
Mono<String> result = client.post().uri("/test").contentType(MediaType.TEXT_PLAIN)
|
||||
.body(BodyInserters.fromObject("Hello World")).exchange()
|
||||
.flatMap((response) -> response.bodyToMono(String.class));
|
||||
assertThat(result.block()).isEqualTo("Hello World");
|
||||
assertThat(result.block(Duration.ofSeconds(30))).isEqualTo("Hello World");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -246,7 +246,7 @@ public abstract class AbstractReactiveWebServerFactoryTests {
|
|||
public void compressionOfResponseToGetRequest() {
|
||||
WebClient client = prepareCompressionTest();
|
||||
ResponseEntity<Void> response = client.get().exchange()
|
||||
.flatMap((res) -> res.toEntity(Void.class)).block();
|
||||
.flatMap((res) -> res.toEntity(Void.class)).block(Duration.ofSeconds(30));
|
||||
assertResponseIsCompressed(response);
|
||||
}
|
||||
|
||||
|
@ -254,7 +254,7 @@ public abstract class AbstractReactiveWebServerFactoryTests {
|
|||
public void compressionOfResponseToPostRequest() {
|
||||
WebClient client = prepareCompressionTest();
|
||||
ResponseEntity<Void> response = client.post().exchange()
|
||||
.flatMap((res) -> res.toEntity(Void.class)).block();
|
||||
.flatMap((res) -> res.toEntity(Void.class)).block(Duration.ofSeconds(30));
|
||||
assertResponseIsCompressed(response);
|
||||
}
|
||||
|
||||
|
@ -265,7 +265,7 @@ public abstract class AbstractReactiveWebServerFactoryTests {
|
|||
compression.setMinResponseSize(DataSize.ofBytes(3001));
|
||||
WebClient client = prepareCompressionTest(compression);
|
||||
ResponseEntity<Void> response = client.get().exchange()
|
||||
.flatMap((res) -> res.toEntity(Void.class)).block();
|
||||
.flatMap((res) -> res.toEntity(Void.class)).block(Duration.ofSeconds(30));
|
||||
assertResponseIsNotCompressed(response);
|
||||
}
|
||||
|
||||
|
@ -275,7 +275,7 @@ public abstract class AbstractReactiveWebServerFactoryTests {
|
|||
compression.setMimeTypes(new String[] { "application/json" });
|
||||
WebClient client = prepareCompressionTest(compression);
|
||||
ResponseEntity<Void> response = client.get().exchange()
|
||||
.flatMap((res) -> res.toEntity(Void.class)).block();
|
||||
.flatMap((res) -> res.toEntity(Void.class)).block(Duration.ofSeconds(30));
|
||||
assertResponseIsNotCompressed(response);
|
||||
}
|
||||
|
||||
|
@ -286,7 +286,8 @@ public abstract class AbstractReactiveWebServerFactoryTests {
|
|||
compression.setExcludedUserAgents(new String[] { "testUserAgent" });
|
||||
WebClient client = prepareCompressionTest(compression);
|
||||
ResponseEntity<Void> response = client.get().header("User-Agent", "testUserAgent")
|
||||
.exchange().flatMap((res) -> res.toEntity(Void.class)).block();
|
||||
.exchange().flatMap((res) -> res.toEntity(Void.class))
|
||||
.block(Duration.ofSeconds(30));
|
||||
assertResponseIsNotCompressed(response);
|
||||
}
|
||||
|
||||
|
@ -324,7 +325,7 @@ public abstract class AbstractReactiveWebServerFactoryTests {
|
|||
this.webServer = factory.getWebServer(new XForwardedHandler());
|
||||
this.webServer.start();
|
||||
String body = getWebClient().build().get().header("X-Forwarded-Proto", "https")
|
||||
.retrieve().bodyToMono(String.class).block();
|
||||
.retrieve().bodyToMono(String.class).block(Duration.ofSeconds(30));
|
||||
assertThat(body).isEqualTo("https");
|
||||
}
|
||||
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
package sample.session;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.util.Base64;
|
||||
|
||||
import org.junit.Test;
|
||||
|
@ -52,17 +53,19 @@ public class SampleSessionWebFluxApplicationTests {
|
|||
WebClient webClient = this.webClientBuilder
|
||||
.baseUrl("http://localhost:" + this.port + "/").build();
|
||||
ClientResponse response = webClient.get().header("Authorization", getBasicAuth())
|
||||
.exchange().block();
|
||||
.exchange().block(Duration.ofSeconds(30));
|
||||
assertThat(response.statusCode()).isEqualTo(HttpStatus.OK);
|
||||
ResponseCookie sessionCookie = response.cookies().getFirst("SESSION");
|
||||
String sessionId = response.bodyToMono(String.class).block();
|
||||
String sessionId = response.bodyToMono(String.class)
|
||||
.block(Duration.ofSeconds(30));
|
||||
response = webClient.get().cookie("SESSION", sessionCookie.getValue()).exchange()
|
||||
.block();
|
||||
.block(Duration.ofSeconds(30));
|
||||
assertThat(response.statusCode()).isEqualTo(HttpStatus.OK);
|
||||
assertThat(response.bodyToMono(String.class).block()).isEqualTo(sessionId);
|
||||
assertThat(response.bodyToMono(String.class).block(Duration.ofSeconds(30)))
|
||||
.isEqualTo(sessionId);
|
||||
Thread.sleep(2000);
|
||||
response = webClient.get().cookie("SESSION", sessionCookie.getValue()).exchange()
|
||||
.block();
|
||||
.block(Duration.ofSeconds(30));
|
||||
assertThat(response.statusCode()).isEqualTo(HttpStatus.UNAUTHORIZED);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue