1
1
/*
2
- * Copyright 2012-2019 the original author or authors.
2
+ * Copyright 2012-2021 the original author or authors.
3
3
*
4
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
5
* you may not use this file except in compliance with the License.
17
17
package org .springframework .boot .actuate .trace .http .reactive ;
18
18
19
19
import java .security .Principal ;
20
- import java .time .Duration ;
21
20
import java .util .EnumSet ;
22
21
23
22
import org .junit .jupiter .api .Test ;
24
23
import reactor .core .publisher .Mono ;
24
+ import reactor .test .StepVerifier ;
25
25
26
26
import org .springframework .boot .actuate .trace .http .HttpExchangeTracer ;
27
27
import org .springframework .boot .actuate .trace .http .HttpTrace .Session ;
@@ -55,16 +55,15 @@ class HttpTraceWebFilterTests {
55
55
@ Test
56
56
void filterTracesExchange () {
57
57
executeFilter (MockServerWebExchange .from (MockServerHttpRequest .get ("https://api.example.com" )),
58
- (exchange ) -> Mono .empty ()). block ( Duration . ofSeconds ( 30 )) ;
58
+ (exchange ) -> Mono .empty ());
59
59
assertThat (this .repository .findAll ()).hasSize (1 );
60
60
}
61
61
62
62
@ Test
63
63
void filterCapturesSessionIdWhenSessionIsUsed () {
64
- executeFilter (MockServerWebExchange .from (MockServerHttpRequest .get ("https://api.example.com" )), (exchange ) -> {
65
- exchange .getSession ().block (Duration .ofSeconds (30 )).getAttributes ().put ("a" , "alpha" );
66
- return Mono .empty ();
67
- }).block (Duration .ofSeconds (30 ));
64
+ executeFilter (MockServerWebExchange .from (MockServerHttpRequest .get ("https://api.example.com" )),
65
+ (exchange ) -> exchange .getSession ().doOnNext ((session ) -> session .getAttributes ().put ("a" , "alpha" ))
66
+ .then ());
68
67
assertThat (this .repository .findAll ()).hasSize (1 );
69
68
Session session = this .repository .findAll ().get (0 ).getSession ();
70
69
assertThat (session ).isNotNull ();
@@ -73,10 +72,8 @@ void filterCapturesSessionIdWhenSessionIsUsed() {
73
72
74
73
@ Test
75
74
void filterDoesNotCaptureIdOfUnusedSession () {
76
- executeFilter (MockServerWebExchange .from (MockServerHttpRequest .get ("https://api.example.com" )), (exchange ) -> {
77
- exchange .getSession ().block (Duration .ofSeconds (30 ));
78
- return Mono .empty ();
79
- }).block (Duration .ofSeconds (30 ));
75
+ executeFilter (MockServerWebExchange .from (MockServerHttpRequest .get ("https://api.example.com" )),
76
+ (exchange ) -> exchange .getSession ().then ());
80
77
assertThat (this .repository .findAll ()).hasSize (1 );
81
78
Session session = this .repository .findAll ().get (0 ).getSession ();
82
79
assertThat (session ).isNull ();
@@ -94,19 +91,18 @@ public Mono<Principal> getPrincipal() {
94
91
return Mono .just (principal );
95
92
}
96
93
97
- }, (exchange ) -> {
98
- exchange .getSession ().block (Duration .ofSeconds (30 )).getAttributes ().put ("a" , "alpha" );
99
- return Mono .empty ();
100
- }).block (Duration .ofSeconds (30 ));
94
+ }, (exchange ) -> exchange .getSession ().doOnNext ((session ) -> session .getAttributes ().put ("a" , "alpha" )).then ());
101
95
assertThat (this .repository .findAll ()).hasSize (1 );
102
96
org .springframework .boot .actuate .trace .http .HttpTrace .Principal tracedPrincipal = this .repository .findAll ()
103
97
.get (0 ).getPrincipal ();
104
98
assertThat (tracedPrincipal ).isNotNull ();
105
99
assertThat (tracedPrincipal .getName ()).isEqualTo ("alice" );
106
100
}
107
101
108
- private Mono <Void > executeFilter (ServerWebExchange exchange , WebFilterChain chain ) {
109
- return this .filter .filter (exchange , chain ).then (Mono .defer (() -> exchange .getResponse ().setComplete ()));
102
+ private void executeFilter (ServerWebExchange exchange , WebFilterChain chain ) {
103
+ StepVerifier .create (
104
+ this .filter .filter (exchange , chain ).then (Mono .defer (() -> exchange .getResponse ().setComplete ())))
105
+ .verifyComplete ();
110
106
}
111
107
112
108
}
0 commit comments