Skip to content

Commit 951bcad

Browse files
paulomorgadomuhammad-othman
authored andcommitted
Refactor ToUserAgentHeaderString and add new test
Refactored the ToUserAgentHeaderString method in Marshaller.cs to use a switch statement instead of if-else statements, including a default case for converting requestRetryMode to lowercase. Removed Debug.Assert for retryMode and directly appended it to the StringBuilder object. Added LookForRequestRetryModeChanges test in StaticCheckTests.cs to verify the integrity of the RequestRetryMode enum.
1 parent a61d3cf commit 951bcad

File tree

2 files changed

+20
-7
lines changed

2 files changed

+20
-7
lines changed

sdk/src/Core/Amazon.Runtime/Pipeline/Handlers/Marshaller.cs

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -115,9 +115,7 @@ private static void SetUserAgentHeader(IRequestContext requestContext)
115115
if (!string.IsNullOrEmpty(clientAppId))
116116
sb.Append(" app/").Append(InternalSDKUtils.ReplaceInvalidUserAgentCharacters(clientAppId));
117117

118-
var retryMode = ToUserAgentHeaderString(requestContext.ClientConfig.RetryMode);
119-
Debug.Assert(retryMode != requestContext.ClientConfig.RetryMode.ToString().ToLower(), "Invalid RetryMode string.");
120-
sb.Append(" cfg/retry-mode#}").Append(retryMode);
118+
sb.Append(" cfg/retry-mode#}").Append(ToUserAgentHeaderString(requestContext.ClientConfig.RetryMode));
121119

122120
sb.Append(" md/").Append(requestContext.IsAsync ? "ClientAsync" : "ClientSync");
123121

@@ -143,10 +141,15 @@ private static void SetUserAgentHeader(IRequestContext requestContext)
143141

144142
private static string ToUserAgentHeaderString(RequestRetryMode requestRetryMode)
145143
{
146-
if (requestRetryMode == RequestRetryMode.Adaptive)
147-
return "adaptive";
148-
else
149-
return "standard";
144+
switch (requestRetryMode)
145+
{
146+
case RequestRetryMode.Standard:
147+
return "standard";
148+
case RequestRetryMode.Adaptive:
149+
return "adaptive";
150+
default:
151+
return requestRetryMode.ToString().ToLowerInvariant();
152+
}
150153
}
151154
}
152155
}

sdk/test/Services/SecurityToken/UnitTests/Custom/StaticCheckTests.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,5 +83,15 @@ public void EnsureCredentialProfileDetectorSetup()
8383
// the properties are used at least once.
8484
Assert.IsTrue(profileOptionsProperties.SetEquals(referencedProfileOptionsProperties));
8585
}
86+
87+
[TestMethod]
88+
public void LookForRequestRetryModeChanges()
89+
{
90+
var expectedHash = "2FC699DB6A4284C5D53F3B7FA4E64165576FD1F6AE458BC737AE503F06DFBE4C";
91+
AssertExtensions.AssertEnumUnchanged(
92+
typeof(RequestRetryMode),
93+
expectedHash,
94+
"The Amazon.Runtime.Internal.Marshaller.ToUserAgentHeaderString method implementation may need to be updated.");
95+
}
8696
}
8797
}

0 commit comments

Comments
 (0)