Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ public AssertNonGenericAreEqualInterpolatedStringHandler(int literalLength, int
{
_builder = new StringBuilder(literalLength + formattedCount);
_failAction = (userMessage, expectedExpression, actualExpression) =>
ReportAssertAreEqualFailed(expected, actual, delta, BuildUserMessageForExpectedExpressionAndActualExpression(userMessage, expectedExpression, actualExpression));
ReportAssertAreEqualFailed(expected, actual, delta, userMessage, expectedExpression, actualExpression);
}
}

Expand All @@ -177,7 +177,7 @@ public AssertNonGenericAreEqualInterpolatedStringHandler(int literalLength, int
{
_builder = new StringBuilder(literalLength + formattedCount);
_failAction = (userMessage, expectedExpression, actualExpression) =>
ReportAssertAreEqualFailed(expected, actual, delta, BuildUserMessageForExpectedExpressionAndActualExpression(userMessage, expectedExpression, actualExpression));
ReportAssertAreEqualFailed(expected, actual, delta, userMessage, expectedExpression, actualExpression);
}
}

Expand All @@ -188,7 +188,7 @@ public AssertNonGenericAreEqualInterpolatedStringHandler(int literalLength, int
{
_builder = new StringBuilder(literalLength + formattedCount);
_failAction = (userMessage, expectedExpression, actualExpression) =>
ReportAssertAreEqualFailed(expected, actual, delta, BuildUserMessageForExpectedExpressionAndActualExpression(userMessage, expectedExpression, actualExpression));
ReportAssertAreEqualFailed(expected, actual, delta, userMessage, expectedExpression, actualExpression);
}
}

Expand All @@ -199,7 +199,7 @@ public AssertNonGenericAreEqualInterpolatedStringHandler(int literalLength, int
{
_builder = new StringBuilder(literalLength + formattedCount);
_failAction = (userMessage, expectedExpression, actualExpression) =>
ReportAssertAreEqualFailed(expected, actual, delta, BuildUserMessageForExpectedExpressionAndActualExpression(userMessage, expectedExpression, actualExpression));
ReportAssertAreEqualFailed(expected, actual, delta, userMessage, expectedExpression, actualExpression);
}
}

Expand Down Expand Up @@ -277,7 +277,7 @@ public AssertNonGenericAreNotEqualInterpolatedStringHandler(int literalLength, i
{
_builder = new StringBuilder(literalLength + formattedCount);
_failAction = (userMessage, notExpectedExpr, actualExpr) =>
ReportAssertAreNotEqualFailed(notExpected, actual, delta, BuildUserMessageForNotExpectedExpressionAndActualExpression(userMessage, notExpectedExpr, actualExpr));
ReportAssertAreNotEqualFailed(notExpected, actual, delta, userMessage, notExpectedExpr, actualExpr);
}
}

Expand All @@ -288,7 +288,7 @@ public AssertNonGenericAreNotEqualInterpolatedStringHandler(int literalLength, i
{
_builder = new StringBuilder(literalLength + formattedCount);
_failAction = (userMessage, notExpectedExpr, actualExpr) =>
ReportAssertAreNotEqualFailed(notExpected, actual, delta, BuildUserMessageForNotExpectedExpressionAndActualExpression(userMessage, notExpectedExpr, actualExpr));
ReportAssertAreNotEqualFailed(notExpected, actual, delta, userMessage, notExpectedExpr, actualExpr);
}
}

Expand All @@ -299,7 +299,7 @@ public AssertNonGenericAreNotEqualInterpolatedStringHandler(int literalLength, i
{
_builder = new StringBuilder(literalLength + formattedCount);
_failAction = (userMessage, notExpectedExpr, actualExpr) =>
ReportAssertAreNotEqualFailed(notExpected, actual, delta, BuildUserMessageForNotExpectedExpressionAndActualExpression(userMessage, notExpectedExpr, actualExpr));
ReportAssertAreNotEqualFailed(notExpected, actual, delta, userMessage, notExpectedExpr, actualExpr);
}
}

Expand All @@ -310,7 +310,7 @@ public AssertNonGenericAreNotEqualInterpolatedStringHandler(int literalLength, i
{
_builder = new StringBuilder(literalLength + formattedCount);
_failAction = (userMessage, notExpectedExpr, actualExpr) =>
ReportAssertAreNotEqualFailed(notExpected, actual, delta, BuildUserMessageForNotExpectedExpressionAndActualExpression(userMessage, notExpectedExpr, actualExpr));
ReportAssertAreNotEqualFailed(notExpected, actual, delta, userMessage, notExpectedExpr, actualExpr);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,17 +64,24 @@ private static bool AreEqualFailing(long expected, long actual, long delta)
: Math.Abs(expected - actual) > delta;

[DoesNotReturn]
private static void ReportAssertAreEqualFailed<T>(T expected, T actual, T delta, string userMessage)
private static void ReportAssertAreEqualFailed<T>(T expected, T actual, T delta, string? userMessage, string expectedExpression, string actualExpression)
where T : struct, IConvertible
{
string finalMessage = string.Format(
CultureInfo.CurrentCulture,
FrameworkMessages.AreEqualDeltaFailMsg,
userMessage,
expected.ToString(CultureInfo.CurrentCulture.NumberFormat),
actual.ToString(CultureInfo.CurrentCulture.NumberFormat),
delta.ToString(CultureInfo.CurrentCulture.NumberFormat));
ReportAssertFailed("Assert.AreEqual", finalMessage);
string expectedRendered = AssertionValueRenderer.RenderValue(expected);
string actualRendered = AssertionValueRenderer.RenderValue(actual);
string deltaRendered = AssertionValueRenderer.RenderValue(delta);
EvidenceBlock evidence = EvidenceBlock.Create()
.AddLine("expected:", expectedRendered)
.AddLine("actual:", actualRendered)
.AddLine("delta:", deltaRendered);

StructuredAssertionMessage structured = new(FrameworkMessages.AreEqualDeltaFailedSummary);
structured.WithUserMessage(userMessage);
structured.WithEvidence(evidence);
structured.WithExpectedAndActual(expectedRendered, actualRendered);
structured.WithCallSiteExpression(FormatCallSiteExpression("Assert.AreEqual", expectedExpression, actualExpression, string.Empty, "<expected>", "<actual>", "<delta>"));

ReportAssertFailed(structured);
}

/// <inheritdoc cref="AreEqual(float, float, float, string, string, string)"/>
Expand Down Expand Up @@ -124,8 +131,7 @@ public static void AreEqual(float expected, float actual, float delta, string? m

if (AreEqualFailing(expected, actual, delta))
{
string userMessage = BuildUserMessageForExpectedExpressionAndActualExpression(message, expectedExpression, actualExpression);
ReportAssertAreEqualFailed(expected, actual, delta, userMessage);
ReportAssertAreEqualFailed(expected, actual, delta, message, expectedExpression, actualExpression);
}
}

Expand Down Expand Up @@ -176,8 +182,7 @@ public static void AreNotEqual(float notExpected, float actual, float delta, str

if (AreNotEqualFailing(notExpected, actual, delta))
{
string userMessage = BuildUserMessageForNotExpectedExpressionAndActualExpression(message, notExpectedExpression, actualExpression);
ReportAssertAreNotEqualFailed(notExpected, actual, delta, userMessage);
ReportAssertAreNotEqualFailed(notExpected, actual, delta, message, notExpectedExpression, actualExpression);
}
}

Expand Down Expand Up @@ -249,8 +254,7 @@ public static void AreEqual(decimal expected, decimal actual, decimal delta, str

if (AreEqualFailing(expected, actual, delta))
{
string userMessage = BuildUserMessageForExpectedExpressionAndActualExpression(message, expectedExpression, actualExpression);
ReportAssertAreEqualFailed(expected, actual, delta, userMessage);
ReportAssertAreEqualFailed(expected, actual, delta, message, expectedExpression, actualExpression);
}
}

Expand Down Expand Up @@ -301,8 +305,7 @@ public static void AreNotEqual(decimal notExpected, decimal actual, decimal delt

if (AreNotEqualFailing(notExpected, actual, delta))
{
string userMessage = BuildUserMessageForNotExpectedExpressionAndActualExpression(message, notExpectedExpression, actualExpression);
ReportAssertAreNotEqualFailed(notExpected, actual, delta, userMessage);
ReportAssertAreNotEqualFailed(notExpected, actual, delta, message, notExpectedExpression, actualExpression);
}
}

Expand Down Expand Up @@ -356,8 +359,7 @@ public static void AreEqual(long expected, long actual, long delta, string? mess

if (AreEqualFailing(expected, actual, delta))
{
string userMessage = BuildUserMessageForExpectedExpressionAndActualExpression(message, expectedExpression, actualExpression);
ReportAssertAreEqualFailed(expected, actual, delta, userMessage);
ReportAssertAreEqualFailed(expected, actual, delta, message, expectedExpression, actualExpression);
}
}

Expand Down Expand Up @@ -408,8 +410,7 @@ public static void AreNotEqual(long notExpected, long actual, long delta, string

if (AreNotEqualFailing(notExpected, actual, delta))
{
string userMessage = BuildUserMessageForNotExpectedExpressionAndActualExpression(message, notExpectedExpression, actualExpression);
ReportAssertAreNotEqualFailed(notExpected, actual, delta, userMessage);
ReportAssertAreNotEqualFailed(notExpected, actual, delta, message, notExpectedExpression, actualExpression);
}
}

Expand Down Expand Up @@ -462,8 +463,7 @@ public static void AreEqual(double expected, double actual, double delta, string

if (AreEqualFailing(expected, actual, delta))
{
string userMessage = BuildUserMessageForExpectedExpressionAndActualExpression(message, expectedExpression, actualExpression);
ReportAssertAreEqualFailed(expected, actual, delta, userMessage);
ReportAssertAreEqualFailed(expected, actual, delta, message, expectedExpression, actualExpression);
}
}

Expand Down Expand Up @@ -514,8 +514,7 @@ public static void AreNotEqual(double notExpected, double actual, double delta,

if (AreNotEqualFailing(notExpected, actual, delta))
{
string userMessage = BuildUserMessageForNotExpectedExpressionAndActualExpression(message, notExpectedExpression, actualExpression);
ReportAssertAreNotEqualFailed(notExpected, actual, delta, userMessage);
ReportAssertAreNotEqualFailed(notExpected, actual, delta, message, notExpectedExpression, actualExpression);
}
}

Expand All @@ -541,17 +540,24 @@ private static bool AreNotEqualFailing(double notExpected, double actual, double
}

[DoesNotReturn]
private static void ReportAssertAreNotEqualFailed<T>(T notExpected, T actual, T delta, string userMessage)
private static void ReportAssertAreNotEqualFailed<T>(T notExpected, T actual, T delta, string? userMessage, string notExpectedExpression, string actualExpression)
where T : struct, IConvertible
{
string finalMessage = string.Format(
CultureInfo.CurrentCulture,
FrameworkMessages.AreNotEqualDeltaFailMsg,
userMessage,
notExpected.ToString(CultureInfo.CurrentCulture.NumberFormat),
actual.ToString(CultureInfo.CurrentCulture.NumberFormat),
delta.ToString(CultureInfo.CurrentCulture.NumberFormat));
ReportAssertFailed("Assert.AreNotEqual", finalMessage);
string notExpectedRendered = AssertionValueRenderer.RenderValue(notExpected);
string actualRendered = AssertionValueRenderer.RenderValue(actual);
string deltaRendered = AssertionValueRenderer.RenderValue(delta);
EvidenceBlock evidence = EvidenceBlock.Create()
.AddLine("not expected:", notExpectedRendered)
.AddLine("actual:", actualRendered)
.AddLine("delta:", deltaRendered);

StructuredAssertionMessage structured = new(FrameworkMessages.AreNotEqualDeltaFailedSummary);
structured.WithUserMessage(userMessage);
structured.WithEvidence(evidence);
structured.WithExpectedAndActual($"not {notExpectedRendered}", actualRendered);
structured.WithCallSiteExpression(FormatCallSiteExpression("Assert.AreNotEqual", notExpectedExpression, actualExpression, string.Empty, "<notExpected>", "<actual>", "<delta>"));

ReportAssertFailed(structured);
}

#pragma warning restore RS0026 // Do not add multiple public overloads with optional parameters
Expand Down
20 changes: 0 additions & 20 deletions src/TestFramework/TestFramework/Assertions/Assert.cs
Original file line number Diff line number Diff line change
Expand Up @@ -270,26 +270,6 @@ private static string FormatPrefixAndMessage(string prefix, string? message)
internal static string BuildUserMessage(string? format)
=> format ?? string.Empty;

private static string BuildUserMessageForTwoExpressions(string? format, string callerArgExpression1, string parameterName1, string callerArgExpression2, string parameterName2)
{
string userMessage = BuildUserMessage(format);
if (string.IsNullOrEmpty(callerArgExpression1) || string.IsNullOrEmpty(callerArgExpression2))
{
return userMessage;
}

string callerArgMessagePart = string.Format(CultureInfo.InvariantCulture, FrameworkMessages.CallerArgumentExpressionTwoParametersMessage, parameterName1, callerArgExpression1, parameterName2, callerArgExpression2);
return string.IsNullOrEmpty(userMessage)
? callerArgMessagePart
: $"{callerArgMessagePart} {userMessage}";
}

private static string BuildUserMessageForExpectedExpressionAndActualExpression(string? format, string expectedExpression, string actualExpression)
=> BuildUserMessageForTwoExpressions(format, expectedExpression, "expected", actualExpression, "actual");

private static string BuildUserMessageForNotExpectedExpressionAndActualExpression(string? format, string notExpectedExpression, string actualExpression)
=> BuildUserMessageForTwoExpressions(format, notExpectedExpression, "notExpected", actualExpression, "actual");

/// <summary>
Comment thread
Evangelink marked this conversation as resolved.
/// Checks the parameter for valid conditions.
/// </summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -129,8 +129,8 @@
<data name="AreEqualFailMsg" xml:space="preserve">
<value>Expected:&lt;{1}&gt;. Actual:&lt;{2}&gt;. {0}</value>
</data>
<data name="AreEqualDeltaFailMsg" xml:space="preserve">
<value>Expected a difference no greater than &lt;{3}&gt; between expected value &lt;{1}&gt; and actual value &lt;{2}&gt;. {0}</value>
<data name="AreEqualDeltaFailedSummary" xml:space="preserve">
<value>Expected values to be equal within tolerance.</value>
</data>
<data name="AreEqualCaseFailMsg" xml:space="preserve">
<value>Expected:&lt;{1}&gt;. Case is different for actual value:&lt;{2}&gt;. {0}</value>
Expand Down Expand Up @@ -221,8 +221,8 @@
<value>&lt;root&gt;</value>
<comment>Placeholder used in equivalence-mismatch messages when the difference is at the top of the object graph.</comment>
</data>
<data name="AreNotEqualDeltaFailMsg" xml:space="preserve">
<value>Expected a difference greater than &lt;{3}&gt; between expected value &lt;{1}&gt; and actual value &lt;{2}&gt;. {0}</value>
<data name="AreNotEqualDeltaFailedSummary" xml:space="preserve">
<value>Expected values to differ beyond tolerance.</value>
</data>
<data name="AreNotEqualFailMsg" xml:space="preserve">
<value>Expected any value except:&lt;{1}&gt;. Actual:&lt;{2}&gt;. {0}</value>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,9 @@
<target state="translated">Očekáváno:&lt;{1}&gt;. Případ je rozdílný pro aktuální hodnotu:&lt;{2}&gt;. {0}</target>
<note />
</trans-unit>
<trans-unit id="AreEqualDeltaFailMsg">
<source>Expected a difference no greater than &lt;{3}&gt; between expected value &lt;{1}&gt; and actual value &lt;{2}&gt;. {0}</source>
<target state="translated">Očekáván rozdíl, který není větší jak &lt;{3}&gt; mezi očekávanou hodnotou &lt;{1}&gt; a aktuální hodnotou &lt;{2}&gt;. {0}</target>
<trans-unit id="AreEqualDeltaFailedSummary">
<source>Expected values to be equal within tolerance.</source>
<target state="new">Expected values to be equal within tolerance.</target>
<note />
</trans-unit>
<trans-unit id="AreEqualDifferentTypesFailMsg">
Expand Down Expand Up @@ -193,9 +193,9 @@
<target state="new">&lt;root&gt;</target>
<note>Placeholder used in equivalence-mismatch messages when the difference is at the top of the object graph.</note>
</trans-unit>
<trans-unit id="AreNotEqualDeltaFailMsg">
<source>Expected a difference greater than &lt;{3}&gt; between expected value &lt;{1}&gt; and actual value &lt;{2}&gt;. {0}</source>
<target state="translated">Očekáván rozdíl, který je větší jak &lt;{3}&gt; mezi očekávanou hodnotou &lt;{1}&gt; a aktuální hodnotou &lt;{2}&gt;. {0}</target>
<trans-unit id="AreNotEqualDeltaFailedSummary">
<source>Expected values to differ beyond tolerance.</source>
<target state="new">Expected values to differ beyond tolerance.</target>
<note />
</trans-unit>
<trans-unit id="AreNotEqualFailMsg">
Expand Down Expand Up @@ -303,6 +303,11 @@
<target state="translated">Podrobnosti:</target>
<note />
</trans-unit>
<trans-unit id="AssertThatFailedToEvaluate">
<source>&lt;Failed to evaluate&gt;</source>
<target state="new">&lt;Failed to evaluate&gt;</target>
<note />
</trans-unit>
<trans-unit id="AssertThatMessageFormat">
<source>Message: {0}</source>
<target state="translated">Zpráva: {0}</target>
Expand Down
Loading
Loading