2626import software .amazon .awssdk .auth .signer .AwsS3V4Signer ;
2727import software .amazon .awssdk .core .async .AsyncRequestBody ;
2828import software .amazon .awssdk .core .async .AsyncResponseTransformer ;
29+ import software .amazon .awssdk .core .client .config .SdkAdvancedAsyncClientOption ;
2930import software .amazon .awssdk .core .interceptor .Context ;
3031import software .amazon .awssdk .core .interceptor .ExecutionAttributes ;
3132import software .amazon .awssdk .core .interceptor .ExecutionInterceptor ;
3738import software .amazon .awssdk .services .s3 .endpoints .S3ClientContextParams ;
3839import software .amazon .awssdk .services .s3 .internal .crossregion .S3CrossRegionAsyncClient ;
3940import software .amazon .awssdk .utils .AttributeMap ;
41+ import software .amazon .awssdk .utils .MapUtils ;
4042
4143class DefaultS3CrtAsyncClientTest {
4244
@@ -102,7 +104,7 @@ void invalidConfig_shouldThrowException(long value) {
102104 void crtClient_with_crossRegionAccessEnabled_asTrue () {
103105 try (S3AsyncClient crossRegionCrtClient = S3AsyncClient .crtBuilder ().crossRegionAccessEnabled (true ).build ()) {
104106 assertThat (crossRegionCrtClient ).isInstanceOf (DefaultS3CrtAsyncClient .class );
105- assertThat (((DelegatingS3AsyncClient )crossRegionCrtClient ).delegate ()).isInstanceOf (S3CrossRegionAsyncClient .class );
107+ assertThat (((DelegatingS3AsyncClient ) crossRegionCrtClient ).delegate ()).isInstanceOf (S3CrossRegionAsyncClient .class );
106108 }
107109 }
108110
@@ -115,7 +117,7 @@ void crtClient_with_crossRegionAccessEnabled_asFalse() {
115117
116118 try (S3AsyncClient defaultCrtClient = S3AsyncClient .crtBuilder ().build ()) {
117119 assertThat (defaultCrtClient ).isInstanceOf (DefaultS3CrtAsyncClient .class );
118- assertThat (((DelegatingS3AsyncClient )defaultCrtClient ).delegate ()).isNotInstanceOf (S3CrossRegionAsyncClient .class );
120+ assertThat (((DelegatingS3AsyncClient ) defaultCrtClient ).delegate ()).isNotInstanceOf (S3CrossRegionAsyncClient .class );
119121 }
120122 }
121123
@@ -140,4 +142,23 @@ void defaultClient_credentialsProvidersNotSingleton() {
140142 .isNotEqualTo (DefaultCredentialsProvider .create ());
141143 }
142144 }
145+
146+ @ Test
147+ void build_withAdvancedOptions () {
148+ try (DefaultS3CrtAsyncClient client = (DefaultS3CrtAsyncClient ) S3AsyncClient
149+ .crtBuilder ()
150+ .advancedOption (SdkAdvancedAsyncClientOption .CRT_MEMORY_BUFFER_DISABLED , true )
151+ .build ()) {
152+ assertThat (client ).isNotNull ();
153+ assertThat (client ).isInstanceOf (DefaultS3CrtAsyncClient .class );
154+ }
155+
156+ try (DefaultS3CrtAsyncClient client = (DefaultS3CrtAsyncClient ) S3AsyncClient
157+ .crtBuilder ()
158+ .advancedOptions (MapUtils .of (SdkAdvancedAsyncClientOption .CRT_MEMORY_BUFFER_DISABLED , true ))
159+ .build ()) {
160+ assertThat (client ).isNotNull ();
161+ assertThat (client ).isInstanceOf (DefaultS3CrtAsyncClient .class );
162+ }
163+ }
143164}
0 commit comments