From b8472afbb326a9ac78606dbe9eca04a98d179b05 Mon Sep 17 00:00:00 2001 From: Enji Eid Date: Mon, 30 Sep 2024 14:41:35 +0200 Subject: [PATCH 1/3] fix --- .../TestFramework/Assertions/CollectionAssert.cs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/TestFramework/TestFramework/Assertions/CollectionAssert.cs b/src/TestFramework/TestFramework/Assertions/CollectionAssert.cs index d3d7a1d085..7069fa056c 100644 --- a/src/TestFramework/TestFramework/Assertions/CollectionAssert.cs +++ b/src/TestFramework/TestFramework/Assertions/CollectionAssert.cs @@ -1641,8 +1641,11 @@ private static bool CompareIEnumerable(IEnumerable? expected, IEnumerable? actua object? curExpected = expectedEnum.Current; object? curActual = actualEnum.Current; - - if (curExpected is IEnumerable curExpectedEnum && curActual is IEnumerable curActualEnum) + if (comparer.Compare(curExpected, curActual) == 0) + { + position++; + } + else if (curExpected is IEnumerable curExpectedEnum && curActual is IEnumerable curActualEnum) { stack.Push(new(expectedEnum, actualEnum, position + 1)); stack.Push(new(curExpectedEnum.GetEnumerator(), curActualEnum.GetEnumerator(), 0)); @@ -1656,8 +1659,6 @@ private static bool CompareIEnumerable(IEnumerable? expected, IEnumerable? actua position); return false; } - - position++; } if (actualEnum.MoveNext() && !expectedEnum.MoveNext()) From 6da1e29e24c02bb75914f140d4d551f5ed6828fa Mon Sep 17 00:00:00 2001 From: Enji Eid Date: Mon, 30 Sep 2024 14:41:45 +0200 Subject: [PATCH 2/3] add tests --- .../Assertions/CollectionAssertTests.cs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/test/UnitTests/TestFramework.UnitTests/Assertions/CollectionAssertTests.cs b/test/UnitTests/TestFramework.UnitTests/Assertions/CollectionAssertTests.cs index e2dfd93e21..4c06d99cae 100644 --- a/test/UnitTests/TestFramework.UnitTests/Assertions/CollectionAssertTests.cs +++ b/test/UnitTests/TestFramework.UnitTests/Assertions/CollectionAssertTests.cs @@ -198,6 +198,13 @@ public void CollectionAssertAreEqualComparerNullabilityPostConditions() comparer.ToString(); // no warning } + public void CollectionAssertAreEqual_WithIgnoreCaseComparer_DoesNotThrow() + { + List expected = ["one", "two"]; + List actual = ["ONE", "tWo"]; + CollectionAssert.AreEqual(expected, actual, StringComparer.OrdinalIgnoreCase); + } + public void CollectionAssertAreEqualComparerMessageNullabilityPostConditions() { ICollection? collection1 = GetCollection(); @@ -264,6 +271,13 @@ public void CollectionAssertAreNotEqual_NotEqualNestedLists_Passes() CollectionAssert.AreNotEqual(collection1, collection2); } + public void CollectionAssertAreNotEqual_WithIgnoreCaseComparer_Fails() + { + List expected = ["one", "two"]; + List actual = ["ONE", "tWo"]; + VerifyThrows(() => CollectionAssert.AreNotEqual(expected, actual, StringComparer.OrdinalIgnoreCase)); + } + public void CollectionAssertAreNotEqual_EqualNestedLists_Fails() { ICollection? collection1 = GetNestedLists(); From 3c569551e2f4cd46388c39fd5515e2c593801583 Mon Sep 17 00:00:00 2001 From: Enji Eid Date: Mon, 30 Sep 2024 15:12:09 +0200 Subject: [PATCH 3/3] added two more tests --- .../Assertions/CollectionAssertTests.cs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/test/UnitTests/TestFramework.UnitTests/Assertions/CollectionAssertTests.cs b/test/UnitTests/TestFramework.UnitTests/Assertions/CollectionAssertTests.cs index 4c06d99cae..e121fb95e8 100644 --- a/test/UnitTests/TestFramework.UnitTests/Assertions/CollectionAssertTests.cs +++ b/test/UnitTests/TestFramework.UnitTests/Assertions/CollectionAssertTests.cs @@ -205,6 +205,13 @@ public void CollectionAssertAreEqual_WithIgnoreCaseComparer_DoesNotThrow() CollectionAssert.AreEqual(expected, actual, StringComparer.OrdinalIgnoreCase); } + public void CollectionAssertAreEqual_WithCaseSensetiveComparer_Fails() + { + List expected = ["one", "two"]; + List actual = ["ONE", "tWo"]; + VerifyThrows(() => CollectionAssert.AreEqual(expected, actual, StringComparer.Ordinal)); + } + public void CollectionAssertAreEqualComparerMessageNullabilityPostConditions() { ICollection? collection1 = GetCollection(); @@ -278,6 +285,13 @@ public void CollectionAssertAreNotEqual_WithIgnoreCaseComparer_Fails() VerifyThrows(() => CollectionAssert.AreNotEqual(expected, actual, StringComparer.OrdinalIgnoreCase)); } + public void CollectionAssertAreNotEqual_WithCaseSensitiveComparer_Passes() + { + List expected = ["one", "two"]; + List actual = ["ONE", "tWo"]; + CollectionAssert.AreNotEqual(expected, actual, StringComparer.Ordinal); + } + public void CollectionAssertAreNotEqual_EqualNestedLists_Fails() { ICollection? collection1 = GetNestedLists();