-
Notifications
You must be signed in to change notification settings - Fork 874
Add ToString methods for better enum string conversion #3458
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add ToString methods for better enum string conversion #3458
Conversation
|
Tests invoking |
b6ff509 to
32caa36
Compare
|
Nice change @paulomorgado |
Thanks, @danielmarbach. Maybe introducing NetEscapades.EnumGenerators: a source generator for enum performance would be a good option to avoid hand-written code. |
peterrsongg
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The change itself looks good, but these need unit tests
I think this is a good place to put the tests.
I think just testing a few is sufficient, probably no reason to test all of them but I would feel more comfortable knowing we had unit tests.
I wrote a method to get the expected hash of the original type
public static class HashingUtils
{
private static SHA256 SHA256 = SHA256.Create();
public static string GetHash(Type type)
{
return BitConverter.ToString(SHA256.ComputeHash(Encoding.Default.GetBytes(type.ToString()))).Replace("-","");
}
}
which you could use to get the expected hash and then pass that in to AssertEnumUnchanged. You may have to tweak it a little
Done, @peterrsongg! |
Added private ToString methods for various comparison enums in ConditionFactory.cs to improve readability and maintainability. Updated NewCondition methods to use these new ToString methods for consistent string representation. Also, optimized boolean conversion to string using a ternary operator.
32caa36 to
6ad2549
Compare
Updated PolicyTests.cs to include additional namespaces and added new test methods to verify the integrity of various enums by comparing their hashes to expected values. Introduced a new configuration file, AWSSDK.NetFramework.lutconfig, to specify build and test settings, including enabling parallel builds and setting a test case timeout.
6ad2549 to
e83ff12
Compare
Description
ToStringmethods for various comparisonenums inConditionFactory.csto improve readability and maintainability.NewConditionmethods to use these newToStringmethods for consistent string representation.booleanconversion tostringusing a ternary operator.Motivation and Context
The result of invoking
ToStringon anenumis cached in a limited space and there's no guarantee that the value will be cached for the same value in consecutive invocations.Having code that returns compile-time generated static
strings will guarantee that thatstringis always available and easy to access.Invoking
ToStringinboolwill return thestringliterals"True"or"False", depending on its value. However, invokingToLowerInvariant()on thoseStrings will incur in the generation/allocation of a newstringevery time.Testing
Screenshots (if appropriate)
Types of changes
Checklist
License