83
83
import org .springframework .web .testfixture .xml .Pojo ;
84
84
85
85
import static org .assertj .core .api .Assertions .assertThat ;
86
- import static org .junit .jupiter .api .Assumptions .assumeFalse ;
87
86
import static org .junit .jupiter .params .provider .Arguments .argumentSet ;
88
87
89
88
/**
@@ -108,6 +107,7 @@ class WebClientIntegrationTests {
108
107
static Stream <Arguments > arguments () {
109
108
return Stream .of (
110
109
argumentSet ("Reactor Netty" , new ReactorClientHttpConnector ()),
110
+ argumentSet ("Reactor Netty 2" , new ReactorNetty2ClientHttpConnector ()),
111
111
argumentSet ("JDK" , new JdkClientHttpConnector ()),
112
112
argumentSet ("Jetty" , new JettyClientHttpConnector ()),
113
113
argumentSet ("HttpComponents" , new HttpComponentsClientHttpConnector ())
@@ -193,29 +193,39 @@ void retrieveJson(ClientHttpConnector connector) {
193
193
194
194
@ ParameterizedWebClientTest
195
195
void applyAttributesToNativeRequest (ClientHttpConnector connector ) {
196
- assumeFalse (connector instanceof ReactorClientHttpConnector ,
197
- "Temporarily disabling flaky test for Reactor Netty" );
198
196
startServer (connector );
199
197
prepareResponse (response -> {});
200
198
201
199
final AtomicReference <Object > nativeRequest = new AtomicReference <>();
202
200
Mono <Void > result = this .webClient .get ()
203
201
.uri ("/pojo" )
204
202
.attribute ("foo" ,"bar" )
205
- .httpRequest (clientHttpRequest -> nativeRequest .set (clientHttpRequest .getNativeRequest ()))
203
+ .httpRequest (clientHttpRequest -> {
204
+ if (clientHttpRequest instanceof ChannelOperations <?,?> nettyReq ) {
205
+ nativeRequest .set (nettyReq .channel ().attr (ReactorClientHttpConnector .ATTRIBUTES_KEY ));
206
+ }
207
+ else if (clientHttpRequest instanceof reactor .netty5 .channel .ChannelOperations <?,?> nettyReq ) {
208
+ nativeRequest .set (nettyReq .channel ().attr (ReactorNetty2ClientHttpConnector .ATTRIBUTES_KEY ));
209
+ }
210
+ else {
211
+ nativeRequest .set (clientHttpRequest .getNativeRequest ());
212
+ }
213
+ })
206
214
.retrieve ()
207
215
.bodyToMono (Void .class );
208
216
209
217
StepVerifier .create (result ).expectComplete ().verify ();
210
218
211
- if (nativeRequest .get () instanceof ChannelOperations <?,?> nativeReq ) {
212
- Attribute <Map <String , Object >> attributes = nativeReq .channel ().attr (ReactorClientHttpConnector .ATTRIBUTES_KEY );
219
+ if (nativeRequest .get () instanceof Attribute <?>) {
220
+ @ SuppressWarnings ("unchecked" )
221
+ Attribute <Map <String , Object >> attributes = (Attribute <Map <String , Object >>) nativeRequest .get ();
213
222
assertThat (attributes .get ()).isNotNull ();
214
223
assertThat (attributes .get ()).containsEntry ("foo" , "bar" );
215
224
}
216
- else if (nativeRequest .get () instanceof reactor .netty5 .channel .ChannelOperations <?,?> nativeReq ) {
225
+ else if (nativeRequest .get () instanceof io .netty5 .util .Attribute <?>) {
226
+ @ SuppressWarnings ("unchecked" )
217
227
io .netty5 .util .Attribute <Map <String , Object >> attributes =
218
- nativeReq . channel (). attr ( ReactorNetty2ClientHttpConnector . ATTRIBUTES_KEY );
228
+ ( io . netty5 . util . Attribute < Map < String , Object >>) nativeRequest . get ( );
219
229
assertThat (attributes .get ()).isNotNull ();
220
230
assertThat (attributes .get ()).containsEntry ("foo" , "bar" );
221
231
}
0 commit comments