47
47
import java .nio .charset .Charset ;
48
48
import java .util .Arrays ;
49
49
import java .util .Collections ;
50
+ import java .util .List ;
50
51
import javax .ws .rs .GET ;
51
52
import javax .ws .rs .Path ;
52
53
import okhttp3 .mockwebserver .MockResponse ;
@@ -84,6 +85,8 @@ public void testDefaultMethodsNotProxied() {
84
85
@ Test
85
86
public void testReactorTargetFull () throws Exception {
86
87
this .webServer .enqueue (new MockResponse ().setBody ("1.0" ));
88
+ this .webServer .enqueue (new MockResponse ().setBody ("{ \" username\" : \" test\" }" ));
89
+ this .webServer .enqueue (new MockResponse ().setBody ("[{ \" username\" : \" test\" }]" ));
87
90
this .webServer .enqueue (new MockResponse ().setBody ("[{ \" username\" : \" test\" }]" ));
88
91
89
92
TestReactorService service = ReactorFeign .builder ()
@@ -102,20 +105,31 @@ public void testReactorTargetFull() throws Exception {
102
105
.verify ();
103
106
assertThat (webServer .takeRequest ().getPath ()).isEqualToIgnoringCase ("/version" );
104
107
105
-
106
108
/* test encoding and decoding */
107
109
StepVerifier .create (service .user ("test" ))
108
110
.assertNext (user -> assertThat (user ).hasFieldOrPropertyWithValue ("username" , "test" ))
109
111
.expectComplete ()
110
112
.verify ();
111
113
assertThat (webServer .takeRequest ().getPath ()).isEqualToIgnoringCase ("/users/test" );
112
114
115
+ StepVerifier .create (service .usersFlux ())
116
+ .assertNext (user -> assertThat (user ).hasFieldOrPropertyWithValue ("username" , "test" ))
117
+ .expectComplete ()
118
+ .verify ();
119
+ assertThat (webServer .takeRequest ().getPath ()).isEqualToIgnoringCase ("/users" );
120
+
121
+ StepVerifier .create (service .usersMono ())
122
+ .assertNext (users -> assertThat (users .get (0 )).hasFieldOrPropertyWithValue ("username" , "test" ))
123
+ .expectComplete ()
124
+ .verify ();
125
+ assertThat (webServer .takeRequest ().getPath ()).isEqualToIgnoringCase ("/users" );
113
126
}
114
127
115
128
@ Test
116
129
public void testRxJavaTarget () throws Exception {
117
130
this .webServer .enqueue (new MockResponse ().setBody ("1.0" ));
118
131
this .webServer .enqueue (new MockResponse ().setBody ("{ \" username\" : \" test\" }" ));
132
+ this .webServer .enqueue (new MockResponse ().setBody ("[{ \" username\" : \" test\" }]" ));
119
133
120
134
TestReactiveXService service = RxJavaFeign .builder ()
121
135
.encoder (new JacksonEncoder ())
@@ -137,6 +151,12 @@ public void testRxJavaTarget() throws Exception {
137
151
.expectComplete ()
138
152
.verify ();
139
153
assertThat (webServer .takeRequest ().getPath ()).isEqualToIgnoringCase ("/users/test" );
154
+
155
+ StepVerifier .create (service .users ())
156
+ .assertNext (users -> assertThat (users .get (0 )).hasFieldOrPropertyWithValue ("username" , "test" ))
157
+ .expectComplete ()
158
+ .verify ();
159
+ assertThat (webServer .takeRequest ().getPath ()).isEqualToIgnoringCase ("/users" );
140
160
}
141
161
142
162
@ Test
@@ -309,7 +329,13 @@ interface TestReactorService {
309
329
Mono <String > version ();
310
330
311
331
@ RequestLine ("GET /users/{username}" )
312
- Flux <User > user (@ Param ("username" ) String username );
332
+ Mono <User > user (@ Param ("username" ) String username );
333
+
334
+ @ RequestLine ("GET /users" )
335
+ Flux <User > usersFlux ();
336
+
337
+ @ RequestLine ("GET /users" )
338
+ Mono <List <User >> usersMono ();
313
339
}
314
340
315
341
@@ -320,6 +346,9 @@ interface TestReactiveXService {
320
346
@ RequestLine ("GET /users/{username}" )
321
347
Flowable <User > user (@ Param ("username" ) String username );
322
348
349
+ @ RequestLine ("GET /users" )
350
+ Flowable <List <User >> users ();
351
+
323
352
@ RequestLine ("GET /users/search" )
324
353
Flowable <String > search (@ QueryMap SearchQuery query );
325
354
}
0 commit comments