33
33
import org .apache .hc .core5 .http .HttpEntity ;
34
34
import org .apache .hc .core5 .http .HttpHeaders ;
35
35
import org .apache .hc .core5 .http .HttpHost ;
36
+ import org .assertj .core .api .ThrowingConsumer ;
36
37
import org .junit .jupiter .api .BeforeEach ;
37
38
import org .junit .jupiter .api .Test ;
38
39
import org .junit .jupiter .api .extension .ExtendWith ;
39
- import org .mockito .ArgumentCaptor ;
40
- import org .mockito .Captor ;
41
40
import org .mockito .Mock ;
42
41
import org .mockito .junit .jupiter .MockitoExtension ;
43
42
@@ -78,9 +77,6 @@ class HttpClientTransportTests {
78
77
@ Mock
79
78
private InputStream content ;
80
79
81
- @ Captor
82
- private ArgumentCaptor <HttpUriRequest > requestCaptor ;
83
-
84
80
private HttpClientTransport http ;
85
81
86
82
private URI uri ;
@@ -117,13 +113,14 @@ void postShouldExecuteHttpPost() throws Exception {
117
113
given (this .entity .getContent ()).willReturn (this .content );
118
114
given (this .response .getCode ()).willReturn (200 );
119
115
Response response = this .http .post (this .uri );
120
- then (this .client ).should ().executeOpen (any (HttpHost .class ), this .requestCaptor .capture (), isNull ());
121
- HttpUriRequest request = this .requestCaptor .getValue ();
122
- assertThat (request ).isInstanceOf (HttpPost .class );
123
- assertThat (request .getUri ()).isEqualTo (this .uri );
124
- assertThat (request .getFirstHeader (HttpHeaders .CONTENT_TYPE )).isNull ();
125
- assertThat (request .getFirstHeader (HttpClientTransport .REGISTRY_AUTH_HEADER )).isNull ();
126
- assertThat (response .getContent ()).isSameAs (this .content );
116
+ then (this .client ).should ()
117
+ .executeOpen (any (HttpHost .class ), assertArg ((ThrowingConsumer <HttpPost >) (request ) -> {
118
+ assertThat (request ).isInstanceOf (HttpPost .class );
119
+ assertThat (request .getUri ()).isEqualTo (this .uri );
120
+ assertThat (request .getFirstHeader (HttpHeaders .CONTENT_TYPE )).isNull ();
121
+ assertThat (request .getFirstHeader (HttpClientTransport .REGISTRY_AUTH_HEADER )).isNull ();
122
+ assertThat (response .getContent ()).isSameAs (this .content );
123
+ }), isNull ());
127
124
}
128
125
129
126
@ Test
@@ -132,13 +129,15 @@ void postWithRegistryAuthShouldExecuteHttpPostWithHeader() throws Exception {
132
129
given (this .entity .getContent ()).willReturn (this .content );
133
130
given (this .response .getCode ()).willReturn (200 );
134
131
Response response = this .http .post (this .uri , "auth token" );
135
- then (this .client ).should ().executeOpen (any (HttpHost .class ), this .requestCaptor .capture (), isNull ());
136
- HttpUriRequest request = this .requestCaptor .getValue ();
137
- assertThat (request ).isInstanceOf (HttpPost .class );
138
- assertThat (request .getUri ()).isEqualTo (this .uri );
139
- assertThat (request .getFirstHeader (HttpHeaders .CONTENT_TYPE )).isNull ();
140
- assertThat (request .getFirstHeader (HttpClientTransport .REGISTRY_AUTH_HEADER ).getValue ()).isEqualTo ("auth token" );
141
- assertThat (response .getContent ()).isSameAs (this .content );
132
+ then (this .client ).should ()
133
+ .executeOpen (any (HttpHost .class ), assertArg ((ThrowingConsumer <HttpPost >) (request ) -> {
134
+ assertThat (request ).isInstanceOf (HttpPost .class );
135
+ assertThat (request .getUri ()).isEqualTo (this .uri );
136
+ assertThat (request .getFirstHeader (HttpHeaders .CONTENT_TYPE )).isNull ();
137
+ assertThat (request .getFirstHeader (HttpClientTransport .REGISTRY_AUTH_HEADER ).getValue ())
138
+ .isEqualTo ("auth token" );
139
+ assertThat (response .getContent ()).isSameAs (this .content );
140
+ }), isNull ());
142
141
}
143
142
144
143
@ Test
@@ -147,13 +146,14 @@ void postWithEmptyRegistryAuthShouldExecuteHttpPostWithoutHeader() throws Except
147
146
given (this .entity .getContent ()).willReturn (this .content );
148
147
given (this .response .getCode ()).willReturn (200 );
149
148
Response response = this .http .post (this .uri , "" );
150
- then (this .client ).should ().executeOpen (any (HttpHost .class ), this .requestCaptor .capture (), isNull ());
151
- HttpUriRequest request = this .requestCaptor .getValue ();
152
- assertThat (request ).isInstanceOf (HttpPost .class );
153
- assertThat (request .getUri ()).isEqualTo (this .uri );
154
- assertThat (request .getFirstHeader (HttpHeaders .CONTENT_TYPE )).isNull ();
155
- assertThat (request .getFirstHeader (HttpClientTransport .REGISTRY_AUTH_HEADER )).isNull ();
156
- assertThat (response .getContent ()).isSameAs (this .content );
149
+ then (this .client ).should ()
150
+ .executeOpen (any (HttpHost .class ), assertArg ((ThrowingConsumer <HttpPost >) (request ) -> {
151
+ assertThat (request ).isInstanceOf (HttpPost .class );
152
+ assertThat (request .getUri ()).isEqualTo (this .uri );
153
+ assertThat (request .getFirstHeader (HttpHeaders .CONTENT_TYPE )).isNull ();
154
+ assertThat (request .getFirstHeader (HttpClientTransport .REGISTRY_AUTH_HEADER )).isNull ();
155
+ assertThat (response .getContent ()).isSameAs (this .content );
156
+ }), isNull ());
157
157
}
158
158
159
159
@ Test
@@ -164,18 +164,19 @@ void postWithJsonContentShouldExecuteHttpPost() throws Exception {
164
164
given (this .response .getCode ()).willReturn (200 );
165
165
Response response = this .http .post (this .uri , APPLICATION_JSON ,
166
166
(out ) -> StreamUtils .copy (content , StandardCharsets .UTF_8 , out ));
167
- then (this .client ).should ().executeOpen (any (HttpHost .class ), this .requestCaptor .capture (), isNull ());
168
- HttpUriRequest request = this .requestCaptor .getValue ();
169
- HttpEntity entity = request .getEntity ();
170
- assertThat (request ).isInstanceOf (HttpPost .class );
171
- assertThat (request .getUri ()).isEqualTo (this .uri );
172
- assertThat (entity .isRepeatable ()).isFalse ();
173
- assertThat (entity .getContentLength ()).isEqualTo (content .length ());
174
- assertThat (entity .getContentType ()).isEqualTo (APPLICATION_JSON );
175
- assertThat (entity .isStreaming ()).isTrue ();
176
- assertThatExceptionOfType (UnsupportedOperationException .class ).isThrownBy (entity ::getContent );
177
- assertThat (writeToString (entity )).isEqualTo (content );
178
- assertThat (response .getContent ()).isSameAs (this .content );
167
+ then (this .client ).should ()
168
+ .executeOpen (any (HttpHost .class ), assertArg ((ThrowingConsumer <HttpPost >) (request ) -> {
169
+ HttpEntity entity = request .getEntity ();
170
+ assertThat (request ).isInstanceOf (HttpPost .class );
171
+ assertThat (request .getUri ()).isEqualTo (this .uri );
172
+ assertThat (entity .isRepeatable ()).isFalse ();
173
+ assertThat (entity .getContentLength ()).isEqualTo (content .length ());
174
+ assertThat (entity .getContentType ()).isEqualTo (APPLICATION_JSON );
175
+ assertThat (entity .isStreaming ()).isTrue ();
176
+ assertThatExceptionOfType (UnsupportedOperationException .class ).isThrownBy (entity ::getContent );
177
+ assertThat (writeToString (entity )).isEqualTo (content );
178
+ assertThat (response .getContent ()).isSameAs (this .content );
179
+ }), isNull ());
179
180
}
180
181
181
182
@ Test
@@ -186,18 +187,19 @@ void postWithArchiveContentShouldExecuteHttpPost() throws Exception {
186
187
given (this .response .getCode ()).willReturn (200 );
187
188
Response response = this .http .post (this .uri , APPLICATION_X_TAR ,
188
189
(out ) -> StreamUtils .copy (content , StandardCharsets .UTF_8 , out ));
189
- then (this .client ).should ().executeOpen (any (HttpHost .class ), this .requestCaptor .capture (), isNull ());
190
- HttpUriRequest request = this .requestCaptor .getValue ();
191
- HttpEntity entity = request .getEntity ();
192
- assertThat (request ).isInstanceOf (HttpPost .class );
193
- assertThat (request .getUri ()).isEqualTo (this .uri );
194
- assertThat (entity .isRepeatable ()).isFalse ();
195
- assertThat (entity .getContentLength ()).isEqualTo (-1 );
196
- assertThat (entity .getContentType ()).isEqualTo (APPLICATION_X_TAR );
197
- assertThat (entity .isStreaming ()).isTrue ();
198
- assertThatExceptionOfType (UnsupportedOperationException .class ).isThrownBy (entity ::getContent );
199
- assertThat (writeToString (entity )).isEqualTo (content );
200
- assertThat (response .getContent ()).isSameAs (this .content );
190
+ then (this .client ).should ()
191
+ .executeOpen (any (HttpHost .class ), assertArg ((ThrowingConsumer <HttpPost >) (request ) -> {
192
+ HttpEntity entity = request .getEntity ();
193
+ assertThat (request ).isInstanceOf (HttpPost .class );
194
+ assertThat (request .getUri ()).isEqualTo (this .uri );
195
+ assertThat (entity .isRepeatable ()).isFalse ();
196
+ assertThat (entity .getContentLength ()).isEqualTo (-1 );
197
+ assertThat (entity .getContentType ()).isEqualTo (APPLICATION_X_TAR );
198
+ assertThat (entity .isStreaming ()).isTrue ();
199
+ assertThatExceptionOfType (UnsupportedOperationException .class ).isThrownBy (entity ::getContent );
200
+ assertThat (writeToString (entity )).isEqualTo (content );
201
+ assertThat (response .getContent ()).isSameAs (this .content );
202
+ }), isNull ());
201
203
}
202
204
203
205
@ Test
@@ -208,18 +210,18 @@ void putWithJsonContentShouldExecuteHttpPut() throws Exception {
208
210
given (this .response .getCode ()).willReturn (200 );
209
211
Response response = this .http .put (this .uri , APPLICATION_JSON ,
210
212
(out ) -> StreamUtils .copy (content , StandardCharsets .UTF_8 , out ));
211
- then (this .client ).should ().executeOpen (any (HttpHost .class ), this . requestCaptor . capture (), isNull ());
212
- HttpUriRequest request = this . requestCaptor . getValue ();
213
- HttpEntity entity = request . getEntity ( );
214
- assertThat (request ). isInstanceOf ( HttpPut . class );
215
- assertThat (request . getUri ()).isEqualTo ( this . uri );
216
- assertThat (entity .isRepeatable ()).isFalse ( );
217
- assertThat (entity .getContentLength ()).isEqualTo (content . length () );
218
- assertThat (entity .getContentType ()).isEqualTo ( APPLICATION_JSON );
219
- assertThat ( entity . isStreaming ()). isTrue ( );
220
- assertThatExceptionOfType ( UnsupportedOperationException . class ). isThrownBy ( entity :: getContent );
221
- assertThat (writeToString ( entity )).isEqualTo ( content );
222
- assertThat ( response . getContent ()). isSameAs ( this . content );
213
+ then (this .client ).should ().executeOpen (any (HttpHost .class ), assertArg (( ThrowingConsumer < HttpPut >) ( request ) -> {
214
+ HttpEntity entity = request . getEntity ();
215
+ assertThat ( request ). isInstanceOf ( HttpPut . class );
216
+ assertThat (request . getUri ()). isEqualTo ( this . uri );
217
+ assertThat (entity . isRepeatable ()).isFalse ( );
218
+ assertThat (entity .getContentLength ()).isEqualTo ( content . length () );
219
+ assertThat (entity .getContentType ()).isEqualTo (APPLICATION_JSON );
220
+ assertThat (entity .isStreaming ()).isTrue ( );
221
+ assertThatExceptionOfType ( UnsupportedOperationException . class ). isThrownBy ( entity :: getContent );
222
+ assertThat ( writeToString ( entity )). isEqualTo ( content );
223
+ assertThat (response . getContent ( )).isSameAs ( this . content );
224
+ }), isNull () );
223
225
}
224
226
225
227
@ Test
@@ -230,18 +232,18 @@ void putWithArchiveContentShouldExecuteHttpPut() throws Exception {
230
232
given (this .response .getCode ()).willReturn (200 );
231
233
Response response = this .http .put (this .uri , APPLICATION_X_TAR ,
232
234
(out ) -> StreamUtils .copy (content , StandardCharsets .UTF_8 , out ));
233
- then (this .client ).should ().executeOpen (any (HttpHost .class ), this . requestCaptor . capture (), isNull ());
234
- HttpUriRequest request = this . requestCaptor . getValue ();
235
- HttpEntity entity = request . getEntity ( );
236
- assertThat (request ). isInstanceOf ( HttpPut . class );
237
- assertThat (request . getUri ()).isEqualTo ( this . uri );
238
- assertThat (entity .isRepeatable ()).isFalse ( );
239
- assertThat (entity .getContentLength ()).isEqualTo (- 1 );
240
- assertThat (entity .getContentType ()).isEqualTo ( APPLICATION_X_TAR );
241
- assertThat ( entity . isStreaming ()). isTrue ( );
242
- assertThatExceptionOfType ( UnsupportedOperationException . class ). isThrownBy ( entity :: getContent );
243
- assertThat (writeToString ( entity )).isEqualTo ( content );
244
- assertThat ( response . getContent ()). isSameAs ( this . content );
235
+ then (this .client ).should ().executeOpen (any (HttpHost .class ), assertArg (( ThrowingConsumer < HttpPut >) ( request ) -> {
236
+ HttpEntity entity = request . getEntity ();
237
+ assertThat ( request ). isInstanceOf ( HttpPut . class );
238
+ assertThat (request . getUri ()). isEqualTo ( this . uri );
239
+ assertThat (entity . isRepeatable ()).isFalse ( );
240
+ assertThat (entity .getContentLength ()).isEqualTo (- 1 );
241
+ assertThat (entity .getContentType ()).isEqualTo (APPLICATION_X_TAR );
242
+ assertThat (entity .isStreaming ()).isTrue ( );
243
+ assertThatExceptionOfType ( UnsupportedOperationException . class ). isThrownBy ( entity :: getContent );
244
+ assertThat ( writeToString ( entity )). isEqualTo ( content );
245
+ assertThat (response . getContent ( )).isSameAs ( this . content );
246
+ }), isNull () );
245
247
}
246
248
247
249
@ Test
@@ -250,12 +252,14 @@ void deleteShouldExecuteHttpDelete() throws Exception {
250
252
given (this .entity .getContent ()).willReturn (this .content );
251
253
given (this .response .getCode ()).willReturn (200 );
252
254
Response response = this .http .delete (this .uri );
253
- then (this .client ).should ().executeOpen (any (HttpHost .class ), this .requestCaptor .capture (), isNull ());
254
- HttpUriRequest request = this .requestCaptor .getValue ();
255
- assertThat (request ).isInstanceOf (HttpDelete .class );
256
- assertThat (request .getUri ()).isEqualTo (this .uri );
257
- assertThat (request .getFirstHeader (HttpHeaders .CONTENT_TYPE )).isNull ();
258
- assertThat (response .getContent ()).isSameAs (this .content );
255
+
256
+ then (this .client ).should ()
257
+ .executeOpen (any (HttpHost .class ), assertArg ((ThrowingConsumer <HttpDelete >) (request ) -> {
258
+ assertThat (request ).isInstanceOf (HttpDelete .class );
259
+ assertThat (request .getUri ()).isEqualTo (this .uri );
260
+ assertThat (request .getFirstHeader (HttpHeaders .CONTENT_TYPE )).isNull ();
261
+ assertThat (response .getContent ()).isSameAs (this .content );
262
+ }), isNull ());
259
263
}
260
264
261
265
@ Test
0 commit comments