|
string finalMessage = !ignoreCase && CompareInternal(expected, actual, ignoreCase, culture) == 0 |
|
? string.Format( |
|
CultureInfo.CurrentCulture, |
|
FrameworkMessages.AreEqualCaseFailMsg, |
|
userMessage, |
|
ReplaceNulls(expected), |
|
ReplaceNulls(actual)) |
|
: string.Format( |
|
CultureInfo.CurrentCulture, |
|
FrameworkMessages.AreEqualFailMsg, |
|
userMessage, |
|
ReplaceNulls(expected), |
|
ReplaceNulls(actual)); |
At this point, CompareInternal(expected, actual, ignoreCase, culture) == 0 is clearly always false.
The corrected code would be CompareInternal(expected, actual, ignoreCase: true, culture) == 0. The original intent seems to produce a specialized message if the comparison isn't ignoring case, but expected and actual are differing by casing only.
@Evangelink Do you think we should follow the original intent? Or just keep the current behavior and delete the dead code?
AB#2331939
testfx/src/TestFramework/TestFramework/Assertions/Assert.AreEqual.cs
Lines 1418 to 1430 in 56cacdd
At this point,
CompareInternal(expected, actual, ignoreCase, culture) == 0is clearly always false.The corrected code would be
CompareInternal(expected, actual, ignoreCase: true, culture) == 0. The original intent seems to produce a specialized message if the comparison isn't ignoring case, but expected and actual are differing by casing only.@Evangelink Do you think we should follow the original intent? Or just keep the current behavior and delete the dead code?
AB#2331939