11/*
22 * Copyright OpenSearch Contributors
33 * SPDX-License-Identifier: Apache-2.0
4+ *
5+ * The OpenSearch Contributors require contributions made to
6+ * this file be licensed under the Apache-2.0 license or a
7+ * compatible open source license.
48 */
59
610package org .opensearch .dataprepper .plugins .sink .s3 ;
2529import software .amazon .awssdk .services .s3 .S3AsyncClient ;
2630import software .amazon .awssdk .http .nio .netty .NettyNioAsyncHttpClient ;
2731import software .amazon .awssdk .services .s3 .S3AsyncClientBuilder ;
28- import software .amazon .awssdk .services .s3 .S3Client ;
29- import software .amazon .awssdk .services .s3 .S3ClientBuilder ;
3032
3133import java .time .Duration ;
3234import java .util .Map ;
@@ -62,14 +64,14 @@ void setUp() {
6264 @ Test
6365 void createS3AsyncClient_with_real_S3AsyncClient () {
6466 when (awsAuthenticationOptions .getAwsRegion ()).thenReturn (Region .US_EAST_1 );
65- final S3Client s3Client = ClientFactory .createS3Client (s3SinkConfig , awsCredentialsSupplier );
67+ final S3AsyncClient s3Client = ClientFactory .createS3AsyncClient (s3SinkConfig , awsCredentialsSupplier );
6668
6769 assertThat (s3Client , notNullValue ());
6870 }
6971
7072 @ ParameterizedTest
7173 @ ValueSource (strings = {"us-east-1" , "us-west-2" , "eu-central-1" })
72- void createS3Client_provides_correct_inputs (final String regionString ) {
74+ void createS3AsyncClient_with_client_options_returns_expected_client (final String regionString ) {
7375 final Region region = Region .of (regionString );
7476 final String stsRoleArn = UUID .randomUUID ().toString ();
7577 final String externalId = UUID .randomUUID ().toString ();
@@ -82,49 +84,9 @@ void createS3Client_provides_correct_inputs(final String regionString) {
8284 final AwsCredentialsProvider expectedCredentialsProvider = mock (AwsCredentialsProvider .class );
8385 when (awsCredentialsSupplier .getProvider (any ())).thenReturn (expectedCredentialsProvider );
8486
85- final S3ClientBuilder s3ClientBuilder = mock (S3ClientBuilder .class );
86- when (s3ClientBuilder .region (region )).thenReturn (s3ClientBuilder );
87- when (s3ClientBuilder .credentialsProvider (any ())).thenReturn (s3ClientBuilder );
88- when (s3ClientBuilder .overrideConfiguration (any (ClientOverrideConfiguration .class ))).thenReturn (s3ClientBuilder );
89- try (final MockedStatic <S3Client > s3ClientMockedStatic = mockStatic (S3Client .class )) {
90- s3ClientMockedStatic .when (S3Client ::builder )
91- .thenReturn (s3ClientBuilder );
92- ClientFactory .createS3Client (s3SinkConfig , awsCredentialsSupplier );
93- }
94-
95- final ArgumentCaptor <AwsCredentialsProvider > credentialsProviderArgumentCaptor = ArgumentCaptor .forClass (AwsCredentialsProvider .class );
96- verify (s3ClientBuilder ).credentialsProvider (credentialsProviderArgumentCaptor .capture ());
97-
98- final AwsCredentialsProvider actualCredentialsProvider = credentialsProviderArgumentCaptor .getValue ();
99-
100- assertThat (actualCredentialsProvider , equalTo (expectedCredentialsProvider ));
101-
102- final ArgumentCaptor <AwsCredentialsOptions > optionsArgumentCaptor = ArgumentCaptor .forClass (AwsCredentialsOptions .class );
103- verify (awsCredentialsSupplier ).getProvider (optionsArgumentCaptor .capture ());
104-
105- final AwsCredentialsOptions actualCredentialsOptions = optionsArgumentCaptor .getValue ();
106- assertThat (actualCredentialsOptions .getRegion (), equalTo (region ));
107- assertThat (actualCredentialsOptions .getStsRoleArn (), equalTo (stsRoleArn ));
108- assertThat (actualCredentialsOptions .getStsExternalId (), equalTo (externalId ));
109- assertThat (actualCredentialsOptions .getStsHeaderOverrides (), equalTo (stsHeaderOverrides ));
110- }
111-
112- @ Test
113- void createS3AsyncClient_with_client_options_returns_expected_client () {
114- final Region region = Region .of ("us-east-1" );
115- final String stsRoleArn = UUID .randomUUID ().toString ();
116- final String externalId = UUID .randomUUID ().toString ();
117- final Map <String , String > stsHeaderOverrides = Map .of (UUID .randomUUID ().toString (), UUID .randomUUID ().toString ());
118- when (awsAuthenticationOptions .getAwsRegion ()).thenReturn (region );
119- when (awsAuthenticationOptions .getAwsStsRoleArn ()).thenReturn (stsRoleArn );
120- when (awsAuthenticationOptions .getAwsStsExternalId ()).thenReturn (externalId );
121- when (awsAuthenticationOptions .getAwsStsHeaderOverrides ()).thenReturn (stsHeaderOverrides );
122-
123- final AwsCredentialsProvider expectedCredentialsProvider = mock (AwsCredentialsProvider .class );
124- when (awsCredentialsSupplier .getProvider (any ())).thenReturn (expectedCredentialsProvider );
125-
12687 final S3AsyncClientBuilder s3AsyncClientBuilder = mock (S3AsyncClientBuilder .class );
12788 when (s3AsyncClientBuilder .region (region )).thenReturn (s3AsyncClientBuilder );
89+ when (s3AsyncClientBuilder .crossRegionAccessEnabled (true )).thenReturn (s3AsyncClientBuilder );
12890 when (s3AsyncClientBuilder .credentialsProvider (any ())).thenReturn (s3AsyncClientBuilder );
12991 when (s3AsyncClientBuilder .overrideConfiguration (any (ClientOverrideConfiguration .class ))).thenReturn (s3AsyncClientBuilder );
13092
0 commit comments