1717import software .amazon .awssdk .testutils .EnvironmentVariableHelper ;
1818import software .amazon .awssdk .utils .StringInputStream ;
1919
20- public class DynamoDbRetryPolicyTest {
20+ class DynamoDbRetryPolicyTest {
2121
2222 private EnvironmentVariableHelper environmentVariableHelper ;
2323
@@ -32,23 +32,23 @@ public void reset() {
3232 }
3333
3434 @ Test
35- public void test_numRetries_with_standardRetryPolicy () {
35+ void test_numRetries_with_standardRetryPolicy () {
3636 environmentVariableHelper .set (SdkSystemSetting .AWS_RETRY_MODE .environmentVariable (), "standard" );
3737 final SdkClientConfiguration sdkClientConfiguration = SdkClientConfiguration .builder ().build ();
3838 final RetryPolicy retryPolicy = DynamoDbRetryPolicy .resolveRetryPolicy (sdkClientConfiguration );
3939 assertThat (retryPolicy .numRetries ()).isEqualTo (8 );
4040 }
4141
4242 @ Test
43- public void test_numRetries_with_legacyRetryPolicy () {
43+ void test_numRetries_with_legacyRetryPolicy () {
4444 environmentVariableHelper .set (SdkSystemSetting .AWS_RETRY_MODE .environmentVariable (), "legacy" );
4545 final SdkClientConfiguration sdkClientConfiguration = SdkClientConfiguration .builder ().build ();
4646 final RetryPolicy retryPolicy = DynamoDbRetryPolicy .resolveRetryPolicy (sdkClientConfiguration );
4747 assertThat (retryPolicy .numRetries ()).isEqualTo (8 );
4848 }
4949
5050 @ Test
51- public void test_backoffBaseDelay_with_standardRetryPolicy () {
51+ void test_backoffBaseDelay_with_standardRetryPolicy () {
5252 environmentVariableHelper .set (SdkSystemSetting .AWS_RETRY_MODE .environmentVariable (), "standard" );
5353 SdkClientConfiguration sdkClientConfiguration = SdkClientConfiguration .builder ().build ();
5454 RetryPolicy retryPolicy = DynamoDbRetryPolicy .resolveRetryPolicy (sdkClientConfiguration );
@@ -60,7 +60,7 @@ public void test_backoffBaseDelay_with_standardRetryPolicy() {
6060 }
6161
6262 @ Test
63- public void resolve_retryModeSetInEnv_doesNotCallSupplier () {
63+ void resolve_retryModeSetInEnv_doesNotCallSupplier () {
6464 environmentVariableHelper .set (SdkSystemSetting .AWS_RETRY_MODE .environmentVariable (), "standard" );
6565 SdkClientConfiguration sdkClientConfiguration = SdkClientConfiguration .builder ().build ();
6666 RetryPolicy retryPolicy = DynamoDbRetryPolicy .resolveRetryPolicy (sdkClientConfiguration );
@@ -70,7 +70,26 @@ public void resolve_retryModeSetInEnv_doesNotCallSupplier() {
7070 }
7171
7272 @ Test
73- public void resolve_retryModeNotSetInEnv_resolvesFromupplier () {
73+ void resolve_retryModeSetWithEnvAndSupplier_resolvesFromEnv () {
74+ environmentVariableHelper .set (SdkSystemSetting .AWS_RETRY_MODE .environmentVariable (), "standard" );
75+ ProfileFile profileFile = ProfileFile .builder ()
76+ .content (new StringInputStream ("[profile default]\n "
77+ + "retry_mode = adaptive" ))
78+ .type (ProfileFile .Type .CONFIGURATION )
79+ .build ();
80+ SdkClientConfiguration sdkClientConfiguration = SdkClientConfiguration
81+ .builder ()
82+ .option (SdkClientOption .PROFILE_FILE_SUPPLIER , () -> profileFile )
83+ .option (SdkClientOption .PROFILE_NAME , "default" )
84+ .build ();
85+ RetryPolicy retryPolicy = DynamoDbRetryPolicy .resolveRetryPolicy (sdkClientConfiguration );
86+ RetryMode retryMode = retryPolicy .retryMode ();
87+
88+ assertThat (retryMode ).isEqualTo (RetryMode .STANDARD );
89+ }
90+
91+ @ Test
92+ void resolve_retryModeSetWithSupplier_resolvesFromSupplier () {
7493 ProfileFile profileFile = ProfileFile .builder ()
7594 .content (new StringInputStream ("[profile default]\n "
7695 + "retry_mode = adaptive" ))
@@ -87,4 +106,39 @@ public void resolve_retryModeNotSetInEnv_resolvesFromupplier() {
87106 assertThat (retryMode ).isEqualTo (RetryMode .ADAPTIVE );
88107 }
89108
109+ @ Test
110+ void resolve_retryModeSetWithSdkClientOption_resolvesFromSdkClientOption () {
111+ ProfileFile profileFile = ProfileFile .builder ()
112+ .content (new StringInputStream ("[profile default]\n " ))
113+ .type (ProfileFile .Type .CONFIGURATION )
114+ .build ();
115+ SdkClientConfiguration sdkClientConfiguration = SdkClientConfiguration
116+ .builder ()
117+ .option (SdkClientOption .PROFILE_FILE_SUPPLIER , () -> profileFile )
118+ .option (SdkClientOption .PROFILE_NAME , "default" )
119+ .option (SdkClientOption .DEFAULT_RETRY_MODE , RetryMode .STANDARD )
120+ .build ();
121+ RetryPolicy retryPolicy = DynamoDbRetryPolicy .resolveRetryPolicy (sdkClientConfiguration );
122+ RetryMode retryMode = retryPolicy .retryMode ();
123+
124+ assertThat (retryMode ).isEqualTo (RetryMode .STANDARD );
125+ }
126+
127+ @ Test
128+ void resolve_retryModeNotSetWithEnvNorSupplier_resolvesFromSdkDefault () {
129+ ProfileFile profileFile = ProfileFile .builder ()
130+ .content (new StringInputStream ("[profile default]\n " ))
131+ .type (ProfileFile .Type .CONFIGURATION )
132+ .build ();
133+ SdkClientConfiguration sdkClientConfiguration = SdkClientConfiguration
134+ .builder ()
135+ .option (SdkClientOption .PROFILE_FILE_SUPPLIER , () -> profileFile )
136+ .option (SdkClientOption .PROFILE_NAME , "default" )
137+ .build ();
138+ RetryPolicy retryPolicy = DynamoDbRetryPolicy .resolveRetryPolicy (sdkClientConfiguration );
139+ RetryMode retryMode = retryPolicy .retryMode ();
140+
141+ assertThat (retryMode ).isEqualTo (RetryMode .LEGACY );
142+ }
143+
90144}
0 commit comments