15
15
16
16
package software .amazon .awssdk .services .s3 .internal .crossregion ;
17
17
18
- import static org .assertj .core .api .Assertions .as ;
19
18
import static org .assertj .core .api .Assertions .assertThat ;
20
19
import static org .assertj .core .api .Assertions .assertThatExceptionOfType ;
21
20
import static org .mockito .Mockito .verify ;
22
21
import static software .amazon .awssdk .services .s3 .internal .crossregion .S3CrossRegionAsyncClientTest .customHttpResponse ;
23
22
import static software .amazon .awssdk .services .s3 .internal .crossregion .S3CrossRegionAsyncClientTest .successHttpResponse ;
24
- import static software .amazon .awssdk .services .s3 .internal .crossregion .S3DecoratorRedirectBaseTest .CROSS_REGION ;
25
- import static software .amazon .awssdk .services .s3 .internal .crossregion .S3DecoratorRedirectBaseTest .X_AMZ_BUCKET_REGION ;
26
- import static software .amazon .awssdk .services .s3 .internal .crossregion .S3DecoratorRedirectBaseTest .X_AMZ_BUCKET_REGION ;
23
+ import static software .amazon .awssdk .services .s3 .internal .crossregion .S3DecoratorRedirectTestBase .CROSS_REGION ;
24
+ import static software .amazon .awssdk .services .s3 .internal .crossregion .S3DecoratorRedirectTestBase .OVERRIDE_CONFIGURED_REGION ;
27
25
28
- import java .net .URI ;
29
26
import java .util .Arrays ;
30
27
import java .util .List ;
31
28
import java .util .function .Consumer ;
32
- import java .util .function .Supplier ;
33
29
import java .util .stream .Collectors ;
34
30
import java .util .stream .Stream ;
35
31
import org .junit .jupiter .api .AfterEach ;
38
34
import org .junit .jupiter .params .ParameterizedTest ;
39
35
import org .junit .jupiter .params .provider .Arguments ;
40
36
import org .junit .jupiter .params .provider .MethodSource ;
41
- import org .mockito .ArgumentCaptor ;
42
37
import software .amazon .awssdk .core .interceptor .Context ;
43
38
import software .amazon .awssdk .core .interceptor .ExecutionAttributes ;
44
39
import software .amazon .awssdk .core .interceptor .ExecutionInterceptor ;
45
40
import software .amazon .awssdk .core .interceptor .SdkInternalExecutionAttribute ;
46
41
import software .amazon .awssdk .endpoints .EndpointProvider ;
47
- import software .amazon .awssdk .http .AbortableInputStream ;
48
- import software .amazon .awssdk .http .HttpExecuteRequest ;
49
- import software .amazon .awssdk .http .HttpExecuteResponse ;
50
42
import software .amazon .awssdk .http .SdkHttpMethod ;
51
43
import software .amazon .awssdk .http .SdkHttpRequest ;
52
- import software .amazon .awssdk .http .SdkHttpResponse ;
53
44
import software .amazon .awssdk .regions .Region ;
54
45
import software .amazon .awssdk .services .s3 .S3Client ;
55
46
import software .amazon .awssdk .services .s3 .S3ClientBuilder ;
56
- import software .amazon .awssdk .services .s3 .endpoints .S3EndpointProvider ;
57
47
import software .amazon .awssdk .services .s3 .endpoints .internal .DefaultS3EndpointProvider ;
58
48
import software .amazon .awssdk .services .s3 .internal .crossregion .endpointprovider .BucketEndpointProvider ;
59
49
import software .amazon .awssdk .services .s3 .model .GetObjectRequest ;
60
50
import software .amazon .awssdk .services .s3 .model .ListObjectsV2Response ;
61
51
import software .amazon .awssdk .services .s3 .model .S3Exception ;
62
52
import software .amazon .awssdk .services .s3 .paginators .ListObjectsV2Iterable ;
63
53
import software .amazon .awssdk .testutils .service .http .MockSyncHttpClient ;
64
- import software .amazon .awssdk .utils .StringInputStream ;
65
54
66
55
class S3CrossRegionSyncClientTest {
67
56
@@ -110,7 +99,6 @@ private static Stream<Arguments> stubOverriddenEndpointProviderResponses() {
110
99
);
111
100
}
112
101
113
-
114
102
@ ParameterizedTest
115
103
@ MethodSource ("stubResponses" )
116
104
void standardOp_crossRegionClient_noOverrideConfig_SuccessfullyIntercepts (Consumer <MockSyncHttpClient > stubConsumer ,
@@ -159,7 +147,6 @@ void crossRegionClient_createdWithWrapping_SuccessfullyIntercepts(Consumer<MockS
159
147
assertThat (captureInterceptor .endpointProvider ).isInstanceOf (endpointProviderType );
160
148
}
161
149
162
-
163
150
@ ParameterizedTest
164
151
@ MethodSource ("stubOverriddenEndpointProviderResponses" )
165
152
void standardOp_crossRegionClient_takesCustomEndpointProviderInRequest (Consumer <MockSyncHttpClient > stubConsumer ,
@@ -209,16 +196,16 @@ void crossRegionClient_CallsHeadObject_when_regionNameNotPresentInFallBackCall()
209
196
customHttpResponse (301 , CROSS_REGION ),
210
197
successHttpResponse (), successHttpResponse ());
211
198
S3Client crossRegionClient =
212
- clientBuilder ().endpointOverride (null ).region (Region . US_WEST_2 ).serviceConfiguration (c -> c .crossRegionAccessEnabled (true )).build ();
199
+ clientBuilder ().endpointOverride (null ).region (OVERRIDE_CONFIGURED_REGION ).serviceConfiguration (c -> c .crossRegionAccessEnabled (true )).build ();
213
200
crossRegionClient .getObject (r -> r .bucket (BUCKET ).key (KEY ));
214
201
assertThat (captureInterceptor .endpointProvider ).isInstanceOf (BucketEndpointProvider .class );
215
202
216
203
List <SdkHttpRequest > requests = mockSyncHttpClient .getRequests ();
217
204
assertThat (requests ).hasSize (3 );
218
205
219
206
assertThat (requests .stream ().map (req -> req .host ().substring (10 ,req .host ().length () - 14 )).collect (Collectors .toList ()))
220
- .isEqualTo (Arrays .asList (Region . US_WEST_2 .toString (),
221
- Region . US_WEST_2 .toString (),
207
+ .isEqualTo (Arrays .asList (OVERRIDE_CONFIGURED_REGION .toString (),
208
+ OVERRIDE_CONFIGURED_REGION .toString (),
222
209
CROSS_REGION ));
223
210
224
211
assertThat (requests .stream ().map (req -> req .method ()).collect (Collectors .toList ()))
@@ -248,7 +235,7 @@ void crossRegionClient_CallsHeadObjectErrors_shouldTerminateTheAPI() {
248
235
customHttpResponse (400 , null ),
249
236
successHttpResponse (), successHttpResponse ());
250
237
S3Client crossRegionClient =
251
- clientBuilder ().endpointOverride (null ).region (Region . US_WEST_2 ).serviceConfiguration (c -> c .crossRegionAccessEnabled (true )).build ();
238
+ clientBuilder ().endpointOverride (null ).region (OVERRIDE_CONFIGURED_REGION ).serviceConfiguration (c -> c .crossRegionAccessEnabled (true )).build ();
252
239
253
240
assertThatExceptionOfType (S3Exception .class )
254
241
.isThrownBy (() -> crossRegionClient .getObject (r -> r .bucket (BUCKET ).key (KEY )))
@@ -258,8 +245,8 @@ void crossRegionClient_CallsHeadObjectErrors_shouldTerminateTheAPI() {
258
245
assertThat (requests ).hasSize (2 );
259
246
260
247
assertThat (requests .stream ().map (req -> req .host ().substring (10 ,req .host ().length () - 14 )).collect (Collectors .toList ()))
261
- .isEqualTo (Arrays .asList (Region . US_WEST_2 .toString (),
262
- Region . US_WEST_2 .toString ()));
248
+ .isEqualTo (Arrays .asList (OVERRIDE_CONFIGURED_REGION .toString (),
249
+ OVERRIDE_CONFIGURED_REGION .toString ()));
263
250
264
251
assertThat (requests .stream ().map (req -> req .method ()).collect (Collectors .toList ()))
265
252
.isEqualTo (Arrays .asList (SdkHttpMethod .GET ,
@@ -272,7 +259,7 @@ void crossRegionClient_CallsHeadObjectWithNoRegion_shouldTerminateHeadBucketAPI(
272
259
customHttpResponse (301 , null ),
273
260
successHttpResponse (), successHttpResponse ());
274
261
S3Client crossRegionClient =
275
- clientBuilder ().endpointOverride (null ).region (Region . US_WEST_2 ).serviceConfiguration (c -> c .crossRegionAccessEnabled (true )).build ();
262
+ clientBuilder ().endpointOverride (null ).region (OVERRIDE_CONFIGURED_REGION ).serviceConfiguration (c -> c .crossRegionAccessEnabled (true )).build ();
276
263
277
264
assertThatExceptionOfType (S3Exception .class )
278
265
.isThrownBy (() -> crossRegionClient .getObject (r -> r .bucket (BUCKET ).key (KEY )))
@@ -282,8 +269,8 @@ void crossRegionClient_CallsHeadObjectWithNoRegion_shouldTerminateHeadBucketAPI(
282
269
assertThat (requests ).hasSize (2 );
283
270
284
271
assertThat (requests .stream ().map (req -> req .host ().substring (10 ,req .host ().length () - 14 )).collect (Collectors .toList ()))
285
- .isEqualTo (Arrays .asList (Region . US_WEST_2 .toString (),
286
- Region . US_WEST_2 .toString ()));
272
+ .isEqualTo (Arrays .asList (OVERRIDE_CONFIGURED_REGION .toString (),
273
+ OVERRIDE_CONFIGURED_REGION .toString ()));
287
274
288
275
assertThat (requests .stream ().map (req -> req .method ()).collect (Collectors .toList ()))
289
276
.isEqualTo (Arrays .asList (SdkHttpMethod .GET ,
0 commit comments