in src/TestFramework/Core/TestManagerHelpers.cs [118:154]
public static void AssertAreEqual<T>(IProtocolTestsManager manager, IList<T> expected, IList<T> actual, string context)
{
bool listEqual = false;
if (expected != null && actual != null)
{
listEqual = expected.All(actual.Contains) && expected.Count == actual.Count;
}
else if (expected == null && actual == null)
{
listEqual = true;
}
StringBuilder expectedDescribeBuilder = new StringBuilder();
foreach (var item in expected)
{
expectedDescribeBuilder.AppendFormat("{0},", MessageRuntimeHelper.Describe<object>(item));
}
StringBuilder actualDescribeBuilder = new StringBuilder();
foreach (var item in actual)
{
actualDescribeBuilder.AppendFormat("{0},", MessageRuntimeHelper.Describe<object>(item));
}
if (expectedDescribeBuilder.Length > 0)
{
expectedDescribeBuilder.Remove(expectedDescribeBuilder.Length - 1, 1);
}
if (actualDescribeBuilder.Length > 0)
{
actualDescribeBuilder.Remove(actualDescribeBuilder.Length - 1, 1);
}
manager.Assert(
listEqual,
string.Format("expected \'{0}\', actual \'{1}\' ({2})", expectedDescribeBuilder.ToString(), actualDescribeBuilder.ToString(), context)
);
}