1010import java .util .ArrayList ;
1111import java .util .List ;
1212import org .junit .jupiter .api .Test ;
13- import org .springframework .http .HttpHeaders ;
1413import org .springframework .mock .http .server .reactive .MockServerHttpRequest ;
1514import org .springframework .mock .web .server .MockServerWebExchange ;
16- import org .springframework .web .server .ServerWebExchange ;
1715
1816class WebfluxTextMapGetterTest {
1917
20- @ Test
21- void testKeysWithMultipleHeaders () {
22- MockServerHttpRequest request =
23- MockServerHttpRequest .get ("/test" )
24- .header ("traceparent" , "00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01" )
25- .header ("tracestate" , "congo=t61rcWkgMzE" )
26- .header ("custom-header" , "custom-value" )
27- .header ("x-forwarded-for" , "192.168.1.1" )
28- .build ();
29-
30- MockServerWebExchange exchange = MockServerWebExchange .from (request );
31-
32- Iterable <String > keys = WebfluxTextMapGetter .INSTANCE .keys (exchange );
33- assertThat (keys ).contains ("traceparent" , "tracestate" , "custom-header" , "x-forwarded-for" );
34- }
35-
3618 @ Test
3719 void testGet () {
3820 MockServerHttpRequest request =
@@ -66,51 +48,8 @@ void testGetAll() {
6648 assertThat (acceptHeaders ).containsExactly ("application/json" , "text/html" );
6749 }
6850
69- @ Test
70- void testGetAllSingleValue () {
71- MockServerHttpRequest request =
72- MockServerHttpRequest .get ("/test" ).header ("content-type" , "application/json" ).build ();
73-
74- MockServerWebExchange exchange = MockServerWebExchange .from (request );
75-
76- List <String > contentTypes = new ArrayList <>();
77- WebfluxTextMapGetter .INSTANCE
78- .getAll (exchange , "content-type" )
79- .forEachRemaining (contentTypes ::add );
80-
81- assertThat (contentTypes ).containsExactly ("application/json" );
82- }
83-
84- @ Test
85- void testGetNullExchange () {
86- String result = WebfluxTextMapGetter .INSTANCE .get (null , "any-header" );
87- assertThat (result ).isNull ();
88- }
89-
90- @ Test
91- void testKeysDirectlyOnHttpHeaders () {
92- HttpHeaders headers = new HttpHeaders ();
93- headers .add ("traceparent" , "00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01" );
94- headers .add ("tracestate" , "congo=t61rcWkgMzE" );
95- headers .add ("custom-header" , "custom-value" );
96-
97- MockServerHttpRequest request = MockServerHttpRequest .get ("/test" ).headers (headers ).build ();
98- ServerWebExchange exchange = MockServerWebExchange .from (request );
99-
100- // The keys() method internally calls HttpHeaders.keySet()
101- // This will throw NoSuchMethodError with Spring Web 7 if not properly handled
102- Iterable <String > keys = WebfluxTextMapGetter .INSTANCE .keys (exchange );
103- assertThat (keys ).hasSize (3 ).contains ("traceparent" , "tracestate" , "custom-header" );
104- }
105-
106- @ Test
107- void testGetAllNullExchange () {
108- assertThat (WebfluxTextMapGetter .INSTANCE .getAll (null , "any-header" )).isExhausted ();
109- }
110-
11151 @ Test
11252 void testKeysWithBaggageHeader () {
113- // Test that baggage headers are properly returned by keys()
11453 MockServerHttpRequest request =
11554 MockServerHttpRequest .get ("/test" )
11655 .header ("traceparent" , "00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01" )
@@ -128,8 +67,6 @@ void testKeysWithBaggageHeader() {
12867
12968 @ Test
13069 void testKeysWithMultipleBaggageHeaders () {
131- // Test that multiple baggage headers are properly returned by keys()
132- // The W3C Baggage propagator needs to iterate through all headers to find baggage entries
13370 MockServerHttpRequest request =
13471 MockServerHttpRequest .get ("/test" )
13572 .header ("traceparent" , "00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01" )
0 commit comments