From 2cf609c877d8eacafd32819cde0370a586f3dc37 Mon Sep 17 00:00:00 2001 From: Sergio Pedri Date: Sun, 9 Nov 2025 18:30:20 -0800 Subject: [PATCH 1/9] Update MSTest packages to version 4.0.1 in test projects Upgraded MSTest.TestAdapter and MSTest.TestFramework from version 3.11.0 to 4.0.1 across all unit test project files to ensure compatibility with the latest features and bug fixes. --- .../CommunityToolkit.Common.UnitTests.csproj | 4 ++-- .../CommunityToolkit.Diagnostics.UnitTests.csproj | 4 ++-- .../CommunityToolkit.HighPerformance.UnitTests.csproj | 4 ++-- ...olkit.Mvvm.DisableINotifyPropertyChanging.UnitTests.csproj | 4 ++-- .../CommunityToolkit.Mvvm.Internals.UnitTests.csproj | 4 ++-- .../CommunityToolkit.Mvvm.Roslyn4001.UnitTests.csproj | 4 ++-- .../CommunityToolkit.Mvvm.Roslyn4031.UnitTests.csproj | 4 ++-- .../CommunityToolkit.Mvvm.Roslyn4120.UnitTests.csproj | 4 ++-- ...yToolkit.Mvvm.SourceGenerators.Roslyn4001.UnitTests.csproj | 4 ++-- ...yToolkit.Mvvm.SourceGenerators.Roslyn4031.UnitTests.csproj | 4 ++-- ...yToolkit.Mvvm.SourceGenerators.Roslyn4120.UnitTests.csproj | 4 ++-- 11 files changed, 22 insertions(+), 22 deletions(-) diff --git a/tests/CommunityToolkit.Common.UnitTests/CommunityToolkit.Common.UnitTests.csproj b/tests/CommunityToolkit.Common.UnitTests/CommunityToolkit.Common.UnitTests.csproj index 3899341d..5e782c0b 100644 --- a/tests/CommunityToolkit.Common.UnitTests/CommunityToolkit.Common.UnitTests.csproj +++ b/tests/CommunityToolkit.Common.UnitTests/CommunityToolkit.Common.UnitTests.csproj @@ -5,8 +5,8 @@ - - + + diff --git a/tests/CommunityToolkit.Diagnostics.UnitTests/CommunityToolkit.Diagnostics.UnitTests.csproj b/tests/CommunityToolkit.Diagnostics.UnitTests/CommunityToolkit.Diagnostics.UnitTests.csproj index 97eca8ab..9b9a7d83 100644 --- a/tests/CommunityToolkit.Diagnostics.UnitTests/CommunityToolkit.Diagnostics.UnitTests.csproj +++ b/tests/CommunityToolkit.Diagnostics.UnitTests/CommunityToolkit.Diagnostics.UnitTests.csproj @@ -5,8 +5,8 @@ - - + + diff --git a/tests/CommunityToolkit.HighPerformance.UnitTests/CommunityToolkit.HighPerformance.UnitTests.csproj b/tests/CommunityToolkit.HighPerformance.UnitTests/CommunityToolkit.HighPerformance.UnitTests.csproj index 6614792a..a4fc36d6 100644 --- a/tests/CommunityToolkit.HighPerformance.UnitTests/CommunityToolkit.HighPerformance.UnitTests.csproj +++ b/tests/CommunityToolkit.HighPerformance.UnitTests/CommunityToolkit.HighPerformance.UnitTests.csproj @@ -11,8 +11,8 @@ - - + + diff --git a/tests/CommunityToolkit.Mvvm.DisableINotifyPropertyChanging.UnitTests/CommunityToolkit.Mvvm.DisableINotifyPropertyChanging.UnitTests.csproj b/tests/CommunityToolkit.Mvvm.DisableINotifyPropertyChanging.UnitTests/CommunityToolkit.Mvvm.DisableINotifyPropertyChanging.UnitTests.csproj index dfd6f49b..e2db37d2 100644 --- a/tests/CommunityToolkit.Mvvm.DisableINotifyPropertyChanging.UnitTests/CommunityToolkit.Mvvm.DisableINotifyPropertyChanging.UnitTests.csproj +++ b/tests/CommunityToolkit.Mvvm.DisableINotifyPropertyChanging.UnitTests/CommunityToolkit.Mvvm.DisableINotifyPropertyChanging.UnitTests.csproj @@ -5,8 +5,8 @@ - - + + diff --git a/tests/CommunityToolkit.Mvvm.Internals.UnitTests/CommunityToolkit.Mvvm.Internals.UnitTests.csproj b/tests/CommunityToolkit.Mvvm.Internals.UnitTests/CommunityToolkit.Mvvm.Internals.UnitTests.csproj index cb840a90..f801d27a 100644 --- a/tests/CommunityToolkit.Mvvm.Internals.UnitTests/CommunityToolkit.Mvvm.Internals.UnitTests.csproj +++ b/tests/CommunityToolkit.Mvvm.Internals.UnitTests/CommunityToolkit.Mvvm.Internals.UnitTests.csproj @@ -5,8 +5,8 @@ - - + + diff --git a/tests/CommunityToolkit.Mvvm.Roslyn4001.UnitTests/CommunityToolkit.Mvvm.Roslyn4001.UnitTests.csproj b/tests/CommunityToolkit.Mvvm.Roslyn4001.UnitTests/CommunityToolkit.Mvvm.Roslyn4001.UnitTests.csproj index 0a0010d8..25ca3023 100644 --- a/tests/CommunityToolkit.Mvvm.Roslyn4001.UnitTests/CommunityToolkit.Mvvm.Roslyn4001.UnitTests.csproj +++ b/tests/CommunityToolkit.Mvvm.Roslyn4001.UnitTests/CommunityToolkit.Mvvm.Roslyn4001.UnitTests.csproj @@ -7,8 +7,8 @@ - - + + diff --git a/tests/CommunityToolkit.Mvvm.Roslyn4031.UnitTests/CommunityToolkit.Mvvm.Roslyn4031.UnitTests.csproj b/tests/CommunityToolkit.Mvvm.Roslyn4031.UnitTests/CommunityToolkit.Mvvm.Roslyn4031.UnitTests.csproj index d5111588..be4c167e 100644 --- a/tests/CommunityToolkit.Mvvm.Roslyn4031.UnitTests/CommunityToolkit.Mvvm.Roslyn4031.UnitTests.csproj +++ b/tests/CommunityToolkit.Mvvm.Roslyn4031.UnitTests/CommunityToolkit.Mvvm.Roslyn4031.UnitTests.csproj @@ -7,8 +7,8 @@ - - + + diff --git a/tests/CommunityToolkit.Mvvm.Roslyn4120.UnitTests/CommunityToolkit.Mvvm.Roslyn4120.UnitTests.csproj b/tests/CommunityToolkit.Mvvm.Roslyn4120.UnitTests/CommunityToolkit.Mvvm.Roslyn4120.UnitTests.csproj index 3252a1f5..3e20e320 100644 --- a/tests/CommunityToolkit.Mvvm.Roslyn4120.UnitTests/CommunityToolkit.Mvvm.Roslyn4120.UnitTests.csproj +++ b/tests/CommunityToolkit.Mvvm.Roslyn4120.UnitTests/CommunityToolkit.Mvvm.Roslyn4120.UnitTests.csproj @@ -12,8 +12,8 @@ - - + + diff --git a/tests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4001.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4001.UnitTests.csproj b/tests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4001.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4001.UnitTests.csproj index 00f11738..ba721a87 100644 --- a/tests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4001.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4001.UnitTests.csproj +++ b/tests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4001.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4001.UnitTests.csproj @@ -9,8 +9,8 @@ - - + + diff --git a/tests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4031.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4031.UnitTests.csproj b/tests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4031.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4031.UnitTests.csproj index f570d3ca..6fda8dbf 100644 --- a/tests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4031.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4031.UnitTests.csproj +++ b/tests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4031.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4031.UnitTests.csproj @@ -14,8 +14,8 @@ - - + + diff --git a/tests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4120.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4120.UnitTests.csproj b/tests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4120.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4120.UnitTests.csproj index 87225d03..ce510886 100644 --- a/tests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4120.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4120.UnitTests.csproj +++ b/tests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4120.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4120.UnitTests.csproj @@ -10,8 +10,8 @@ - - + + From e88c524c3e4ce34b01d779f142e1b83cac7a9999 Mon Sep 17 00:00:00 2001 From: Sergio Pedri Date: Sun, 9 Nov 2025 18:33:21 -0800 Subject: [PATCH 2/9] Refactor unit tests to use expected-first Assert.AreEqual Updated all unit tests to consistently use the expected value as the first argument in Assert.AreEqual calls. This improves readability and aligns with best practices for test assertions. --- .../Extensions/Test_TaskExtensions.cs | 4 +- .../Extensions/Test_ValueTypeExtensions.cs | 14 +- .../Test_Guard.cs | 6 +- .../Buffers/Test_ArrayPoolBufferWriter{T}.cs | 48 +++--- .../Buffers/Test_MemoryBufferWriter{T}.cs | 20 +-- .../Buffers/Test_MemoryOwner{T}.cs | 8 +- .../Buffers/Test_SpanOwner{T}.cs | 6 +- .../Extensions/Test_IMemoryOwnerExtensions.cs | 4 +- .../Extensions/Test_MemoryExtensions.cs | 48 +++--- .../Test_ReadOnlySpanExtensions.Count.cs | 4 +- .../Extensions/Test_SpinLockExtensions.cs | 4 +- .../Extensions/Test_StreamExtensions.cs | 2 +- .../Helpers/Test_BitHelper.cs | 4 +- .../Helpers/Test_ObjectMarshal.cs | 2 +- .../Helpers/Test_ParallelHelper.ForEach.In.cs | 2 +- .../Test_ParallelHelper.ForEach.In2D.cs | 2 +- .../Memory/Test_Memory2D{T}.cs | 154 ++++++++--------- .../Memory/Test_ReadOnlyMemory2D{T}.cs | 142 +++++++-------- .../Memory/Test_ReadOnlySpan2D{T}.cs | 150 ++++++++-------- .../Memory/Test_Span2D{T}.cs | 162 +++++++++--------- .../Streams/Test_IMemoryOwnerStream.cs | 2 +- .../Test_MemoryStream.ThrowExceptions.cs | 2 +- .../Streams/Test_MemoryStream.cs | 14 +- .../Streams/Test_ReadOnlySequenceStream.cs | 12 +- .../Test_NullableRef{T}.cs | 2 +- .../Test_Ref{T}.cs | 2 +- .../Test_DisableINotifyPropertyChanging.cs | 4 +- .../Test_Messenger.cs | 4 +- ...ablePropertyAttribute_PartialProperties.cs | 150 ++++++++-------- .../Collections/Test_ObservableGroup.cs | 20 +-- .../Test_ObservableGroupedCollection.cs | 8 +- ...t_ObservableGroupedCollectionExtensions.cs | 72 ++++---- .../Test_ReadOnlyObservableGroup.cs | 16 +- ...est_ReadOnlyObservableGroupedCollection.cs | 52 +++--- .../Test_AsyncRelayCommand.cs | 28 +-- .../Test_AsyncRelayCommand{T}.cs | 28 +-- .../Test_INotifyPropertyChangedAttribute.cs | 30 ++-- .../Test_Messenger.Request.cs | 10 +- .../Test_Messenger.cs | 36 ++-- .../Test_ObservableObject.cs | 34 ++-- .../Test_ObservableObjectAttribute.cs | 16 +- .../Test_ObservablePropertyAttribute.cs | 150 ++++++++-------- .../Test_ObservableRecipient.cs | 6 +- .../Test_ObservableRecipientAttribute.cs | 18 +- .../Test_ObservableValidator.cs | 126 +++++++------- .../Test_RelayCommand.cs | 12 +- .../Test_RelayCommandAttribute.cs | 112 ++++++------ .../Test_RelayCommand{T}.cs | 6 +- 48 files changed, 879 insertions(+), 879 deletions(-) diff --git a/tests/CommunityToolkit.Common.UnitTests/Extensions/Test_TaskExtensions.cs b/tests/CommunityToolkit.Common.UnitTests/Extensions/Test_TaskExtensions.cs index 86d6ec2a..1bebbf5d 100644 --- a/tests/CommunityToolkit.Common.UnitTests/Extensions/Test_TaskExtensions.cs +++ b/tests/CommunityToolkit.Common.UnitTests/Extensions/Test_TaskExtensions.cs @@ -85,8 +85,8 @@ public async Task Test_TaskExtensions_ResultOrDefault_FromAsyncTaskMethodBuilder _ = await taskFromBuilder; - Assert.AreEqual(((Task)taskFromBuilder).GetResultOrDefault(), "Test"); - Assert.AreEqual(taskFromBuilder.GetResultOrDefault(), "Test"); + Assert.AreEqual("Test", ((Task)taskFromBuilder).GetResultOrDefault()); + Assert.AreEqual("Test", taskFromBuilder.GetResultOrDefault()); } [TestMethod] diff --git a/tests/CommunityToolkit.Diagnostics.UnitTests/Extensions/Test_ValueTypeExtensions.cs b/tests/CommunityToolkit.Diagnostics.UnitTests/Extensions/Test_ValueTypeExtensions.cs index 972dfff3..d9c6855e 100644 --- a/tests/CommunityToolkit.Diagnostics.UnitTests/Extensions/Test_ValueTypeExtensions.cs +++ b/tests/CommunityToolkit.Diagnostics.UnitTests/Extensions/Test_ValueTypeExtensions.cs @@ -12,12 +12,12 @@ public class Test_ValueTypeExtensions [TestMethod] public void Test_ValueTypeExtensions_ToHexString() { - Assert.AreEqual(((byte)0).ToHexString(), "0x00"); - Assert.AreEqual(((byte)127).ToHexString(), "0x7F"); - Assert.AreEqual(((byte)255).ToHexString(), "0xFF"); - Assert.AreEqual(((ushort)6458).ToHexString(), "0x193A"); - Assert.AreEqual(6458.ToHexString(), "0x0000193A"); - Assert.AreEqual((-1).ToHexString(), "0xFFFFFFFF"); - Assert.AreEqual(true.ToHexString(), "0x01"); + Assert.AreEqual("0x00", ((byte)0).ToHexString()); + Assert.AreEqual("0x7F", ((byte)127).ToHexString()); + Assert.AreEqual("0xFF", ((byte)255).ToHexString()); + Assert.AreEqual("0x193A", ((ushort)6458).ToHexString()); + Assert.AreEqual("0x0000193A", 6458.ToHexString()); + Assert.AreEqual("0xFFFFFFFF", (-1).ToHexString()); + Assert.AreEqual("0x01", true.ToHexString()); } } diff --git a/tests/CommunityToolkit.Diagnostics.UnitTests/Test_Guard.cs b/tests/CommunityToolkit.Diagnostics.UnitTests/Test_Guard.cs index 7cbe156a..74367d7f 100644 --- a/tests/CommunityToolkit.Diagnostics.UnitTests/Test_Guard.cs +++ b/tests/CommunityToolkit.Diagnostics.UnitTests/Test_Guard.cs @@ -731,7 +731,7 @@ public void Test_Guard_CallerArgumentExpression_1() } catch (ArgumentNullException e) { - Assert.AreEqual(e.ParamName, nameof(thisStringShouldNotBeNull)); + Assert.AreEqual(nameof(thisStringShouldNotBeNull), e.ParamName); return; } @@ -751,7 +751,7 @@ public void Test_Guard_CallerArgumentExpression_2() } catch (ArgumentOutOfRangeException e) { - Assert.AreEqual(e.ParamName, nameof(thisIndexIsOutOfRange)); + Assert.AreEqual(nameof(thisIndexIsOutOfRange), e.ParamName); return; } @@ -771,7 +771,7 @@ public void Test_Guard_CallerArgumentExpression_3() } catch (ArgumentException e) { - Assert.AreEqual(e.ParamName, nameof(thisArrayShouldNotBeShorterThan10)); + Assert.AreEqual(nameof(thisArrayShouldNotBeShorterThan10), e.ParamName); return; } diff --git a/tests/CommunityToolkit.HighPerformance.UnitTests/Buffers/Test_ArrayPoolBufferWriter{T}.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Buffers/Test_ArrayPoolBufferWriter{T}.cs index 7c4e4001..f1277afe 100644 --- a/tests/CommunityToolkit.HighPerformance.UnitTests/Buffers/Test_ArrayPoolBufferWriter{T}.cs +++ b/tests/CommunityToolkit.HighPerformance.UnitTests/Buffers/Test_ArrayPoolBufferWriter{T}.cs @@ -52,7 +52,7 @@ public void Test_ArrayPoolBufferWriterOfT_BufferSize(int request, int expected) byte[] array = (byte[])arrayFieldInfo!.GetValue(writer)!; - Assert.AreEqual(array.Length, expected); + Assert.AreEqual(expected, array.Length); } [TestMethod] @@ -60,9 +60,9 @@ public void Test_ArrayPoolBufferWriterOfT_AllocateAndGetMemoryAndSpan() { ArrayPoolBufferWriter? writer = new(); - Assert.AreEqual(writer.Capacity, 256); - Assert.AreEqual(writer.FreeCapacity, 256); - Assert.AreEqual(writer.WrittenCount, 0); + Assert.AreEqual(256, writer.Capacity); + Assert.AreEqual(256, writer.FreeCapacity); + Assert.AreEqual(0, writer.WrittenCount); Assert.IsTrue(writer.WrittenMemory.IsEmpty); Assert.IsTrue(writer.WrittenSpan.IsEmpty); @@ -72,11 +72,11 @@ public void Test_ArrayPoolBufferWriterOfT_AllocateAndGetMemoryAndSpan() writer.Advance(43); - Assert.AreEqual(writer.Capacity, 256); - Assert.AreEqual(writer.FreeCapacity, 256 - 43); - Assert.AreEqual(writer.WrittenCount, 43); - Assert.AreEqual(writer.WrittenMemory.Length, 43); - Assert.AreEqual(writer.WrittenSpan.Length, 43); + Assert.AreEqual(256, writer.Capacity); + Assert.AreEqual(256 - 43, writer.FreeCapacity); + Assert.AreEqual(43, writer.WrittenCount); + Assert.AreEqual(43, writer.WrittenMemory.Length); + Assert.AreEqual(43, writer.WrittenSpan.Length); _ = Assert.ThrowsExactly(() => writer.Advance(-1)); _ = Assert.ThrowsExactly(() => writer.GetMemory(-1)); @@ -99,11 +99,11 @@ public void Test_ArrayPoolBufferWriterOfT_AllocateFromCustomPoolAndGetMemoryAndS using (ArrayPoolBufferWriter? writer = new(pool)) { - Assert.AreEqual(pool.RentedArrays.Count, 1); + Assert.AreEqual(1, pool.RentedArrays.Count); - Assert.AreEqual(writer.Capacity, 256); - Assert.AreEqual(writer.FreeCapacity, 256); - Assert.AreEqual(writer.WrittenCount, 0); + Assert.AreEqual(256, writer.Capacity); + Assert.AreEqual(256, writer.FreeCapacity); + Assert.AreEqual(0, writer.WrittenCount); Assert.IsTrue(writer.WrittenMemory.IsEmpty); Assert.IsTrue(writer.WrittenSpan.IsEmpty); @@ -113,11 +113,11 @@ public void Test_ArrayPoolBufferWriterOfT_AllocateFromCustomPoolAndGetMemoryAndS writer.Advance(43); - Assert.AreEqual(writer.Capacity, 256); - Assert.AreEqual(writer.FreeCapacity, 256 - 43); - Assert.AreEqual(writer.WrittenCount, 43); - Assert.AreEqual(writer.WrittenMemory.Length, 43); - Assert.AreEqual(writer.WrittenSpan.Length, 43); + Assert.AreEqual(256, writer.Capacity); + Assert.AreEqual(256 - 43, writer.FreeCapacity); + Assert.AreEqual(43, writer.WrittenCount); + Assert.AreEqual(43, writer.WrittenMemory.Length); + Assert.AreEqual(43, writer.WrittenSpan.Length); _ = Assert.ThrowsExactly(() => writer.Advance(-1)); _ = Assert.ThrowsExactly(() => writer.GetMemory(-1)); @@ -133,7 +133,7 @@ public void Test_ArrayPoolBufferWriterOfT_AllocateFromCustomPoolAndGetMemoryAndS _ = Assert.ThrowsExactly(() => writer.Advance(1)); } - Assert.AreEqual(pool.RentedArrays.Count, 0); + Assert.AreEqual(0, pool.RentedArrays.Count); } [TestMethod] @@ -155,12 +155,12 @@ public void Test_ArrayPoolBufferWriterOfT_Clear() writer.Advance(4); - Assert.AreEqual(writer.WrittenCount, 4); + Assert.AreEqual(4, writer.WrittenCount); Assert.IsTrue(span.SequenceEqual(data)); writer.Clear(); - Assert.AreEqual(writer.WrittenCount, 0); + Assert.AreEqual(0, writer.WrittenCount); Assert.IsTrue(span.ToArray().All(b => b == 0)); } @@ -191,13 +191,13 @@ public void Test_ArrayPoolBufferWriterOfT_AsStream() writeStream.Write(guid); } - Assert.AreEqual(writer.WrittenCount, GuidSize); + Assert.AreEqual(GuidSize, writer.WrittenCount); // Here we get a readable stream instead, and read from it to ensure // the previous data was written correctly from the writeable stream. using (Stream stream = writer.WrittenMemory.AsStream()) { - Assert.AreEqual(stream.Length, GuidSize); + Assert.AreEqual(GuidSize, stream.Length); byte[] result = new byte[GuidSize]; @@ -231,7 +231,7 @@ public void Test_ArrayPoolBufferWriterOfT_AllocateAndGetArray() Assert.IsNotNull(segment.Array); Assert.IsTrue(segment.Array.Length >= bufferWriter.WrittenSpan.Length); - Assert.AreEqual(segment.Offset, 0); + Assert.AreEqual(0, segment.Offset); Assert.AreEqual(segment.Count, bufferWriter.WrittenSpan.Length); _ = MemoryMarshal.TryGetArray(bufferWriter.WrittenMemory, out ArraySegment writtenSegment); diff --git a/tests/CommunityToolkit.HighPerformance.UnitTests/Buffers/Test_MemoryBufferWriter{T}.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Buffers/Test_MemoryBufferWriter{T}.cs index bc0eb674..6f78ab82 100644 --- a/tests/CommunityToolkit.HighPerformance.UnitTests/Buffers/Test_MemoryBufferWriter{T}.cs +++ b/tests/CommunityToolkit.HighPerformance.UnitTests/Buffers/Test_MemoryBufferWriter{T}.cs @@ -19,9 +19,9 @@ public void Test_MemoryBufferWriterOfT_AllocateAndGetMemoryAndSpan() MemoryBufferWriter? writer = new(memory); - Assert.AreEqual(writer.Capacity, 256); - Assert.AreEqual(writer.FreeCapacity, 256); - Assert.AreEqual(writer.WrittenCount, 0); + Assert.AreEqual(256, writer.Capacity); + Assert.AreEqual(256, writer.FreeCapacity); + Assert.AreEqual(0, writer.WrittenCount); Assert.IsTrue(writer.WrittenMemory.IsEmpty); Assert.IsTrue(writer.WrittenSpan.IsEmpty); @@ -31,11 +31,11 @@ public void Test_MemoryBufferWriterOfT_AllocateAndGetMemoryAndSpan() writer.Advance(43); - Assert.AreEqual(writer.Capacity, 256); - Assert.AreEqual(writer.FreeCapacity, 256 - 43); - Assert.AreEqual(writer.WrittenCount, 43); - Assert.AreEqual(writer.WrittenMemory.Length, 43); - Assert.AreEqual(writer.WrittenSpan.Length, 43); + Assert.AreEqual(256, writer.Capacity); + Assert.AreEqual(256 - 43, writer.FreeCapacity); + Assert.AreEqual(43, writer.WrittenCount); + Assert.AreEqual(43, writer.WrittenMemory.Length); + Assert.AreEqual(43, writer.WrittenSpan.Length); Assert.AreEqual(memory.Length - 43, writer.GetSpan().Length); Assert.AreEqual(memory.Length - 43, writer.GetMemory().Length); @@ -64,12 +64,12 @@ public void Test_MemoryBufferWriterOfT_Clear() writer.Advance(4); - Assert.AreEqual(writer.WrittenCount, 4); + Assert.AreEqual(4, writer.WrittenCount); Assert.IsTrue(span.SequenceEqual(data)); writer.Clear(); - Assert.AreEqual(writer.WrittenCount, 0); + Assert.AreEqual(0, writer.WrittenCount); Assert.IsTrue(span.ToArray().All(b => b == 0)); } } diff --git a/tests/CommunityToolkit.HighPerformance.UnitTests/Buffers/Test_MemoryOwner{T}.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Buffers/Test_MemoryOwner{T}.cs index f256557e..0431f46b 100644 --- a/tests/CommunityToolkit.HighPerformance.UnitTests/Buffers/Test_MemoryOwner{T}.cs +++ b/tests/CommunityToolkit.HighPerformance.UnitTests/Buffers/Test_MemoryOwner{T}.cs @@ -35,7 +35,7 @@ public void Test_MemoryOwnerOfT_AllocateFromCustomPoolAndGetMemoryAndSpan() using (MemoryOwner? buffer = MemoryOwner.Allocate(127, pool)) { - Assert.AreEqual(pool.RentedArrays.Count, 1); + Assert.AreEqual(1, pool.RentedArrays.Count); Assert.IsTrue(buffer.Length == 127); Assert.IsTrue(buffer.Memory.Length == 127); @@ -47,7 +47,7 @@ public void Test_MemoryOwnerOfT_AllocateFromCustomPoolAndGetMemoryAndSpan() Assert.IsTrue(buffer.Span.ToArray().All(i => i == 42)); } - Assert.AreEqual(pool.RentedArrays.Count, 0); + Assert.AreEqual(0, pool.RentedArrays.Count); } [TestMethod] @@ -128,7 +128,7 @@ public void Test_MemoryOwnerOfT_AllocateAndGetArray() Assert.IsNotNull(segment.Array); Assert.IsTrue(segment.Array.Length >= buffer.Length); - Assert.AreEqual(segment.Offset, 0); + Assert.AreEqual(0, segment.Offset); Assert.AreEqual(segment.Count, buffer.Length); MemoryOwner? second = buffer.Slice(10, 80); @@ -143,7 +143,7 @@ public void Test_MemoryOwnerOfT_AllocateAndGetArray() // Same as before, but we now also verify the initial offset != 0, as we used Slice Assert.IsNotNull(segment.Array); Assert.IsTrue(segment.Array.Length >= second.Length); - Assert.AreEqual(segment.Offset, 10); + Assert.AreEqual(10, segment.Offset); Assert.AreEqual(segment.Count, second.Length); second.Dispose(); diff --git a/tests/CommunityToolkit.HighPerformance.UnitTests/Buffers/Test_SpanOwner{T}.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Buffers/Test_SpanOwner{T}.cs index 3ba91880..b489c231 100644 --- a/tests/CommunityToolkit.HighPerformance.UnitTests/Buffers/Test_SpanOwner{T}.cs +++ b/tests/CommunityToolkit.HighPerformance.UnitTests/Buffers/Test_SpanOwner{T}.cs @@ -33,7 +33,7 @@ public void Test_SpanOwnerOfT_AllocateFromCustomPoolAndGetMemoryAndSpan() using (SpanOwner buffer = SpanOwner.Allocate(127, pool)) { - Assert.AreEqual(pool.RentedArrays.Count, 1); + Assert.AreEqual(1, pool.RentedArrays.Count); Assert.IsTrue(buffer.Length == 127); Assert.IsTrue(buffer.Span.Length == 127); @@ -43,7 +43,7 @@ public void Test_SpanOwnerOfT_AllocateFromCustomPoolAndGetMemoryAndSpan() Assert.IsTrue(buffer.Span.ToArray().All(i => i == 42)); } - Assert.AreEqual(pool.RentedArrays.Count, 0); + Assert.AreEqual(0, pool.RentedArrays.Count); } [TestMethod] @@ -87,7 +87,7 @@ public void Test_SpanOwnerOfT_AllocateAndGetArray() // is all documented in the XML docs for the SpanOwner type. Assert.IsNotNull(segment.Array); Assert.IsTrue(segment.Array.Length >= buffer.Length); - Assert.AreEqual(segment.Offset, 0); + Assert.AreEqual(0, segment.Offset); Assert.AreEqual(segment.Count, buffer.Length); } } diff --git a/tests/CommunityToolkit.HighPerformance.UnitTests/Extensions/Test_IMemoryOwnerExtensions.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Extensions/Test_IMemoryOwnerExtensions.cs index 42db952c..d6673ae3 100644 --- a/tests/CommunityToolkit.HighPerformance.UnitTests/Extensions/Test_IMemoryOwnerExtensions.cs +++ b/tests/CommunityToolkit.HighPerformance.UnitTests/Extensions/Test_IMemoryOwnerExtensions.cs @@ -19,8 +19,8 @@ public void Test_IMemoryOwnerExtensions_EmptyIMemoryOwnerStream() Stream stream = buffer.AsStream(); Assert.IsNotNull(stream); - Assert.AreEqual(buffer.Length, 0); - Assert.AreEqual(stream.Length, 0); + Assert.AreEqual(0, buffer.Length); + Assert.AreEqual(0, stream.Length); Assert.IsTrue(stream.CanWrite); } diff --git a/tests/CommunityToolkit.HighPerformance.UnitTests/Extensions/Test_MemoryExtensions.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Extensions/Test_MemoryExtensions.cs index 849bde10..59b83f5e 100644 --- a/tests/CommunityToolkit.HighPerformance.UnitTests/Extensions/Test_MemoryExtensions.cs +++ b/tests/CommunityToolkit.HighPerformance.UnitTests/Extensions/Test_MemoryExtensions.cs @@ -61,13 +61,13 @@ public void Test_MemoryExtensions_Cast_TooShort() Memory m2 = new byte[13]; Memory mc2 = m2.Cast(); - Assert.AreEqual(mc2.Length, 3); + Assert.AreEqual(3, mc2.Length); // 16 - 5 = 11 ---> 11 / sizeof(int) = 2 Memory m3 = new byte[16].AsMemory(5); Memory mc3 = m3.Cast(); - Assert.AreEqual(mc3.Length, 2); + Assert.AreEqual(2, mc3.Length); } [TestMethod] @@ -77,7 +77,7 @@ public void Test_MemoryExtensions_FromArray_CastFromByte() Memory memoryOfBytes = new byte[128]; Memory memoryOfFloats = memoryOfBytes.Cast(); - Assert.AreEqual(memoryOfFloats.Length, 128 / sizeof(float)); + Assert.AreEqual(128 / sizeof(float), memoryOfFloats.Length); Span spanOfBytes = memoryOfBytes.Span; Span spanOfFloats = memoryOfFloats.Span; @@ -99,7 +99,7 @@ public void Test_MemoryExtensions_FromArray_CastToByte() Memory memoryOfFloats = new float[128]; Memory memoryOfBytes = memoryOfFloats.Cast(); - Assert.AreEqual(memoryOfBytes.Length, 128 * sizeof(float)); + Assert.AreEqual(128 * sizeof(float), memoryOfBytes.Length); Span spanOfFloats = memoryOfFloats.Span; Span spanOfBytes = memoryOfBytes.Span; @@ -119,7 +119,7 @@ public void Test_MemoryExtensions_FromArray_CastToShort() Memory memoryOfFloats = new float[128]; Memory memoryOfShorts = memoryOfFloats.Cast(); - Assert.AreEqual(memoryOfShorts.Length, 128 * sizeof(float) / sizeof(short)); + Assert.AreEqual(128 * sizeof(float) / sizeof(short), memoryOfShorts.Length); Span spanOfFloats = memoryOfFloats.Span; Span spanOfShorts = memoryOfShorts.Span; @@ -149,7 +149,7 @@ public void Test_MemoryExtensions_FromArray_CastFromByteAndBack() // the associated parameters match the ones we'd expect here (same length, offset of 0). Assert.IsTrue(MemoryMarshal.TryGetArray(memoryBack, out ArraySegment segment)); Assert.AreSame(segment.Array!, data); - Assert.AreEqual(segment.Offset, 0); + Assert.AreEqual(0, segment.Offset); Assert.AreEqual(segment.Count, data.Length); Assert.IsTrue(memoryOfBytes.Equals(memoryBack)); @@ -174,12 +174,12 @@ public void Test_MemoryExtensions_Cast_TooShort_WithSlice() Memory m2 = new byte[20].AsMemory().Slice(4, 13); Memory mc2 = m2.Cast(); - Assert.AreEqual(mc2.Length, 3); + Assert.AreEqual(3, mc2.Length); Memory m3 = new byte[16].AsMemory().Slice(5); Memory mc3 = m3.Cast(); - Assert.AreEqual(mc3.Length, 2); + Assert.AreEqual(2, mc3.Length); } [TestMethod] @@ -190,7 +190,7 @@ public void Test_MemoryExtensions_FromArray_CastFromByte_WithSlice() Memory memoryOfBytes = new byte[512].AsMemory().Slice(128, 128); Memory memoryOfFloats = memoryOfBytes.Cast(); - Assert.AreEqual(memoryOfFloats.Length, 128 / sizeof(float)); + Assert.AreEqual(128 / sizeof(float), memoryOfFloats.Length); Span spanOfBytes = memoryOfBytes.Span; Span spanOfFloats = memoryOfFloats.Span; @@ -208,7 +208,7 @@ public void Test_MemoryExtensions_FromArray_CastToByte_WithSlice() Memory memoryOfFloats = new float[512].AsMemory().Slice(128, 128); Memory memoryOfBytes = memoryOfFloats.Cast(); - Assert.AreEqual(memoryOfBytes.Length, 128 * sizeof(float)); + Assert.AreEqual(128 * sizeof(float), memoryOfBytes.Length); Span spanOfFloats = memoryOfFloats.Span; Span spanOfBytes = memoryOfBytes.Span; @@ -227,7 +227,7 @@ public void Test_MemoryExtensions_FromArray_CastToShort_WithSlice() Memory memoryOfFloats = new float[512].AsMemory().Slice(128, 128); Memory memoryOfShorts = memoryOfFloats.Cast(); - Assert.AreEqual(memoryOfShorts.Length, 128 * sizeof(float) / sizeof(short)); + Assert.AreEqual(128 * sizeof(float) / sizeof(short), memoryOfShorts.Length); Span spanOfFloats = memoryOfFloats.Span; Span spanOfShorts = memoryOfShorts.Span; @@ -252,8 +252,8 @@ public void Test_MemoryExtensions_FromArray_CastFromByteAndBack_WithSlice() // Here we now also have to validate the starting offset from the extracted array Assert.IsTrue(MemoryMarshal.TryGetArray(memoryBack, out ArraySegment segment)); Assert.AreSame(segment.Array!, data); - Assert.AreEqual(segment.Offset, 128); - Assert.AreEqual(segment.Count, 128); + Assert.AreEqual(128, segment.Offset); + Assert.AreEqual(128, segment.Count); Assert.IsTrue(memoryOfBytes.Equals(memoryBack)); @@ -273,7 +273,7 @@ public void Test_MemoryExtensions_FromMemoryManager_CastFromByte() Memory memoryOfBytes = new ArrayMemoryManager(128); Memory memoryOfFloats = memoryOfBytes.Cast(); - Assert.AreEqual(memoryOfFloats.Length, 128 / sizeof(float)); + Assert.AreEqual(128 / sizeof(float), memoryOfFloats.Length); Span spanOfBytes = memoryOfBytes.Span; Span spanOfFloats = memoryOfFloats.Span; @@ -291,7 +291,7 @@ public void Test_MemoryExtensions_FromMemoryManager_CastToByte() Memory memoryOfFloats = new ArrayMemoryManager(128); Memory memoryOfBytes = memoryOfFloats.Cast(); - Assert.AreEqual(memoryOfBytes.Length, 128 * sizeof(float)); + Assert.AreEqual(128 * sizeof(float), memoryOfBytes.Length); Span spanOfFloats = memoryOfFloats.Span; Span spanOfBytes = memoryOfBytes.Span; @@ -309,7 +309,7 @@ public void Test_MemoryExtensions_FromMemoryManager_CastToShort() Memory memoryOfFloats = new ArrayMemoryManager(128); Memory memoryOfShorts = memoryOfFloats.Cast(); - Assert.AreEqual(memoryOfShorts.Length, 128 * sizeof(float) / sizeof(short)); + Assert.AreEqual(128 * sizeof(float) / sizeof(short), memoryOfShorts.Length); Span spanOfFloats = memoryOfFloats.Span; Span spanOfShorts = memoryOfShorts.Span; @@ -335,8 +335,8 @@ public void Test_MemoryExtensions_FromMemoryManager_CastFromByteAndBack() // checked for when using an array. We need to check they're the same, and the other parameters. Assert.IsTrue(MemoryMarshal.TryGetMemoryManager>(memoryBack, out ArrayMemoryManager? manager, out int start, out int length)); Assert.AreSame(manager!, data); - Assert.AreEqual(start, 0); - Assert.AreEqual(length, 128); + Assert.AreEqual(0, start); + Assert.AreEqual(128, length); Assert.IsTrue(memoryOfBytes.Equals(memoryBack)); @@ -353,7 +353,7 @@ public void Test_MemoryExtensions_FromMemoryManager_CastFromByte_WithSlice() Memory memoryOfBytes = new ArrayMemoryManager(512).Memory.Slice(128, 128); Memory memoryOfFloats = memoryOfBytes.Cast(); - Assert.AreEqual(memoryOfFloats.Length, 128 / sizeof(float)); + Assert.AreEqual(128 / sizeof(float), memoryOfFloats.Length); Span spanOfBytes = memoryOfBytes.Span; Span spanOfFloats = memoryOfFloats.Span; @@ -371,7 +371,7 @@ public void Test_MemoryExtensions_FromMemoryManager_CastToByte_WithSlice() Memory memoryOfFloats = new ArrayMemoryManager(512).Memory.Slice(128, 128); Memory memoryOfBytes = memoryOfFloats.Cast(); - Assert.AreEqual(memoryOfBytes.Length, 128 * sizeof(float)); + Assert.AreEqual(128 * sizeof(float), memoryOfBytes.Length); Span spanOfFloats = memoryOfFloats.Span; Span spanOfBytes = memoryOfBytes.Span; @@ -389,7 +389,7 @@ public void Test_MemoryExtensions_FromMemoryManager_CastToShort_WithSlice() Memory memoryOfFloats = new ArrayMemoryManager(512).Memory.Slice(128, 128); Memory memoryOfShorts = memoryOfFloats.Cast(); - Assert.AreEqual(memoryOfShorts.Length, 128 * sizeof(float) / sizeof(short)); + Assert.AreEqual(128 * sizeof(float) / sizeof(short), memoryOfShorts.Length); Span spanOfFloats = memoryOfFloats.Span; Span spanOfShorts = memoryOfShorts.Span; @@ -414,8 +414,8 @@ public void Test_MemoryExtensions_FromMemoryManager_CastFromByteAndBack_WithSlic // Here we also need to validate that the offset was maintained Assert.IsTrue(MemoryMarshal.TryGetMemoryManager>(memoryBack, out ArrayMemoryManager? manager, out int start, out int length)); Assert.AreSame(manager!, data); - Assert.AreEqual(start, 128); - Assert.AreEqual(length, 128); + Assert.AreEqual(128, start); + Assert.AreEqual(128, length); Assert.IsTrue(memoryOfBytes.Equals(memoryBack)); @@ -493,7 +493,7 @@ public void Test_MemoryExtensions_FromString_CastFromByteAndBack() // Get the original string back (to validate the optimization too) and check the params Assert.IsTrue(MemoryMarshal.TryGetString(memoryOfChars, out string? text, out int start, out int length)); Assert.AreSame(text!, data); - Assert.AreEqual(start, 0); + Assert.AreEqual(0, start); Assert.AreEqual(length, data.Length); Assert.IsTrue(memoryOfChars.Equals(memoryBack)); diff --git a/tests/CommunityToolkit.HighPerformance.UnitTests/Extensions/Test_ReadOnlySpanExtensions.Count.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Extensions/Test_ReadOnlySpanExtensions.Count.cs index 346e801f..e4341774 100644 --- a/tests/CommunityToolkit.HighPerformance.UnitTests/Extensions/Test_ReadOnlySpanExtensions.Count.cs +++ b/tests/CommunityToolkit.HighPerformance.UnitTests/Extensions/Test_ReadOnlySpanExtensions.Count.cs @@ -89,7 +89,7 @@ public void Test_ReadOnlySpanExtensions_RandomCountManaged() int result = data.Count(value); int expected = CountWithForeach(data, value); - Assert.AreEqual(result, expected, $"Failed {typeof(Int)} test with count {count}: got {result} instead of {expected}"); + Assert.AreEqual(expected, result, $"Failed {typeof(Int)} test with count {count}: got {result} instead of {expected}"); } } @@ -181,7 +181,7 @@ private static void TestForType(T value, Func> int result = data.GetSpan().Count(value); int expected = CountWithForeach(data.GetSpan(), value); - Assert.AreEqual(result, expected, $"Failed {typeof(T)} test with count {count}: got {result} instead of {expected}"); + Assert.AreEqual(expected, result, $"Failed {typeof(T)} test with count {count}: got {result} instead of {expected}"); } } diff --git a/tests/CommunityToolkit.HighPerformance.UnitTests/Extensions/Test_SpinLockExtensions.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Extensions/Test_SpinLockExtensions.cs index 50b5d288..8838e8bc 100644 --- a/tests/CommunityToolkit.HighPerformance.UnitTests/Extensions/Test_SpinLockExtensions.cs +++ b/tests/CommunityToolkit.HighPerformance.UnitTests/Extensions/Test_SpinLockExtensions.cs @@ -32,7 +32,7 @@ public unsafe void Test_ArrayExtensions_Pointer() } }); - Assert.AreEqual(sum, 1000 * 10); + Assert.AreEqual(1000 * 10, sum); } #if NET8_0_OR_GREATER @@ -54,7 +54,7 @@ public void Test_ArrayExtensions_Ref() } }); - Assert.AreEqual(sum, 1000 * 10); + Assert.AreEqual(1000 * 10, sum); } /// diff --git a/tests/CommunityToolkit.HighPerformance.UnitTests/Extensions/Test_StreamExtensions.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Extensions/Test_StreamExtensions.cs index 3664d49c..7780839e 100644 --- a/tests/CommunityToolkit.HighPerformance.UnitTests/Extensions/Test_StreamExtensions.cs +++ b/tests/CommunityToolkit.HighPerformance.UnitTests/Extensions/Test_StreamExtensions.cs @@ -23,7 +23,7 @@ public void Test_StreamExtensions_ReadWrite() stream.Write(3.14f); stream.Write(unchecked(uint.MaxValue * 324823489204ul)); - Assert.AreEqual(stream.Position, 17); + Assert.AreEqual(17, stream.Position); _ = Assert.ThrowsExactly(() => stream.Write(long.MaxValue)); diff --git a/tests/CommunityToolkit.HighPerformance.UnitTests/Helpers/Test_BitHelper.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Helpers/Test_BitHelper.cs index 3df976c4..25b8a52e 100644 --- a/tests/CommunityToolkit.HighPerformance.UnitTests/Helpers/Test_BitHelper.cs +++ b/tests/CommunityToolkit.HighPerformance.UnitTests/Helpers/Test_BitHelper.cs @@ -194,7 +194,7 @@ public void Test_BitHelper_SetRange_UInt32(byte start, byte length, uint flags) uint restored = BitHelper.SetRange(result, start, length, backup); Assert.AreEqual(extracted, flags); - Assert.AreEqual(restored, value); + Assert.AreEqual(value, restored); } [TestMethod] @@ -302,6 +302,6 @@ public void Test_BitHelper_SetRange_UInt64(byte start, byte length, ulong flags) ulong restored = BitHelper.SetRange(result, start, length, backup); Assert.AreEqual(extracted, flags); - Assert.AreEqual(restored, value); + Assert.AreEqual(value, restored); } } diff --git a/tests/CommunityToolkit.HighPerformance.UnitTests/Helpers/Test_ObjectMarshal.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Helpers/Test_ObjectMarshal.cs index 924bdc6b..89e34440 100644 --- a/tests/CommunityToolkit.HighPerformance.UnitTests/Helpers/Test_ObjectMarshal.cs +++ b/tests/CommunityToolkit.HighPerformance.UnitTests/Helpers/Test_ObjectMarshal.cs @@ -107,7 +107,7 @@ private static void Test(T value) success = obj.TryUnbox(out decimal test); Assert.IsFalse(success); - Assert.AreEqual(test, default); + Assert.AreEqual(default, test); result = ObjectMarshal.DangerousUnbox(obj); diff --git a/tests/CommunityToolkit.HighPerformance.UnitTests/Helpers/Test_ParallelHelper.ForEach.In.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Helpers/Test_ParallelHelper.ForEach.In.cs index 4c393c21..f9755a8a 100644 --- a/tests/CommunityToolkit.HighPerformance.UnitTests/Helpers/Test_ParallelHelper.ForEach.In.cs +++ b/tests/CommunityToolkit.HighPerformance.UnitTests/Helpers/Test_ParallelHelper.ForEach.In.cs @@ -31,7 +31,7 @@ public unsafe void Test_ParallelHelper_ForEach_In() expected += n; } - Assert.AreEqual(sum, expected, $"The sum doesn't match, was {sum} instead of {expected}"); + Assert.AreEqual(expected, sum, $"The sum doesn't match, was {sum} instead of {expected}"); } } diff --git a/tests/CommunityToolkit.HighPerformance.UnitTests/Helpers/Test_ParallelHelper.ForEach.In2D.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Helpers/Test_ParallelHelper.ForEach.In2D.cs index 73437722..bf7d798f 100644 --- a/tests/CommunityToolkit.HighPerformance.UnitTests/Helpers/Test_ParallelHelper.ForEach.In2D.cs +++ b/tests/CommunityToolkit.HighPerformance.UnitTests/Helpers/Test_ParallelHelper.ForEach.In2D.cs @@ -50,7 +50,7 @@ public unsafe void Test_ParallelHelper_ForEach_In2D( expected += n; } - Assert.AreEqual(sum, expected, $"The sum doesn't match, was {sum} instead of {expected}"); + Assert.AreEqual(expected, sum, $"The sum doesn't match, was {sum} instead of {expected}"); } /// diff --git a/tests/CommunityToolkit.HighPerformance.UnitTests/Memory/Test_Memory2D{T}.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Memory/Test_Memory2D{T}.cs index 399556c2..4e59996f 100644 --- a/tests/CommunityToolkit.HighPerformance.UnitTests/Memory/Test_Memory2D{T}.cs +++ b/tests/CommunityToolkit.HighPerformance.UnitTests/Memory/Test_Memory2D{T}.cs @@ -19,30 +19,30 @@ public void Test_Memory2DT_Empty() Memory2D empty1 = default; Assert.IsTrue(empty1.IsEmpty); - Assert.AreEqual(empty1.Length, 0); - Assert.AreEqual(empty1.Width, 0); - Assert.AreEqual(empty1.Height, 0); + Assert.AreEqual(0, empty1.Length); + Assert.AreEqual(0, empty1.Width); + Assert.AreEqual(0, empty1.Height); Memory2D empty2 = Memory2D.Empty; Assert.IsTrue(empty2.IsEmpty); - Assert.AreEqual(empty2.Length, 0); - Assert.AreEqual(empty2.Width, 0); - Assert.AreEqual(empty2.Height, 0); + Assert.AreEqual(0, empty2.Length); + Assert.AreEqual(0, empty2.Width); + Assert.AreEqual(0, empty2.Height); Memory2D empty3 = new int[4, 0]; Assert.IsTrue(empty3.IsEmpty); - Assert.AreEqual(empty3.Length, 0); - Assert.AreEqual(empty3.Width, 0); - Assert.AreEqual(empty3.Height, 4); + Assert.AreEqual(0, empty3.Length); + Assert.AreEqual(0, empty3.Width); + Assert.AreEqual(4, empty3.Height); Memory2D empty4 = new int[0, 7]; Assert.IsTrue(empty4.IsEmpty); - Assert.AreEqual(empty4.Length, 0); - Assert.AreEqual(empty4.Width, 7); - Assert.AreEqual(empty4.Height, 0); + Assert.AreEqual(0, empty4.Length); + Assert.AreEqual(7, empty4.Width); + Assert.AreEqual(0, empty4.Height); } [TestMethod] @@ -58,11 +58,11 @@ public void Test_Memory2DT_Array1DConstructor() Memory2D memory2d = new(array, 1, 2, 2, 1); Assert.IsFalse(memory2d.IsEmpty); - Assert.AreEqual(memory2d.Length, 4); - Assert.AreEqual(memory2d.Width, 2); - Assert.AreEqual(memory2d.Height, 2); - Assert.AreEqual(memory2d.Span[0, 0], 2); - Assert.AreEqual(memory2d.Span[1, 1], 6); + Assert.AreEqual(4, memory2d.Length); + Assert.AreEqual(2, memory2d.Width); + Assert.AreEqual(2, memory2d.Height); + Assert.AreEqual(2, memory2d.Span[0, 0]); + Assert.AreEqual(6, memory2d.Span[1, 1]); // Also ensure the right exceptions are thrown with invalid parameters, such as // negative indices, indices out of range, values that are too big, etc. @@ -90,11 +90,11 @@ public void Test_Memory2DT_Array2DConstructor_1() Memory2D memory2d = new(array); Assert.IsFalse(memory2d.IsEmpty); - Assert.AreEqual(memory2d.Length, 6); - Assert.AreEqual(memory2d.Width, 3); - Assert.AreEqual(memory2d.Height, 2); - Assert.AreEqual(memory2d.Span[0, 1], 2); - Assert.AreEqual(memory2d.Span[1, 2], 6); + Assert.AreEqual(6, memory2d.Length); + Assert.AreEqual(3, memory2d.Width); + Assert.AreEqual(2, memory2d.Height); + Assert.AreEqual(2, memory2d.Span[0, 1]); + Assert.AreEqual(6, memory2d.Span[1, 2]); // Here we test the check for covariance: we can't create a Memory2D from a U[,] array // where U is assignable to T (as in, U : T). This would cause a type safety violation on write. @@ -114,11 +114,11 @@ public void Test_Memory2DT_Array2DConstructor_2() Memory2D memory2d = new(array, 0, 1, 2, 2); Assert.IsFalse(memory2d.IsEmpty); - Assert.AreEqual(memory2d.Length, 4); - Assert.AreEqual(memory2d.Width, 2); - Assert.AreEqual(memory2d.Height, 2); - Assert.AreEqual(memory2d.Span[0, 0], 2); - Assert.AreEqual(memory2d.Span[1, 1], 6); + Assert.AreEqual(4, memory2d.Length); + Assert.AreEqual(2, memory2d.Width); + Assert.AreEqual(2, memory2d.Height); + Assert.AreEqual(2, memory2d.Span[0, 0]); + Assert.AreEqual(6, memory2d.Span[1, 1]); _ = Assert.ThrowsExactly(() => new Memory2D(new string[1, 2], 0, 0, 2, 2)); } @@ -142,11 +142,11 @@ public void Test_Memory2DT_Array3DConstructor_1() Memory2D memory2d = new(array, 1); Assert.IsFalse(memory2d.IsEmpty); - Assert.AreEqual(memory2d.Length, 6); - Assert.AreEqual(memory2d.Width, 3); - Assert.AreEqual(memory2d.Height, 2); - Assert.AreEqual(memory2d.Span[0, 1], 20); - Assert.AreEqual(memory2d.Span[1, 2], 60); + Assert.AreEqual(6, memory2d.Length); + Assert.AreEqual(3, memory2d.Width); + Assert.AreEqual(2, memory2d.Height); + Assert.AreEqual(20, memory2d.Span[0, 1]); + Assert.AreEqual(60, memory2d.Span[1, 2]); // A couple of tests for invalid parameters, ie. layers out of range _ = Assert.ThrowsExactly(() => new Memory2D(array, -1)); @@ -176,11 +176,11 @@ public void Test_Memory2DT_Array3DConstructor_2() Memory2D memory2d = new(array, 1, 0, 1, 2, 2); Assert.IsFalse(memory2d.IsEmpty); - Assert.AreEqual(memory2d.Length, 4); - Assert.AreEqual(memory2d.Width, 2); - Assert.AreEqual(memory2d.Height, 2); - Assert.AreEqual(memory2d.Span[0, 0], 20); - Assert.AreEqual(memory2d.Span[1, 1], 60); + Assert.AreEqual(4, memory2d.Length); + Assert.AreEqual(2, memory2d.Width); + Assert.AreEqual(2, memory2d.Height); + Assert.AreEqual(20, memory2d.Span[0, 0]); + Assert.AreEqual(60, memory2d.Span[1, 1]); // Same as above, testing a few cases with invalid parameters _ = Assert.ThrowsExactly(() => new Memory2D(array, -1, 1, 1, 1, 1)); @@ -210,11 +210,11 @@ public void Test_Memory2DT_MemoryConstructor() Memory2D memory2d = memory.AsMemory2D(1, 2, 2, 1); Assert.IsFalse(memory2d.IsEmpty); - Assert.AreEqual(memory2d.Length, 4); - Assert.AreEqual(memory2d.Width, 2); - Assert.AreEqual(memory2d.Height, 2); - Assert.AreEqual(memory2d.Span[0, 0], 2); - Assert.AreEqual(memory2d.Span[1, 1], 6); + Assert.AreEqual(4, memory2d.Length); + Assert.AreEqual(2, memory2d.Width); + Assert.AreEqual(2, memory2d.Height); + Assert.AreEqual(2, memory2d.Span[0, 0]); + Assert.AreEqual(6, memory2d.Span[1, 1]); _ = Assert.ThrowsExactly(() => memory.AsMemory2D(-99, 1, 1, 1)); _ = Assert.ThrowsExactly(() => memory.AsMemory2D(0, -10, 1, 1)); @@ -241,23 +241,23 @@ public void Test_Memory2DT_Slice_1() // Test a slice from a Memory2D with valid parameters Memory2D slice1 = memory2d.Slice(1, 1, 1, 2); - Assert.AreEqual(slice1.Length, 2); - Assert.AreEqual(slice1.Height, 1); - Assert.AreEqual(slice1.Width, 2); - Assert.AreEqual(slice1.Span[0, 0], 5); - Assert.AreEqual(slice1.Span[0, 1], 6); + Assert.AreEqual(2, slice1.Length); + Assert.AreEqual(1, slice1.Height); + Assert.AreEqual(2, slice1.Width); + Assert.AreEqual(5, slice1.Span[0, 0]); + Assert.AreEqual(6, slice1.Span[0, 1]); // Same above, but we test slicing a pre-sliced instance as well. This // is done to verify that the internal offsets are properly tracked // across multiple slicing operations, instead of just in the first. Memory2D slice2 = memory2d.Slice(0, 1, 2, 2); - Assert.AreEqual(slice2.Length, 4); - Assert.AreEqual(slice2.Height, 2); - Assert.AreEqual(slice2.Width, 2); - Assert.AreEqual(slice2.Span[0, 0], 2); - Assert.AreEqual(slice2.Span[1, 0], 5); - Assert.AreEqual(slice2.Span[1, 1], 6); + Assert.AreEqual(4, slice2.Length); + Assert.AreEqual(2, slice2.Height); + Assert.AreEqual(2, slice2.Width); + Assert.AreEqual(2, slice2.Span[0, 0]); + Assert.AreEqual(5, slice2.Span[1, 0]); + Assert.AreEqual(6, slice2.Span[1, 1]); // A few invalid slicing operations, with out of range parameters _ = Assert.ThrowsExactly(() => new Memory2D(array).Slice(-1, 1, 1, 1)); @@ -287,26 +287,26 @@ public void Test_Memory2DT_Slice_2() // Mostly the same test as above, just with different parameters Memory2D slice1 = memory2d.Slice(0, 0, 2, 2); - Assert.AreEqual(slice1.Length, 4); - Assert.AreEqual(slice1.Height, 2); - Assert.AreEqual(slice1.Width, 2); - Assert.AreEqual(slice1.Span[0, 0], 1); - Assert.AreEqual(slice1.Span[1, 1], 5); + Assert.AreEqual(4, slice1.Length); + Assert.AreEqual(2, slice1.Height); + Assert.AreEqual(2, slice1.Width); + Assert.AreEqual(1, slice1.Span[0, 0]); + Assert.AreEqual(5, slice1.Span[1, 1]); Memory2D slice2 = slice1.Slice(1, 0, 1, 2); - Assert.AreEqual(slice2.Length, 2); - Assert.AreEqual(slice2.Height, 1); - Assert.AreEqual(slice2.Width, 2); - Assert.AreEqual(slice2.Span[0, 0], 4); - Assert.AreEqual(slice2.Span[0, 1], 5); + Assert.AreEqual(2, slice2.Length); + Assert.AreEqual(1, slice2.Height); + Assert.AreEqual(2, slice2.Width); + Assert.AreEqual(4, slice2.Span[0, 0]); + Assert.AreEqual(5, slice2.Span[0, 1]); Memory2D slice3 = slice2.Slice(0, 1, 1, 1); - Assert.AreEqual(slice3.Length, 1); - Assert.AreEqual(slice3.Height, 1); - Assert.AreEqual(slice3.Width, 1); - Assert.AreEqual(slice3.Span[0, 0], 5); + Assert.AreEqual(1, slice3.Length); + Assert.AreEqual(1, slice3.Height); + Assert.AreEqual(1, slice3.Width); + Assert.AreEqual(5, slice3.Span[0, 0]); } [TestMethod] @@ -349,7 +349,7 @@ public void Test_Memory2DT_TryGetMemory_2() Assert.IsTrue(success); Assert.AreEqual(memory.Length, array.Length); - Assert.AreEqual(memory.Span[2], 3); + Assert.AreEqual(3, memory.Span[2]); } #if NET6_0_OR_GREATER @@ -367,7 +367,7 @@ public void Test_Memory2DT_TryGetMemory_3() Assert.IsTrue(success); Assert.AreEqual(memory.Length, data.Length); - Assert.AreEqual(memory.Span[2], 3); + Assert.AreEqual(3, memory.Span[2]); } #endif @@ -382,8 +382,8 @@ public unsafe void Test_Memory2DT_Pin_1() using System.Buffers.MemoryHandle pin = memory2d.Pin(); - Assert.AreEqual(((int*)pin.Pointer)[0], 1); - Assert.AreEqual(((int*)pin.Pointer)[3], 4); + Assert.AreEqual(1, ((int*)pin.Pointer)[0]); + Assert.AreEqual(4, ((int*)pin.Pointer)[3]); } [TestMethod] @@ -396,8 +396,8 @@ public unsafe void Test_Memory2DT_Pin_2() using System.Buffers.MemoryHandle pin = memory2d.Pin(); - Assert.AreEqual(((int*)pin.Pointer)[0], 1); - Assert.AreEqual(((int*)pin.Pointer)[3], 4); + Assert.AreEqual(1, ((int*)pin.Pointer)[0]); + Assert.AreEqual(4, ((int*)pin.Pointer)[3]); } [TestMethod] @@ -435,8 +435,8 @@ public void Test_Memory2DT_ToArray_2() int[,] copy = memory2d.ToArray(); - Assert.AreEqual(copy.GetLength(0), 2); - Assert.AreEqual(copy.GetLength(1), 2); + Assert.AreEqual(2, copy.GetLength(0)); + Assert.AreEqual(2, copy.GetLength(1)); int[,] expected = { @@ -476,7 +476,7 @@ public void Test_Memory2DT_Equals() public void Test_Memory2DT_GetHashCode() { // An empty Memory2D has just 0 as the hashcode - Assert.AreEqual(Memory2D.Empty.GetHashCode(), 0); + Assert.AreEqual(0, Memory2D.Empty.GetHashCode()); int[,] array = { @@ -514,7 +514,7 @@ public void Test_Memory2DT_ToString() const string expected = "CommunityToolkit.HighPerformance.Memory2D[2, 3]"; - Assert.AreEqual(text, expected); + Assert.AreEqual(expected, text); } #if NET6_0_OR_GREATER diff --git a/tests/CommunityToolkit.HighPerformance.UnitTests/Memory/Test_ReadOnlyMemory2D{T}.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Memory/Test_ReadOnlyMemory2D{T}.cs index d5cfd04b..d491343f 100644 --- a/tests/CommunityToolkit.HighPerformance.UnitTests/Memory/Test_ReadOnlyMemory2D{T}.cs +++ b/tests/CommunityToolkit.HighPerformance.UnitTests/Memory/Test_ReadOnlyMemory2D{T}.cs @@ -24,16 +24,16 @@ public void Test_ReadOnlyMemory2DT_Empty() ReadOnlyMemory2D empty1 = default; Assert.IsTrue(empty1.IsEmpty); - Assert.AreEqual(empty1.Length, 0); - Assert.AreEqual(empty1.Width, 0); - Assert.AreEqual(empty1.Height, 0); + Assert.AreEqual(0, empty1.Length); + Assert.AreEqual(0, empty1.Width); + Assert.AreEqual(0, empty1.Height); ReadOnlyMemory2D empty2 = ReadOnlyMemory2D.Empty; Assert.IsTrue(empty2.IsEmpty); - Assert.AreEqual(empty2.Length, 0); - Assert.AreEqual(empty2.Width, 0); - Assert.AreEqual(empty2.Height, 0); + Assert.AreEqual(0, empty2.Length); + Assert.AreEqual(0, empty2.Width); + Assert.AreEqual(0, empty2.Height); } [TestMethod] @@ -47,11 +47,11 @@ public void Test_ReadOnlyMemory2DT_Array1DConstructor() ReadOnlyMemory2D memory2d = new(array, 1, 2, 2, 1); Assert.IsFalse(memory2d.IsEmpty); - Assert.AreEqual(memory2d.Length, 4); - Assert.AreEqual(memory2d.Width, 2); - Assert.AreEqual(memory2d.Height, 2); - Assert.AreEqual(memory2d.Span[0, 0], 2); - Assert.AreEqual(memory2d.Span[1, 1], 6); + Assert.AreEqual(4, memory2d.Length); + Assert.AreEqual(2, memory2d.Width); + Assert.AreEqual(2, memory2d.Height); + Assert.AreEqual(2, memory2d.Span[0, 0]); + Assert.AreEqual(6, memory2d.Span[1, 1]); // Here we check to ensure a covariant array conversion is allowed for ReadOnlyMemory2D _ = new ReadOnlyMemory2D(new string[1], 1, 1); @@ -78,11 +78,11 @@ public void Test_ReadOnlyMemory2DT_Array2DConstructor_1() ReadOnlyMemory2D memory2d = new(array); Assert.IsFalse(memory2d.IsEmpty); - Assert.AreEqual(memory2d.Length, 6); - Assert.AreEqual(memory2d.Width, 3); - Assert.AreEqual(memory2d.Height, 2); - Assert.AreEqual(memory2d.Span[0, 1], 2); - Assert.AreEqual(memory2d.Span[1, 2], 6); + Assert.AreEqual(6, memory2d.Length); + Assert.AreEqual(3, memory2d.Width); + Assert.AreEqual(2, memory2d.Height); + Assert.AreEqual(2, memory2d.Span[0, 1]); + Assert.AreEqual(6, memory2d.Span[1, 2]); _ = new ReadOnlyMemory2D(new string[1, 2]); } @@ -99,11 +99,11 @@ public void Test_ReadOnlyMemory2DT_Array2DConstructor_2() ReadOnlyMemory2D memory2d = new(array, 0, 1, 2, 2); Assert.IsFalse(memory2d.IsEmpty); - Assert.AreEqual(memory2d.Length, 4); - Assert.AreEqual(memory2d.Width, 2); - Assert.AreEqual(memory2d.Height, 2); - Assert.AreEqual(memory2d.Span[0, 0], 2); - Assert.AreEqual(memory2d.Span[1, 1], 6); + Assert.AreEqual(4, memory2d.Length); + Assert.AreEqual(2, memory2d.Width); + Assert.AreEqual(2, memory2d.Height); + Assert.AreEqual(2, memory2d.Span[0, 0]); + Assert.AreEqual(6, memory2d.Span[1, 1]); _ = new ReadOnlyMemory2D(new string[1, 2]); @@ -128,11 +128,11 @@ public void Test_ReadOnlyMemory2DT_Array3DConstructor_1() ReadOnlyMemory2D memory2d = new(array, 1); Assert.IsFalse(memory2d.IsEmpty); - Assert.AreEqual(memory2d.Length, 6); - Assert.AreEqual(memory2d.Width, 3); - Assert.AreEqual(memory2d.Height, 2); - Assert.AreEqual(memory2d.Span[0, 1], 20); - Assert.AreEqual(memory2d.Span[1, 2], 60); + Assert.AreEqual(6, memory2d.Length); + Assert.AreEqual(3, memory2d.Width); + Assert.AreEqual(2, memory2d.Height); + Assert.AreEqual(20, memory2d.Span[0, 1]); + Assert.AreEqual(60, memory2d.Span[1, 2]); _ = Assert.ThrowsExactly(() => new ReadOnlyMemory2D(array, -1)); _ = Assert.ThrowsExactly(() => new ReadOnlyMemory2D(array, 20)); @@ -157,11 +157,11 @@ public void Test_ReadOnlyMemory2DT_Array3DConstructor_2() ReadOnlyMemory2D memory2d = new(array, 1, 0, 1, 2, 2); Assert.IsFalse(memory2d.IsEmpty); - Assert.AreEqual(memory2d.Length, 4); - Assert.AreEqual(memory2d.Width, 2); - Assert.AreEqual(memory2d.Height, 2); - Assert.AreEqual(memory2d.Span[0, 0], 20); - Assert.AreEqual(memory2d.Span[1, 1], 60); + Assert.AreEqual(4, memory2d.Length); + Assert.AreEqual(2, memory2d.Width); + Assert.AreEqual(2, memory2d.Height); + Assert.AreEqual(20, memory2d.Span[0, 0]); + Assert.AreEqual(60, memory2d.Span[1, 1]); _ = Assert.ThrowsExactly(() => new ReadOnlyMemory2D(array, -1, 1, 1, 1, 1)); _ = Assert.ThrowsExactly(() => new ReadOnlyMemory2D(array, 1, -1, 1, 1, 1)); @@ -186,11 +186,11 @@ public void Test_ReadOnlyMemory2DT_ReadOnlyMemoryConstructor() ReadOnlyMemory2D memory2d = memory.AsMemory2D(1, 2, 2, 1); Assert.IsFalse(memory2d.IsEmpty); - Assert.AreEqual(memory2d.Length, 4); - Assert.AreEqual(memory2d.Width, 2); - Assert.AreEqual(memory2d.Height, 2); - Assert.AreEqual(memory2d.Span[0, 0], 2); - Assert.AreEqual(memory2d.Span[1, 1], 6); + Assert.AreEqual(4, memory2d.Length); + Assert.AreEqual(2, memory2d.Width); + Assert.AreEqual(2, memory2d.Height); + Assert.AreEqual(2, memory2d.Span[0, 0]); + Assert.AreEqual(6, memory2d.Span[1, 1]); _ = Assert.ThrowsExactly(() => memory.AsMemory2D(-99, 1, 1, 1)); _ = Assert.ThrowsExactly(() => memory.AsMemory2D(0, -10, 1, 1)); @@ -216,20 +216,20 @@ public void Test_ReadOnlyMemory2DT_Slice_1() ReadOnlyMemory2D slice1 = memory2d.Slice(1, 1, 1, 2); - Assert.AreEqual(slice1.Length, 2); - Assert.AreEqual(slice1.Height, 1); - Assert.AreEqual(slice1.Width, 2); - Assert.AreEqual(slice1.Span[0, 0], 5); - Assert.AreEqual(slice1.Span[0, 1], 6); + Assert.AreEqual(2, slice1.Length); + Assert.AreEqual(1, slice1.Height); + Assert.AreEqual(2, slice1.Width); + Assert.AreEqual(5, slice1.Span[0, 0]); + Assert.AreEqual(6, slice1.Span[0, 1]); ReadOnlyMemory2D slice2 = memory2d.Slice(0, 1, 2, 2); - Assert.AreEqual(slice2.Length, 4); - Assert.AreEqual(slice2.Height, 2); - Assert.AreEqual(slice2.Width, 2); - Assert.AreEqual(slice2.Span[0, 0], 2); - Assert.AreEqual(slice2.Span[1, 0], 5); - Assert.AreEqual(slice2.Span[1, 1], 6); + Assert.AreEqual(4, slice2.Length); + Assert.AreEqual(2, slice2.Height); + Assert.AreEqual(2, slice2.Width); + Assert.AreEqual(2, slice2.Span[0, 0]); + Assert.AreEqual(5, slice2.Span[1, 0]); + Assert.AreEqual(6, slice2.Span[1, 1]); _ = Assert.ThrowsExactly(() => new ReadOnlyMemory2D(array).Slice(-1, 1, 1, 1)); _ = Assert.ThrowsExactly(() => new ReadOnlyMemory2D(array).Slice(1, -1, 1, 1)); @@ -257,26 +257,26 @@ public void Test_ReadOnlyMemory2DT_Slice_2() ReadOnlyMemory2D slice1 = memory2d.Slice(0, 0, 2, 2); - Assert.AreEqual(slice1.Length, 4); - Assert.AreEqual(slice1.Height, 2); - Assert.AreEqual(slice1.Width, 2); - Assert.AreEqual(slice1.Span[0, 0], 1); - Assert.AreEqual(slice1.Span[1, 1], 5); + Assert.AreEqual(4, slice1.Length); + Assert.AreEqual(2, slice1.Height); + Assert.AreEqual(2, slice1.Width); + Assert.AreEqual(1, slice1.Span[0, 0]); + Assert.AreEqual(5, slice1.Span[1, 1]); ReadOnlyMemory2D slice2 = slice1.Slice(1, 0, 1, 2); - Assert.AreEqual(slice2.Length, 2); - Assert.AreEqual(slice2.Height, 1); - Assert.AreEqual(slice2.Width, 2); - Assert.AreEqual(slice2.Span[0, 0], 4); - Assert.AreEqual(slice2.Span[0, 1], 5); + Assert.AreEqual(2, slice2.Length); + Assert.AreEqual(1, slice2.Height); + Assert.AreEqual(2, slice2.Width); + Assert.AreEqual(4, slice2.Span[0, 0]); + Assert.AreEqual(5, slice2.Span[0, 1]); ReadOnlyMemory2D slice3 = slice2.Slice(0, 1, 1, 1); - Assert.AreEqual(slice3.Length, 1); - Assert.AreEqual(slice3.Height, 1); - Assert.AreEqual(slice3.Width, 1); - Assert.AreEqual(slice3.Span[0, 0], 5); + Assert.AreEqual(1, slice3.Length); + Assert.AreEqual(1, slice3.Height); + Assert.AreEqual(1, slice3.Width); + Assert.AreEqual(5, slice3.Span[0, 0]); } [TestMethod] @@ -313,7 +313,7 @@ public void Test_ReadOnlyMemory2DT_TryGetReadOnlyMemory_2() Assert.IsTrue(success); Assert.AreEqual(memory.Length, array.Length); - Assert.AreEqual(memory.Span[2], 3); + Assert.AreEqual(3, memory.Span[2]); } #if NET6_0_OR_GREATER @@ -328,7 +328,7 @@ public void Test_ReadOnlyMemory2DT_TryGetReadOnlyMemory_3() Assert.IsTrue(success); Assert.AreEqual(memory.Length, data.Length); - Assert.AreEqual(memory.Span[2], 3); + Assert.AreEqual(3, memory.Span[2]); } #endif @@ -341,8 +341,8 @@ public unsafe void Test_ReadOnlyMemory2DT_Pin_1() using System.Buffers.MemoryHandle pin = memory2d.Pin(); - Assert.AreEqual(((int*)pin.Pointer)[0], 1); - Assert.AreEqual(((int*)pin.Pointer)[3], 4); + Assert.AreEqual(1, ((int*)pin.Pointer)[0]); + Assert.AreEqual(4, ((int*)pin.Pointer)[3]); } [TestMethod] @@ -354,8 +354,8 @@ public unsafe void Test_ReadOnlyMemory2DT_Pin_2() using System.Buffers.MemoryHandle pin = memory2d.Pin(); - Assert.AreEqual(((int*)pin.Pointer)[0], 1); - Assert.AreEqual(((int*)pin.Pointer)[3], 4); + Assert.AreEqual(1, ((int*)pin.Pointer)[0]); + Assert.AreEqual(4, ((int*)pin.Pointer)[3]); } [TestMethod] @@ -390,8 +390,8 @@ public void Test_ReadOnlyMemory2DT_ToArray_2() int[,] copy = memory2d.ToArray(); - Assert.AreEqual(copy.GetLength(0), 2); - Assert.AreEqual(copy.GetLength(1), 2); + Assert.AreEqual(2, copy.GetLength(0)); + Assert.AreEqual(2, copy.GetLength(1)); int[,] expected = { @@ -427,7 +427,7 @@ public void Test_ReadOnlyMemory2DT_Equals() [TestMethod] public void Test_ReadOnlyMemory2DT_GetHashCode() { - Assert.AreEqual(ReadOnlyMemory2D.Empty.GetHashCode(), 0); + Assert.AreEqual(0, ReadOnlyMemory2D.Empty.GetHashCode()); int[,] array = { @@ -462,7 +462,7 @@ public void Test_ReadOnlyMemory2DT_ToString() const string expected = "CommunityToolkit.HighPerformance.ReadOnlyMemory2D[2, 3]"; - Assert.AreEqual(text, expected); + Assert.AreEqual(expected, text); } #if NET6_0_OR_GREATER diff --git a/tests/CommunityToolkit.HighPerformance.UnitTests/Memory/Test_ReadOnlySpan2D{T}.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Memory/Test_ReadOnlySpan2D{T}.cs index c46c78e5..97092c06 100644 --- a/tests/CommunityToolkit.HighPerformance.UnitTests/Memory/Test_ReadOnlySpan2D{T}.cs +++ b/tests/CommunityToolkit.HighPerformance.UnitTests/Memory/Test_ReadOnlySpan2D{T}.cs @@ -26,16 +26,16 @@ public void Test_ReadOnlySpan2DT_Empty() ReadOnlySpan2D empty1 = default; Assert.IsTrue(empty1.IsEmpty); - Assert.AreEqual(empty1.Length, 0); - Assert.AreEqual(empty1.Width, 0); - Assert.AreEqual(empty1.Height, 0); + Assert.AreEqual(0, empty1.Length); + Assert.AreEqual(0, empty1.Width); + Assert.AreEqual(0, empty1.Height); ReadOnlySpan2D empty2 = ReadOnlySpan2D.Empty; Assert.IsTrue(empty2.IsEmpty); - Assert.AreEqual(empty2.Length, 0); - Assert.AreEqual(empty2.Width, 0); - Assert.AreEqual(empty2.Height, 0); + Assert.AreEqual(0, empty2.Length); + Assert.AreEqual(0, empty2.Width); + Assert.AreEqual(0, empty2.Height); } #if NET6_0_OR_GREATER @@ -55,11 +55,11 @@ public unsafe void Test_ReadOnlySpan2DT_RefConstructor() ReadOnlySpan2D span2d = ReadOnlySpan2D.DangerousCreate(span[0], 2, 3, 0); Assert.IsFalse(span2d.IsEmpty); - Assert.AreEqual(span2d.Length, 6); - Assert.AreEqual(span2d.Width, 3); - Assert.AreEqual(span2d.Height, 2); - Assert.AreEqual(span2d[0, 0], 1); - Assert.AreEqual(span2d[1, 2], 6); + Assert.AreEqual(6, span2d.Length); + Assert.AreEqual(3, span2d.Width); + Assert.AreEqual(2, span2d.Height); + Assert.AreEqual(1, span2d[0, 0]); + Assert.AreEqual(6, span2d[1, 2]); _ = Assert.ThrowsExactly(() => ReadOnlySpan2D.DangerousCreate(Unsafe.AsRef(null), -1, 0, 0)); _ = Assert.ThrowsExactly(() => ReadOnlySpan2D.DangerousCreate(Unsafe.AsRef(null), 1, -2, 0)); @@ -83,11 +83,11 @@ public unsafe void Test_ReadOnlySpan2DT_PtrConstructor() ReadOnlySpan2D span2d = new(ptr, 2, 3, 0); Assert.IsFalse(span2d.IsEmpty); - Assert.AreEqual(span2d.Length, 6); - Assert.AreEqual(span2d.Width, 3); - Assert.AreEqual(span2d.Height, 2); - Assert.AreEqual(span2d[0, 0], 1); - Assert.AreEqual(span2d[1, 2], 6); + Assert.AreEqual(6, span2d.Length); + Assert.AreEqual(3, span2d.Width); + Assert.AreEqual(2, span2d.Height); + Assert.AreEqual(1, span2d[0, 0]); + Assert.AreEqual(6, span2d[1, 2]); _ = Assert.ThrowsExactly(() => new ReadOnlySpan2D((void*)0, -1, 0, 0)); _ = Assert.ThrowsExactly(() => new ReadOnlySpan2D((void*)0, 1, -2, 0)); @@ -106,11 +106,11 @@ public void Test_ReadOnlySpan2DT_Array1DConstructor() ReadOnlySpan2D span2d = new(array, 1, 2, 2, 1); Assert.IsFalse(span2d.IsEmpty); - Assert.AreEqual(span2d.Length, 4); - Assert.AreEqual(span2d.Width, 2); - Assert.AreEqual(span2d.Height, 2); - Assert.AreEqual(span2d[0, 0], 2); - Assert.AreEqual(span2d[1, 1], 6); + Assert.AreEqual(4, span2d.Length); + Assert.AreEqual(2, span2d.Width); + Assert.AreEqual(2, span2d.Height); + Assert.AreEqual(2, span2d[0, 0]); + Assert.AreEqual(6, span2d[1, 1]); // Same for ReadOnlyMemory2D, we need to check that covariant array conversions are allowed _ = new ReadOnlySpan2D(new string[1], 1, 1); @@ -134,11 +134,11 @@ public void Test_ReadOnlySpan2DT_Array2DConstructor_1() ReadOnlySpan2D span2d = new(array); Assert.IsFalse(span2d.IsEmpty); - Assert.AreEqual(span2d.Length, 6); - Assert.AreEqual(span2d.Width, 3); - Assert.AreEqual(span2d.Height, 2); - Assert.AreEqual(span2d[0, 1], 2); - Assert.AreEqual(span2d[1, 2], 6); + Assert.AreEqual(6, span2d.Length); + Assert.AreEqual(3, span2d.Width); + Assert.AreEqual(2, span2d.Height); + Assert.AreEqual(2, span2d[0, 1]); + Assert.AreEqual(6, span2d[1, 2]); _ = new ReadOnlySpan2D(new string[1, 2]); } @@ -155,11 +155,11 @@ public void Test_ReadOnlySpan2DT_Array2DConstructor_2() ReadOnlySpan2D span2d = new(array, 0, 1, 2, 2); Assert.IsFalse(span2d.IsEmpty); - Assert.AreEqual(span2d.Length, 4); - Assert.AreEqual(span2d.Width, 2); - Assert.AreEqual(span2d.Height, 2); - Assert.AreEqual(span2d[0, 0], 2); - Assert.AreEqual(span2d[1, 1], 6); + Assert.AreEqual(4, span2d.Length); + Assert.AreEqual(2, span2d.Width); + Assert.AreEqual(2, span2d.Height); + Assert.AreEqual(2, span2d[0, 0]); + Assert.AreEqual(6, span2d[1, 1]); _ = new ReadOnlySpan2D(new string[1, 2]); @@ -184,12 +184,12 @@ public void Test_ReadOnlySpan2DT_Array3DConstructor_1() ReadOnlySpan2D span2d = new(array, 1); Assert.IsFalse(span2d.IsEmpty); - Assert.AreEqual(span2d.Length, 6); - Assert.AreEqual(span2d.Width, 3); - Assert.AreEqual(span2d.Height, 2); - Assert.AreEqual(span2d[0, 0], 10); - Assert.AreEqual(span2d[0, 1], 20); - Assert.AreEqual(span2d[1, 2], 60); + Assert.AreEqual(6, span2d.Length); + Assert.AreEqual(3, span2d.Width); + Assert.AreEqual(2, span2d.Height); + Assert.AreEqual(10, span2d[0, 0]); + Assert.AreEqual(20, span2d[0, 1]); + Assert.AreEqual(60, span2d[1, 2]); _ = Assert.ThrowsExactly(() => new ReadOnlySpan2D(array, -1)); _ = Assert.ThrowsExactly(() => new ReadOnlySpan2D(array, 20)); @@ -213,12 +213,12 @@ public void Test_ReadOnlySpan2DT_Array3DConstructor_2() ReadOnlySpan2D span2d = new(array, 1, 0, 1, 2, 2); Assert.IsFalse(span2d.IsEmpty); - Assert.AreEqual(span2d.Length, 4); - Assert.AreEqual(span2d.Width, 2); - Assert.AreEqual(span2d.Height, 2); - Assert.AreEqual(span2d[0, 0], 20); - Assert.AreEqual(span2d[0, 1], 30); - Assert.AreEqual(span2d[1, 1], 60); + Assert.AreEqual(4, span2d.Length); + Assert.AreEqual(2, span2d.Width); + Assert.AreEqual(2, span2d.Height); + Assert.AreEqual(20, span2d[0, 0]); + Assert.AreEqual(30, span2d[0, 1]); + Assert.AreEqual(60, span2d[1, 1]); _ = Assert.ThrowsExactly(() => new ReadOnlySpan2D(array, -1, 1, 1, 1, 1)); _ = Assert.ThrowsExactly(() => new ReadOnlySpan2D(array, 1, -1, 1, 1, 1)); @@ -437,7 +437,7 @@ public unsafe void Test_ReadOnlySpan2DT_Range_Indexer_1() ReadOnlySpan2D span2d = new(array); ReadOnlySpan2D slice = span2d[1.., 1..]; - Assert.AreEqual(slice.Length, 9); + Assert.AreEqual(9, slice.Length); Assert.IsTrue(Unsafe.AreSame(ref array[1, 1], ref Unsafe.AsRef(in slice[0, 0]))); Assert.IsTrue(Unsafe.AreSame(ref array[3, 3], ref Unsafe.AsRef(in slice[2, 2]))); } @@ -450,7 +450,7 @@ public unsafe void Test_ReadOnlySpan2DT_Range_Indexer_2() ReadOnlySpan2D span2d = new(array); ReadOnlySpan2D slice = span2d[0..^2, 1..^1]; - Assert.AreEqual(slice.Length, 4); + Assert.AreEqual(4, slice.Length); Assert.IsTrue(Unsafe.AreSame(ref array[0, 1], ref Unsafe.AsRef(in slice[0, 0]))); Assert.IsTrue(Unsafe.AreSame(ref array[1, 2], ref Unsafe.AsRef(in slice[1, 1]))); } @@ -482,20 +482,20 @@ public void Test_ReadOnlySpan2DT_Slice_1() ReadOnlySpan2D slice1 = span2d.Slice(1, 1, 1, 2); - Assert.AreEqual(slice1.Length, 2); - Assert.AreEqual(slice1.Height, 1); - Assert.AreEqual(slice1.Width, 2); - Assert.AreEqual(slice1[0, 0], 5); - Assert.AreEqual(slice1[0, 1], 6); + Assert.AreEqual(2, slice1.Length); + Assert.AreEqual(1, slice1.Height); + Assert.AreEqual(2, slice1.Width); + Assert.AreEqual(5, slice1[0, 0]); + Assert.AreEqual(6, slice1[0, 1]); ReadOnlySpan2D slice2 = span2d.Slice(0, 1, 2, 2); - Assert.AreEqual(slice2.Length, 4); - Assert.AreEqual(slice2.Height, 2); - Assert.AreEqual(slice2.Width, 2); - Assert.AreEqual(slice2[0, 0], 2); - Assert.AreEqual(slice2[1, 0], 5); - Assert.AreEqual(slice2[1, 1], 6); + Assert.AreEqual(4, slice2.Length); + Assert.AreEqual(2, slice2.Height); + Assert.AreEqual(2, slice2.Width); + Assert.AreEqual(2, slice2[0, 0]); + Assert.AreEqual(5, slice2[1, 0]); + Assert.AreEqual(6, slice2[1, 1]); _ = Assert.ThrowsExactly(() => new ReadOnlySpan2D(array).Slice(-1, 1, 1, 1)); _ = Assert.ThrowsExactly(() => new ReadOnlySpan2D(array).Slice(1, -1, 1, 1)); @@ -519,26 +519,26 @@ public void Test_ReadOnlySpan2DT_Slice_2() ReadOnlySpan2D slice1 = span2d.Slice(0, 0, 2, 2); - Assert.AreEqual(slice1.Length, 4); - Assert.AreEqual(slice1.Height, 2); - Assert.AreEqual(slice1.Width, 2); - Assert.AreEqual(slice1[0, 0], 1); - Assert.AreEqual(slice1[1, 1], 5); + Assert.AreEqual(4, slice1.Length); + Assert.AreEqual(2, slice1.Height); + Assert.AreEqual(2, slice1.Width); + Assert.AreEqual(1, slice1[0, 0]); + Assert.AreEqual(5, slice1[1, 1]); ReadOnlySpan2D slice2 = slice1.Slice(1, 0, 1, 2); - Assert.AreEqual(slice2.Length, 2); - Assert.AreEqual(slice2.Height, 1); - Assert.AreEqual(slice2.Width, 2); - Assert.AreEqual(slice2[0, 0], 4); - Assert.AreEqual(slice2[0, 1], 5); + Assert.AreEqual(2, slice2.Length); + Assert.AreEqual(1, slice2.Height); + Assert.AreEqual(2, slice2.Width); + Assert.AreEqual(4, slice2[0, 0]); + Assert.AreEqual(5, slice2[0, 1]); ReadOnlySpan2D slice3 = slice2.Slice(0, 1, 1, 1); - Assert.AreEqual(slice3.Length, 1); - Assert.AreEqual(slice3.Height, 1); - Assert.AreEqual(slice3.Width, 1); - Assert.AreEqual(slice3[0, 0], 5); + Assert.AreEqual(1, slice3.Length); + Assert.AreEqual(1, slice3.Height); + Assert.AreEqual(1, slice3.Width); + Assert.AreEqual(5, slice3[0, 0]); } #if NET6_0_OR_GREATER @@ -605,7 +605,7 @@ public void Test_ReadOnlySpan2DT_TryGetSpan_From1DArray_3() bool success = span2d.TryGetSpan(out ReadOnlySpan span); Assert.IsFalse(success); - Assert.AreEqual(span.Length, 0); + Assert.AreEqual(0, span.Length); } [TestMethod] @@ -624,7 +624,7 @@ public void Test_ReadOnlySpan2DT_TryGetReadOnlySpan_From2DArray_1() #if NETFRAMEWORK // Can't get a ReadOnlySpan over a T[,] array on .NET Standard 2.0 Assert.IsFalse(success); - Assert.AreEqual(span.Length, 0); + Assert.AreEqual(0, span.Length); #else Assert.IsTrue(success); Assert.AreEqual(span.Length, span2d.Length); @@ -680,8 +680,8 @@ public void Test_ReadOnlySpan2DT_ToArray_2() int[,] copy = span2d.ToArray(); - Assert.AreEqual(copy.GetLength(0), 2); - Assert.AreEqual(copy.GetLength(1), 2); + Assert.AreEqual(2, copy.GetLength(0)); + Assert.AreEqual(2, copy.GetLength(1)); int[,] expected = { @@ -741,7 +741,7 @@ public void Test_ReadOnlySpan2DT_ToString() const string expected = "CommunityToolkit.HighPerformance.ReadOnlySpan2D[2, 3]"; - Assert.AreEqual(text, expected); + Assert.AreEqual(expected, text); } [TestMethod] diff --git a/tests/CommunityToolkit.HighPerformance.UnitTests/Memory/Test_Span2D{T}.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Memory/Test_Span2D{T}.cs index 89f5cc41..48d6832f 100644 --- a/tests/CommunityToolkit.HighPerformance.UnitTests/Memory/Test_Span2D{T}.cs +++ b/tests/CommunityToolkit.HighPerformance.UnitTests/Memory/Test_Span2D{T}.cs @@ -20,30 +20,30 @@ public void Test_Span2DT_Empty() Span2D empty1 = default; Assert.IsTrue(empty1.IsEmpty); - Assert.AreEqual(empty1.Length, 0); - Assert.AreEqual(empty1.Width, 0); - Assert.AreEqual(empty1.Height, 0); + Assert.AreEqual(0, empty1.Length); + Assert.AreEqual(0, empty1.Width); + Assert.AreEqual(0, empty1.Height); Span2D empty2 = Span2D.Empty; Assert.IsTrue(empty2.IsEmpty); - Assert.AreEqual(empty2.Length, 0); - Assert.AreEqual(empty2.Width, 0); - Assert.AreEqual(empty2.Height, 0); + Assert.AreEqual(0, empty2.Length); + Assert.AreEqual(0, empty2.Width); + Assert.AreEqual(0, empty2.Height); Span2D empty3 = new int[4, 0]; Assert.IsTrue(empty3.IsEmpty); - Assert.AreEqual(empty3.Length, 0); - Assert.AreEqual(empty3.Width, 0); - Assert.AreEqual(empty3.Height, 4); + Assert.AreEqual(0, empty3.Length); + Assert.AreEqual(0, empty3.Width); + Assert.AreEqual(4, empty3.Height); Span2D empty4 = new int[0, 7]; Assert.IsTrue(empty4.IsEmpty); - Assert.AreEqual(empty4.Length, 0); - Assert.AreEqual(empty4.Width, 7); - Assert.AreEqual(empty4.Height, 0); + Assert.AreEqual(0, empty4.Length); + Assert.AreEqual(7, empty4.Width); + Assert.AreEqual(0, empty4.Height); } #if NET6_0_OR_GREATER @@ -65,16 +65,16 @@ public unsafe void Test_Span2DT_RefConstructor() Span2D span2d = Span2D.DangerousCreate(ref span[0], 2, 3, 0); Assert.IsFalse(span2d.IsEmpty); - Assert.AreEqual(span2d.Length, 6); - Assert.AreEqual(span2d.Width, 3); - Assert.AreEqual(span2d.Height, 2); + Assert.AreEqual(6, span2d.Length); + Assert.AreEqual(3, span2d.Width); + Assert.AreEqual(2, span2d.Height); span2d[0, 0] = 99; span2d[1, 2] = 101; // Validate that those values were mapped to the right spot in the target span - Assert.AreEqual(span[0], 99); - Assert.AreEqual(span[5], 101); + Assert.AreEqual(99, span[0]); + Assert.AreEqual(101, span[5]); // A few cases with invalid indices _ = Assert.ThrowsExactly(() => Span2D.DangerousCreate(ref Unsafe.AsRef(null), -1, 0, 0)); @@ -100,15 +100,15 @@ public unsafe void Test_Span2DT_PtrConstructor() Span2D span2d = new(ptr, 2, 3, 0); Assert.IsFalse(span2d.IsEmpty); - Assert.AreEqual(span2d.Length, 6); - Assert.AreEqual(span2d.Width, 3); - Assert.AreEqual(span2d.Height, 2); + Assert.AreEqual(6, span2d.Length); + Assert.AreEqual(3, span2d.Width); + Assert.AreEqual(2, span2d.Height); span2d[0, 0] = 99; span2d[1, 2] = 101; - Assert.AreEqual(ptr[0], 99); - Assert.AreEqual(ptr[5], 101); + Assert.AreEqual(99, ptr[0]); + Assert.AreEqual(101, ptr[5]); _ = Assert.ThrowsExactly(() => new Span2D((void*)0, -1, 0, 0)); _ = Assert.ThrowsExactly(() => new Span2D((void*)0, 1, -2, 0)); @@ -128,15 +128,15 @@ public void Test_Span2DT_Array1DConstructor() Span2D span2d = new(array, 1, 2, 2, 1); Assert.IsFalse(span2d.IsEmpty); - Assert.AreEqual(span2d.Length, 4); - Assert.AreEqual(span2d.Width, 2); - Assert.AreEqual(span2d.Height, 2); + Assert.AreEqual(4, span2d.Length); + Assert.AreEqual(2, span2d.Width); + Assert.AreEqual(2, span2d.Height); span2d[0, 0] = 99; span2d[1, 1] = 101; - Assert.AreEqual(array[1], 99); - Assert.AreEqual(array[5], 101); + Assert.AreEqual(99, array[1]); + Assert.AreEqual(101, array[5]); // The first check fails due to the array covariance test mentioned in the Memory2D tests. // The others just validate a number of cases with invalid arguments (eg. out of range). @@ -161,15 +161,15 @@ public void Test_Span2DT_Array2DConstructor_1() Span2D span2d = new(array); Assert.IsFalse(span2d.IsEmpty); - Assert.AreEqual(span2d.Length, 6); - Assert.AreEqual(span2d.Width, 3); - Assert.AreEqual(span2d.Height, 2); + Assert.AreEqual(6, span2d.Length); + Assert.AreEqual(3, span2d.Width); + Assert.AreEqual(2, span2d.Height); span2d[0, 1] = 99; span2d[1, 2] = 101; - Assert.AreEqual(array[0, 1], 99); - Assert.AreEqual(array[1, 2], 101); + Assert.AreEqual(99, array[0, 1]); + Assert.AreEqual(101, array[1, 2]); _ = Assert.ThrowsExactly(() => new Span2D(new string[1, 2])); } @@ -187,15 +187,15 @@ public void Test_Span2DT_Array2DConstructor_2() Span2D span2d = new(array, 0, 1, 2, 2); Assert.IsFalse(span2d.IsEmpty); - Assert.AreEqual(span2d.Length, 4); - Assert.AreEqual(span2d.Width, 2); - Assert.AreEqual(span2d.Height, 2); + Assert.AreEqual(4, span2d.Length); + Assert.AreEqual(2, span2d.Width); + Assert.AreEqual(2, span2d.Height); span2d[0, 0] = 99; span2d[1, 1] = 101; - Assert.AreEqual(array[0, 1], 99); - Assert.AreEqual(array[1, 2], 101); + Assert.AreEqual(99, array[0, 1]); + Assert.AreEqual(101, array[1, 2]); _ = Assert.ThrowsExactly(() => new Span2D(new string[1, 2], 0, 0, 2, 2)); } @@ -219,16 +219,16 @@ public void Test_Span2DT_Array3DConstructor_1() Span2D span2d = new(array, 1); Assert.IsFalse(span2d.IsEmpty); - Assert.AreEqual(span2d.Length, 6); - Assert.AreEqual(span2d.Width, 3); - Assert.AreEqual(span2d.Height, 2); + Assert.AreEqual(6, span2d.Length); + Assert.AreEqual(3, span2d.Width); + Assert.AreEqual(2, span2d.Height); span2d[0, 1] = 99; span2d[1, 2] = 101; - Assert.AreEqual(span2d[0, 0], 10); - Assert.AreEqual(array[1, 0, 1], 99); - Assert.AreEqual(array[1, 1, 2], 101); + Assert.AreEqual(10, span2d[0, 0]); + Assert.AreEqual(99, array[1, 0, 1]); + Assert.AreEqual(101, array[1, 1, 2]); _ = Assert.ThrowsExactly(() => new Span2D(array, -1)); _ = Assert.ThrowsExactly(() => new Span2D(array, 20)); @@ -253,16 +253,16 @@ public void Test_Span2DT_Array3DConstructor_2() Span2D span2d = new(array, 1, 0, 1, 2, 2); Assert.IsFalse(span2d.IsEmpty); - Assert.AreEqual(span2d.Length, 4); - Assert.AreEqual(span2d.Width, 2); - Assert.AreEqual(span2d.Height, 2); + Assert.AreEqual(4, span2d.Length); + Assert.AreEqual(2, span2d.Width); + Assert.AreEqual(2, span2d.Height); span2d[0, 1] = 99; span2d[1, 1] = 101; - Assert.AreEqual(span2d[0, 0], 20); - Assert.AreEqual(array[1, 0, 2], 99); - Assert.AreEqual(array[1, 1, 2], 101); + Assert.AreEqual(20, span2d[0, 0]); + Assert.AreEqual(99, array[1, 0, 2]); + Assert.AreEqual(101, array[1, 1, 2]); _ = Assert.ThrowsExactly(() => new Span2D(array, -1, 1, 1, 1, 1)); _ = Assert.ThrowsExactly(() => new Span2D(array, 1, -1, 1, 1, 1)); @@ -594,7 +594,7 @@ public unsafe void Test_Span2DT_Range_Indexer_1() Span2D span2d = new(array); Span2D slice = span2d[1.., 1..]; - Assert.AreEqual(slice.Length, 9); + Assert.AreEqual(9, slice.Length); Assert.IsTrue(Unsafe.AreSame(ref array[1, 1], ref slice[0, 0])); Assert.IsTrue(Unsafe.AreSame(ref array[3, 3], ref slice[2, 2])); } @@ -607,7 +607,7 @@ public unsafe void Test_Span2DT_Range_Indexer_2() Span2D span2d = new(array); Span2D slice = span2d[0..^2, 1..^1]; - Assert.AreEqual(slice.Length, 4); + Assert.AreEqual(4, slice.Length); Assert.IsTrue(Unsafe.AreSame(ref array[0, 1], ref slice[0, 0])); Assert.IsTrue(Unsafe.AreSame(ref array[1, 2], ref slice[1, 1])); } @@ -642,20 +642,20 @@ public void Test_Span2DT_Slice_1() Span2D slice1 = span2d.Slice(1, 1, 1, 2); - Assert.AreEqual(slice1.Length, 2); - Assert.AreEqual(slice1.Height, 1); - Assert.AreEqual(slice1.Width, 2); - Assert.AreEqual(slice1[0, 0], 5); - Assert.AreEqual(slice1[0, 1], 6); + Assert.AreEqual(2, slice1.Length); + Assert.AreEqual(1, slice1.Height); + Assert.AreEqual(2, slice1.Width); + Assert.AreEqual(5, slice1[0, 0]); + Assert.AreEqual(6, slice1[0, 1]); Span2D slice2 = span2d.Slice(0, 1, 2, 2); - Assert.AreEqual(slice2.Length, 4); - Assert.AreEqual(slice2.Height, 2); - Assert.AreEqual(slice2.Width, 2); - Assert.AreEqual(slice2[0, 0], 2); - Assert.AreEqual(slice2[1, 0], 5); - Assert.AreEqual(slice2[1, 1], 6); + Assert.AreEqual(4, slice2.Length); + Assert.AreEqual(2, slice2.Height); + Assert.AreEqual(2, slice2.Width); + Assert.AreEqual(2, slice2[0, 0]); + Assert.AreEqual(5, slice2[1, 0]); + Assert.AreEqual(6, slice2[1, 1]); // Some checks for invalid arguments _ = Assert.ThrowsExactly(() => new Span2D(array).Slice(-1, 1, 1, 1)); @@ -681,26 +681,26 @@ public void Test_Span2DT_Slice_2() // Same as above, but with some different slicing Span2D slice1 = span2d.Slice(0, 0, 2, 2); - Assert.AreEqual(slice1.Length, 4); - Assert.AreEqual(slice1.Height, 2); - Assert.AreEqual(slice1.Width, 2); - Assert.AreEqual(slice1[0, 0], 1); - Assert.AreEqual(slice1[1, 1], 5); + Assert.AreEqual(4, slice1.Length); + Assert.AreEqual(2, slice1.Height); + Assert.AreEqual(2, slice1.Width); + Assert.AreEqual(1, slice1[0, 0]); + Assert.AreEqual(5, slice1[1, 1]); Span2D slice2 = slice1.Slice(1, 0, 1, 2); - Assert.AreEqual(slice2.Length, 2); - Assert.AreEqual(slice2.Height, 1); - Assert.AreEqual(slice2.Width, 2); - Assert.AreEqual(slice2[0, 0], 4); - Assert.AreEqual(slice2[0, 1], 5); + Assert.AreEqual(2, slice2.Length); + Assert.AreEqual(1, slice2.Height); + Assert.AreEqual(2, slice2.Width); + Assert.AreEqual(4, slice2[0, 0]); + Assert.AreEqual(5, slice2[0, 1]); Span2D slice3 = slice2.Slice(0, 1, 1, 1); - Assert.AreEqual(slice3.Length, 1); - Assert.AreEqual(slice3.Height, 1); - Assert.AreEqual(slice3.Width, 1); - Assert.AreEqual(slice3[0, 0], 5); + Assert.AreEqual(1, slice3.Length); + Assert.AreEqual(1, slice3.Height); + Assert.AreEqual(1, slice3.Width); + Assert.AreEqual(5, slice3[0, 0]); } #if NET6_0_OR_GREATER @@ -773,7 +773,7 @@ public void Test_Span2DT_TryGetSpan_From1DArray_3() bool success = span2d.TryGetSpan(out Span span); Assert.IsFalse(success); - Assert.AreEqual(span.Length, 0); + Assert.AreEqual(0, span.Length); } // See https://github.com/CommunityToolkit/WindowsCommunityToolkit/issues/3947 @@ -811,7 +811,7 @@ public void Test_Span2DT_TryGetSpan_From2DArray_1() #if NETFRAMEWORK // Can't get a Span over a T[,] array on .NET Standard 2.0 Assert.IsFalse(success); - Assert.AreEqual(span.Length, 0); + Assert.AreEqual(0, span.Length); #else Assert.IsTrue(success); Assert.AreEqual(span.Length, span2d.Length); @@ -872,8 +872,8 @@ public void Test_Span2DT_ToArray_2() int[,] copy = span2d.ToArray(); - Assert.AreEqual(copy.GetLength(0), 2); - Assert.AreEqual(copy.GetLength(1), 2); + Assert.AreEqual(2, copy.GetLength(0)); + Assert.AreEqual(2, copy.GetLength(1)); int[,] expected = { @@ -936,7 +936,7 @@ public void Test_Span2DT_ToString() const string expected = "CommunityToolkit.HighPerformance.Span2D[2, 3]"; - Assert.AreEqual(text, expected); + Assert.AreEqual(expected, text); } [TestMethod] diff --git a/tests/CommunityToolkit.HighPerformance.UnitTests/Streams/Test_IMemoryOwnerStream.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Streams/Test_IMemoryOwnerStream.cs index e8d2674c..bddfc13f 100644 --- a/tests/CommunityToolkit.HighPerformance.UnitTests/Streams/Test_IMemoryOwnerStream.cs +++ b/tests/CommunityToolkit.HighPerformance.UnitTests/Streams/Test_IMemoryOwnerStream.cs @@ -23,7 +23,7 @@ public void Test_IMemoryOwnerStream_Lifecycle() Assert.IsTrue(stream.CanSeek); Assert.IsTrue(stream.CanWrite); Assert.AreEqual(stream.Length, buffer.Length); - Assert.AreEqual(stream.Position, 0); + Assert.AreEqual(0, stream.Position); stream.Dispose(); diff --git a/tests/CommunityToolkit.HighPerformance.UnitTests/Streams/Test_MemoryStream.ThrowExceptions.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Streams/Test_MemoryStream.ThrowExceptions.cs index 6025c590..18204fde 100644 --- a/tests/CommunityToolkit.HighPerformance.UnitTests/Streams/Test_MemoryStream.ThrowExceptions.cs +++ b/tests/CommunityToolkit.HighPerformance.UnitTests/Streams/Test_MemoryStream.ThrowExceptions.cs @@ -23,7 +23,7 @@ public void Test_MemoryStream_ParameterName_ThrowArgumentExceptionForPosition() } catch (ArgumentOutOfRangeException e) when (e.GetType() == typeof(ArgumentOutOfRangeException)) { - Assert.AreEqual(e.ParamName, nameof(Stream.Position)); + Assert.AreEqual(nameof(Stream.Position), e.ParamName); return; } diff --git a/tests/CommunityToolkit.HighPerformance.UnitTests/Streams/Test_MemoryStream.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Streams/Test_MemoryStream.cs index f5fc501b..71c1f0fa 100644 --- a/tests/CommunityToolkit.HighPerformance.UnitTests/Streams/Test_MemoryStream.cs +++ b/tests/CommunityToolkit.HighPerformance.UnitTests/Streams/Test_MemoryStream.cs @@ -24,7 +24,7 @@ public void Test_MemoryStream_Lifecycle() Assert.IsTrue(stream.CanSeek); Assert.IsTrue(stream.CanWrite); Assert.AreEqual(stream.Length, memory.Length); - Assert.AreEqual(stream.Position, 0); + Assert.AreEqual(0, stream.Position); stream.Dispose(); @@ -40,11 +40,11 @@ public void Test_MemoryStream_Seek() { Stream stream = new byte[100].AsMemory().AsStream(); - Assert.AreEqual(stream.Position, 0); + Assert.AreEqual(0, stream.Position); stream.Position = 42; - Assert.AreEqual(stream.Position, 42); + Assert.AreEqual(42, stream.Position); _ = Assert.ThrowsExactly(() => stream.Position = -1); _ = Assert.ThrowsExactly(() => stream.Position = 120); @@ -54,7 +54,7 @@ public void Test_MemoryStream_Seek() _ = Assert.ThrowsExactly(() => stream.Seek(-1, SeekOrigin.Begin)); _ = Assert.ThrowsExactly(() => stream.Seek(120, SeekOrigin.Begin)); - Assert.AreEqual(stream.Position, 0); + Assert.AreEqual(0, stream.Position); _ = stream.Seek(-1, SeekOrigin.End); @@ -70,7 +70,7 @@ public void Test_MemoryStream_Seek() _ = Assert.ThrowsExactly(() => stream.Seek(-64, SeekOrigin.Current)); _ = Assert.ThrowsExactly(() => stream.Seek(80, SeekOrigin.Current)); - Assert.AreEqual(stream.Position, 32); + Assert.AreEqual(32, stream.Position); } // See https://github.com/CommunityToolkit/WindowsCommunityToolkit/issues/3536 @@ -87,7 +87,7 @@ public void Test_MemoryStream_WriteToEndAndRefreshPosition() { int read = stream.Read(temp, 0, 1); - Assert.AreEqual(read, 1); + Assert.AreEqual(1, read); Assert.AreEqual(stream.Position, i + 1); } @@ -203,7 +203,7 @@ public void Test_MemoryStream_ReadWriteByte() int exitCode = stream.ReadByte(); - Assert.AreEqual(exitCode, -1); + Assert.AreEqual(-1, exitCode); } [TestMethod] diff --git a/tests/CommunityToolkit.HighPerformance.UnitTests/Streams/Test_ReadOnlySequenceStream.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Streams/Test_ReadOnlySequenceStream.cs index 3690b49f..36a257b2 100644 --- a/tests/CommunityToolkit.HighPerformance.UnitTests/Streams/Test_ReadOnlySequenceStream.cs +++ b/tests/CommunityToolkit.HighPerformance.UnitTests/Streams/Test_ReadOnlySequenceStream.cs @@ -26,7 +26,7 @@ public void Test_ReadOnlySequenceStream_Lifecycle() Assert.IsTrue(stream.CanSeek); Assert.IsFalse(stream.CanWrite); Assert.AreEqual(stream.Length, sequence.Length); - Assert.AreEqual(stream.Position, 0); + Assert.AreEqual(0, stream.Position); stream.Dispose(); @@ -43,11 +43,11 @@ public void Test_ReadOnlySequenceStream_Seek() { Stream stream = CreateReadOnlySequence(new byte[50], new byte[50]).AsStream(); - Assert.AreEqual(stream.Position, 0); + Assert.AreEqual(0, stream.Position); stream.Position = 42; - Assert.AreEqual(stream.Position, 42); + Assert.AreEqual(42, stream.Position); _ = Assert.ThrowsExactly(() => stream.Position = -1); _ = Assert.ThrowsExactly(() => stream.Position = 120); @@ -57,7 +57,7 @@ public void Test_ReadOnlySequenceStream_Seek() _ = Assert.ThrowsExactly(() => stream.Seek(-1, SeekOrigin.Begin)); _ = Assert.ThrowsExactly(() => stream.Seek(120, SeekOrigin.Begin)); - Assert.AreEqual(stream.Position, 0); + Assert.AreEqual(0, stream.Position); _ = stream.Seek(-1, SeekOrigin.End); @@ -73,7 +73,7 @@ public void Test_ReadOnlySequenceStream_Seek() _ = Assert.ThrowsExactly(() => stream.Seek(-64, SeekOrigin.Current)); _ = Assert.ThrowsExactly(() => stream.Seek(80, SeekOrigin.Current)); - Assert.AreEqual(stream.Position, 32); + Assert.AreEqual(32, stream.Position); } [TestMethod] @@ -141,7 +141,7 @@ public void Test_ReadOnlySequenceStream_ReadByte() int exitCode = stream.ReadByte(); - Assert.AreEqual(exitCode, -1); + Assert.AreEqual(-1, exitCode); } [TestMethod] diff --git a/tests/CommunityToolkit.HighPerformance.UnitTests/Test_NullableRef{T}.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Test_NullableRef{T}.cs index 222914fb..9a8a0fed 100644 --- a/tests/CommunityToolkit.HighPerformance.UnitTests/Test_NullableRef{T}.cs +++ b/tests/CommunityToolkit.HighPerformance.UnitTests/Test_NullableRef{T}.cs @@ -24,7 +24,7 @@ public void Test_NullableRefOfT_CreateNullableRefOfT_Ok() reference.Value++; - Assert.AreEqual(value, 2); + Assert.AreEqual(2, value); } [TestMethod] diff --git a/tests/CommunityToolkit.HighPerformance.UnitTests/Test_Ref{T}.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Test_Ref{T}.cs index a9fc450b..a8ee161a 100644 --- a/tests/CommunityToolkit.HighPerformance.UnitTests/Test_Ref{T}.cs +++ b/tests/CommunityToolkit.HighPerformance.UnitTests/Test_Ref{T}.cs @@ -22,7 +22,7 @@ public void Test_RefOfT_CreateRefOfT() reference.Value++; - Assert.AreEqual(value, 2); + Assert.AreEqual(2, value); } } diff --git a/tests/CommunityToolkit.Mvvm.DisableINotifyPropertyChanging.UnitTests/Test_DisableINotifyPropertyChanging.cs b/tests/CommunityToolkit.Mvvm.DisableINotifyPropertyChanging.UnitTests/Test_DisableINotifyPropertyChanging.cs index d2a21545..74d5c83e 100644 --- a/tests/CommunityToolkit.Mvvm.DisableINotifyPropertyChanging.UnitTests/Test_DisableINotifyPropertyChanging.cs +++ b/tests/CommunityToolkit.Mvvm.DisableINotifyPropertyChanging.UnitTests/Test_DisableINotifyPropertyChanging.cs @@ -38,8 +38,8 @@ public void Test_ObservableObject_Events() model.Data = 42; - Assert.AreEqual(changed.Item1?.PropertyName, nameof(SampleModel.Data)); - Assert.AreEqual(changed.Item2, 42); + Assert.AreEqual(nameof(SampleModel.Data), changed.Item1?.PropertyName); + Assert.AreEqual(42, changed.Item2); } public class SampleModel : ObservableObject diff --git a/tests/CommunityToolkit.Mvvm.Internals.UnitTests/Test_Messenger.cs b/tests/CommunityToolkit.Mvvm.Internals.UnitTests/Test_Messenger.cs index 70f5408c..bd8322dd 100644 --- a/tests/CommunityToolkit.Mvvm.Internals.UnitTests/Test_Messenger.cs +++ b/tests/CommunityToolkit.Mvvm.Internals.UnitTests/Test_Messenger.cs @@ -41,7 +41,7 @@ void Test() Assert.IsTrue(messenger.IsRegistered(recipient)); - Assert.AreEqual(GetRecipientsMapCount(messenger), 1); + Assert.AreEqual(1, GetRecipientsMapCount(messenger)); GC.KeepAlive(recipient); } @@ -57,7 +57,7 @@ void Test() GC.Collect(); GC.WaitForPendingFinalizers(); - Assert.AreEqual(GetRecipientsMapCount(messenger), 0); + Assert.AreEqual(0, GetRecipientsMapCount(messenger)); GC.KeepAlive(messenger); } diff --git a/tests/CommunityToolkit.Mvvm.Roslyn4120.UnitTests/Test_ObservablePropertyAttribute_PartialProperties.cs b/tests/CommunityToolkit.Mvvm.Roslyn4120.UnitTests/Test_ObservablePropertyAttribute_PartialProperties.cs index ddeb5ebb..0de20fda 100644 --- a/tests/CommunityToolkit.Mvvm.Roslyn4120.UnitTests/Test_ObservablePropertyAttribute_PartialProperties.cs +++ b/tests/CommunityToolkit.Mvvm.Roslyn4120.UnitTests/Test_ObservablePropertyAttribute_PartialProperties.cs @@ -63,10 +63,10 @@ public void Test_ObservablePropertyAttribute_Events() model.Data = 42; - Assert.AreEqual(changing.Item1?.PropertyName, nameof(SampleModel.Data)); - Assert.AreEqual(changing.Item2, 0); - Assert.AreEqual(changed.Item1?.PropertyName, nameof(SampleModel.Data)); - Assert.AreEqual(changed.Item2, 42); + Assert.AreEqual(nameof(SampleModel.Data), changing.Item1?.PropertyName); + Assert.AreEqual(0, changing.Item2); + Assert.AreEqual(nameof(SampleModel.Data), changed.Item1?.PropertyName); + Assert.AreEqual(42, changed.Item2); } // See https://github.com/CommunityToolkit/WindowsCommunityToolkit/issues/4225 @@ -102,10 +102,10 @@ public void Test_ObservablePropertyAttributeWithinRegion_Events() model.Counter = 42; - Assert.AreEqual(changing.Item1?.PropertyName, nameof(SampleModel.Counter)); - Assert.AreEqual(changing.Item2, 0); - Assert.AreEqual(changed.Item1?.PropertyName, nameof(SampleModel.Counter)); - Assert.AreEqual(changed.Item2, 42); + Assert.AreEqual(nameof(SampleModel.Counter), changing.Item1?.PropertyName); + Assert.AreEqual(0, changing.Item2); + Assert.AreEqual(nameof(SampleModel.Counter), changed.Item1?.PropertyName); + Assert.AreEqual(42, changed.Item2); } // See https://github.com/CommunityToolkit/WindowsCommunityToolkit/issues/4225 @@ -141,10 +141,10 @@ public void Test_ObservablePropertyAttributeRightBelowRegion_Events() model.Name = "Bob"; - Assert.AreEqual(changing.Item1?.PropertyName, nameof(SampleModel.Name)); - Assert.AreEqual(changing.Item2, null); - Assert.AreEqual(changed.Item1?.PropertyName, nameof(SampleModel.Name)); - Assert.AreEqual(changed.Item2, "Bob"); + Assert.AreEqual(nameof(SampleModel.Name), changing.Item1?.PropertyName); + Assert.AreEqual(null, changing.Item2); + Assert.AreEqual(nameof(SampleModel.Name), changed.Item1?.PropertyName); + Assert.AreEqual("Bob", changed.Item2); } [TestMethod] @@ -169,15 +169,15 @@ public void Test_ValidationAttributes() Assert.IsNotNull(nameProperty.GetCustomAttribute()); Assert.IsNotNull(nameProperty.GetCustomAttribute()); - Assert.AreEqual(nameProperty.GetCustomAttribute()!.Length, 1); + Assert.AreEqual(1, nameProperty.GetCustomAttribute()!.Length); Assert.IsNotNull(nameProperty.GetCustomAttribute()); - Assert.AreEqual(nameProperty.GetCustomAttribute()!.Length, 100); + Assert.AreEqual(100, nameProperty.GetCustomAttribute()!.Length); PropertyInfo ageProperty = typeof(MyFormViewModel).GetProperty(nameof(MyFormViewModel.Age))!; Assert.IsNotNull(ageProperty.GetCustomAttribute()); - Assert.AreEqual(ageProperty.GetCustomAttribute()!.Minimum, 0); - Assert.AreEqual(ageProperty.GetCustomAttribute()!.Maximum, 120); + Assert.AreEqual(0, ageProperty.GetCustomAttribute()!.Minimum); + Assert.AreEqual(120, ageProperty.GetCustomAttribute()!.Maximum); PropertyInfo emailProperty = typeof(MyFormViewModel).GetProperty(nameof(MyFormViewModel.Email))!; @@ -189,21 +189,21 @@ public void Test_ValidationAttributes() Assert.IsNotNull(testAttribute); Assert.IsNull(testAttribute.O); - Assert.AreEqual(testAttribute.T, typeof(SampleModel)); - Assert.AreEqual(testAttribute.Flag, true); - Assert.AreEqual(testAttribute.D, 6.28); + Assert.AreEqual(typeof(SampleModel), testAttribute.T); + Assert.AreEqual(true, testAttribute.Flag); + Assert.AreEqual(6.28, testAttribute.D); CollectionAssert.AreEqual(testAttribute.Names, new[] { "Bob", "Ross" }); object[]? nestedArray = (object[]?)testAttribute.NestedArray; Assert.IsNotNull(nestedArray); - Assert.AreEqual(nestedArray!.Length, 3); - Assert.AreEqual(nestedArray[0], 1); - Assert.AreEqual(nestedArray[1], "Hello"); + Assert.AreEqual(3, nestedArray!.Length); + Assert.AreEqual(1, nestedArray[0]); + Assert.AreEqual("Hello", nestedArray[1]); Assert.IsTrue(nestedArray[2] is int[]); CollectionAssert.AreEqual((int[])nestedArray[2], new[] { 2, 3, 4 }); - Assert.AreEqual(testAttribute.Animal, Animal.Llama); + Assert.AreEqual(Animal.Llama, testAttribute.Animal); } // See https://github.com/CommunityToolkit/WindowsCommunityToolkit/issues/4216 @@ -218,7 +218,7 @@ public void Test_ObservablePropertyWithValueNamedField() model.Value = "Hello world"; - Assert.AreEqual(model.Value, "Hello world"); + Assert.AreEqual("Hello world", model.Value); CollectionAssert.AreEqual(new[] { nameof(model.Value) }, propertyNames); } @@ -239,7 +239,7 @@ public void Test_ObservablePropertyWithValueNamedField_WithValidationAttributes( model.Value = "Hello world"; - Assert.AreEqual(model.Value, "Hello world"); + Assert.AreEqual("Hello world", model.Value); // The [NotifyDataErrorInfo] attribute wasn't used, so the property shouldn't be validated Assert.IsFalse(errorsChanged); @@ -263,14 +263,14 @@ public void Test_ObservablePropertyWithValueNamedField_WithValidationAttributesA model.Value = "Bo"; Assert.IsTrue(model.HasErrors); - Assert.AreEqual(errors.Count, 1); - Assert.AreEqual(errors[0].PropertyName, nameof(ModelWithValuePropertyWithAutomaticValidation.Value)); + Assert.AreEqual(1, errors.Count); + Assert.AreEqual(nameof(ModelWithValuePropertyWithAutomaticValidation.Value), errors[0].PropertyName); model.Value = "Hello world"; Assert.IsFalse(model.HasErrors); - Assert.AreEqual(errors.Count, 2); - Assert.AreEqual(errors[1].PropertyName, nameof(ModelWithValuePropertyWithAutomaticValidation.Value)); + Assert.AreEqual(2, errors.Count); + Assert.AreEqual(nameof(ModelWithValuePropertyWithAutomaticValidation.Value), errors[1].PropertyName); } [TestMethod] @@ -289,14 +289,14 @@ public void Test_ObservablePropertyWithValueNamedField_WithValidationAttributesA model.Value = "Bo"; Assert.IsTrue(model.HasErrors); - Assert.AreEqual(errors.Count, 1); - Assert.AreEqual(errors[0].PropertyName, nameof(ModelWithValuePropertyWithAutomaticValidationWithClassLevelAttribute.Value)); + Assert.AreEqual(1, errors.Count); + Assert.AreEqual(nameof(ModelWithValuePropertyWithAutomaticValidationWithClassLevelAttribute.Value), errors[0].PropertyName); model.Value = "Hello world"; Assert.IsFalse(model.HasErrors); - Assert.AreEqual(errors.Count, 2); - Assert.AreEqual(errors[1].PropertyName, nameof(ModelWithValuePropertyWithAutomaticValidationWithClassLevelAttribute.Value)); + Assert.AreEqual(2, errors.Count); + Assert.AreEqual(nameof(ModelWithValuePropertyWithAutomaticValidationWithClassLevelAttribute.Value), errors[1].PropertyName); } [TestMethod] @@ -315,14 +315,14 @@ public void Test_ObservablePropertyWithValueNamedField_WithValidationAttributesA model.Value2 = "Bo"; Assert.IsTrue(model.HasErrors); - Assert.AreEqual(errors.Count, 1); - Assert.AreEqual(errors[0].PropertyName, nameof(ModelWithValuePropertyWithAutomaticValidationInheritingClassLevelAttribute.Value2)); + Assert.AreEqual(1, errors.Count); + Assert.AreEqual(nameof(ModelWithValuePropertyWithAutomaticValidationInheritingClassLevelAttribute.Value2), errors[0].PropertyName); model.Value2 = "Hello world"; Assert.IsFalse(model.HasErrors); - Assert.AreEqual(errors.Count, 2); - Assert.AreEqual(errors[1].PropertyName, nameof(ModelWithValuePropertyWithAutomaticValidationInheritingClassLevelAttribute.Value2)); + Assert.AreEqual(2, errors.Count); + Assert.AreEqual(nameof(ModelWithValuePropertyWithAutomaticValidationInheritingClassLevelAttribute.Value2), errors[1].PropertyName); } // See https://github.com/CommunityToolkit/WindowsCommunityToolkit/issues/4184 @@ -348,7 +348,7 @@ public void Test_GeneratedPropertiesWithValidationAttributesOverFields() ValidationResult[] validationErrors = model.GetErrors().ToArray(); - Assert.AreEqual(validationErrors.Length, 2); + Assert.AreEqual(2, validationErrors.Length); CollectionAssert.AreEqual(new[] { nameof(ViewModelWithValidatableGeneratedProperties.First) }, validationErrors[0].MemberNames.ToArray()); CollectionAssert.AreEqual(new[] { nameof(ViewModelWithValidatableGeneratedProperties.Last) }, validationErrors[1].MemberNames.ToArray()); @@ -618,7 +618,7 @@ public void Test_ObservableProperty_ObservableRecipientDoesNotBroadcastByDefault model.Name = null; // The [NotifyPropertyChangedRecipients] attribute wasn't used, so no messages should have been sent - Assert.AreEqual(messages.Count, 0); + Assert.AreEqual(0, messages.Count); } #if NET6_0_OR_GREATER @@ -760,9 +760,9 @@ public void Test_ObservableProperty_WithinGenericTypeWithMultipleTypeParameters( model.UValue = "Hello"; model.List = new List() { 420 }; - Assert.AreEqual(model.Value, true); - Assert.AreEqual(model.TValue, 42); - Assert.AreEqual(model.UValue, "Hello"); + Assert.AreEqual(true, model.Value); + Assert.AreEqual(42, model.TValue); + Assert.AreEqual("Hello", model.UValue); CollectionAssert.AreEqual(new[] { 420 }, model.List); CollectionAssert.AreEqual(new[] { nameof(model.Value), nameof(model.TValue), nameof(model.UValue), nameof(model.List) }, propertyNames); @@ -778,13 +778,13 @@ public void Test_ObservableProperty_WithBaseViewModelWithObservableObjectAttribu model.PropertyChanged += (s, e) => propertyNames.Add(e.PropertyName); - Assert.AreEqual(model.OtherProperty, "Ok"); + Assert.AreEqual("Ok", model.OtherProperty); model.MyProperty = "A"; model.OtherProperty = "B"; - Assert.AreEqual(model.MyProperty, "A"); - Assert.AreEqual(model.OtherProperty, "B"); + Assert.AreEqual("A", model.MyProperty); + Assert.AreEqual("B", model.OtherProperty); CollectionAssert.AreEqual(new[] { nameof(model.MyProperty), nameof(model.OtherProperty) }, propertyNames); } @@ -801,7 +801,7 @@ public void Test_ObservableProperty_ModelWithCultureAwarePropertyName() model.InputFolder = 42; - Assert.AreEqual(model.InputFolder, 42); + Assert.AreEqual(42, model.InputFolder); CollectionAssert.AreEqual(new[] { nameof(model.InputFolder) }, propertyNames); } @@ -864,9 +864,9 @@ public void Test_ObservableProperty_ForwardsSpecialCasesDataAnnotationAttributes DisplayAttribute? displayAttribute = (DisplayAttribute?)propertyInfo.GetCustomAttribute(typeof(DisplayAttribute)); Assert.IsNotNull(displayAttribute); - Assert.AreEqual(displayAttribute!.Name, "MyProperty"); - Assert.AreEqual(displayAttribute.ResourceType, typeof(List)); - Assert.AreEqual(displayAttribute.Prompt, "Foo bar baz"); + Assert.AreEqual("MyProperty", displayAttribute!.Name); + Assert.AreEqual(typeof(List), displayAttribute.ResourceType); + Assert.AreEqual("Foo bar baz", displayAttribute.Prompt); KeyAttribute? keyAttribute = (KeyAttribute?)propertyInfo.GetCustomAttribute(typeof(KeyAttribute)); @@ -880,15 +880,15 @@ public void Test_ObservableProperty_ForwardsSpecialCasesDataAnnotationAttributes UIHintAttribute? uiHintAttribute = (UIHintAttribute?)propertyInfo.GetCustomAttribute(typeof(UIHintAttribute)); Assert.IsNotNull(uiHintAttribute); - Assert.AreEqual(uiHintAttribute!.UIHint, "MyControl"); - Assert.AreEqual(uiHintAttribute.PresentationLayer, "WPF"); - Assert.AreEqual(uiHintAttribute.ControlParameters.Count, 3); + Assert.AreEqual("MyControl", uiHintAttribute!.UIHint); + Assert.AreEqual("WPF", uiHintAttribute.PresentationLayer); + Assert.AreEqual(3, uiHintAttribute.ControlParameters.Count); Assert.IsTrue(uiHintAttribute.ControlParameters.ContainsKey("Foo")); Assert.IsTrue(uiHintAttribute.ControlParameters.ContainsKey("Bar")); Assert.IsTrue(uiHintAttribute.ControlParameters.ContainsKey("Baz")); - Assert.AreEqual(uiHintAttribute.ControlParameters["Foo"], 42); - Assert.AreEqual(uiHintAttribute.ControlParameters["Bar"], 3.14); - Assert.AreEqual(uiHintAttribute.ControlParameters["Baz"], "Hello"); + Assert.AreEqual(42, uiHintAttribute.ControlParameters["Foo"]); + Assert.AreEqual(3.14, uiHintAttribute.ControlParameters["Bar"]); + Assert.AreEqual("Hello", uiHintAttribute.ControlParameters["Baz"]); ScaffoldColumnAttribute? scaffoldColumnAttribute = (ScaffoldColumnAttribute?)propertyInfo.GetCustomAttribute(typeof(ScaffoldColumnAttribute)); @@ -938,14 +938,14 @@ public void Test_ObservableProperty_WithExplicitAttributeForProperty() Assert.IsNotNull(nameProperty.GetCustomAttribute()); Assert.IsNotNull(nameProperty.GetCustomAttribute()); - Assert.AreEqual(nameProperty.GetCustomAttribute()!.Length, 1); + Assert.AreEqual(1, nameProperty.GetCustomAttribute()!.Length); Assert.IsNotNull(nameProperty.GetCustomAttribute()); - Assert.AreEqual(nameProperty.GetCustomAttribute()!.Length, 100); + Assert.AreEqual(100, nameProperty.GetCustomAttribute()!.Length); PropertyInfo lastNameProperty = typeof(MyViewModelWithExplicitPropertyAttributes).GetProperty(nameof(MyViewModelWithExplicitPropertyAttributes.LastName))!; Assert.IsNotNull(lastNameProperty.GetCustomAttribute()); - Assert.AreEqual(lastNameProperty.GetCustomAttribute()!.Name, "lastName"); + Assert.AreEqual("lastName", lastNameProperty.GetCustomAttribute()!.Name); Assert.IsNotNull(lastNameProperty.GetCustomAttribute()); PropertyInfo justOneSimpleAttributeProperty = typeof(MyViewModelWithExplicitPropertyAttributes).GetProperty(nameof(MyViewModelWithExplicitPropertyAttributes.JustOneSimpleAttribute))!; @@ -958,21 +958,21 @@ public void Test_ObservableProperty_WithExplicitAttributeForProperty() Assert.IsNotNull(testAttribute); Assert.IsNull(testAttribute.O); - Assert.AreEqual(testAttribute.T, typeof(MyViewModelWithExplicitPropertyAttributes)); - Assert.AreEqual(testAttribute.Flag, true); - Assert.AreEqual(testAttribute.D, 6.28); + Assert.AreEqual(typeof(MyViewModelWithExplicitPropertyAttributes), testAttribute.T); + Assert.AreEqual(true, testAttribute.Flag); + Assert.AreEqual(6.28, testAttribute.D); CollectionAssert.AreEqual(testAttribute.Names, new[] { "Bob", "Ross" }); object[]? nestedArray = (object[]?)testAttribute.NestedArray; Assert.IsNotNull(nestedArray); - Assert.AreEqual(nestedArray!.Length, 3); - Assert.AreEqual(nestedArray[0], 1); - Assert.AreEqual(nestedArray[1], "Hello"); + Assert.AreEqual(3, nestedArray!.Length); + Assert.AreEqual(1, nestedArray[0]); + Assert.AreEqual("Hello", nestedArray[1]); Assert.IsTrue(nestedArray[2] is int[]); CollectionAssert.AreEqual((int[])nestedArray[2], new[] { 2, 3, 4 }); - Assert.AreEqual(testAttribute.Animal, Animal.Llama); + Assert.AreEqual(Animal.Llama, testAttribute.Animal); PropertyInfo someComplexRandomAttribute = typeof(MyViewModelWithExplicitPropertyAttributes).GetProperty(nameof(MyViewModelWithExplicitPropertyAttributes.SomeComplexRandomAttribute))!; @@ -982,25 +982,25 @@ public void Test_ObservableProperty_WithExplicitAttributeForProperty() Assert.IsNotNull(testAttribute2); Assert.IsNull(testAttribute2.O); - Assert.AreEqual(testAttribute2.T, typeof(MyViewModelWithExplicitPropertyAttributes)); - Assert.AreEqual(testAttribute2.Flag, true); - Assert.AreEqual(testAttribute2.D, 6.28); + Assert.AreEqual(typeof(MyViewModelWithExplicitPropertyAttributes), testAttribute2.T); + Assert.AreEqual(true, testAttribute2.Flag); + Assert.AreEqual(6.28, testAttribute2.D); Assert.IsNotNull(testAttribute2.Objects); Assert.IsTrue(testAttribute2.Objects is object[]); - Assert.AreEqual(((object[])testAttribute2.Objects).Length, 1); - Assert.AreEqual(((object[])testAttribute2.Objects)[0], "Test"); + Assert.AreEqual(1, ((object[])testAttribute2.Objects).Length); + Assert.AreEqual("Test", ((object[])testAttribute2.Objects)[0]); CollectionAssert.AreEqual(testAttribute2.Names, new[] { "Bob", "Ross" }); object[]? nestedArray2 = (object[]?)testAttribute2.NestedArray; Assert.IsNotNull(nestedArray2); - Assert.AreEqual(nestedArray2!.Length, 4); - Assert.AreEqual(nestedArray2[0], 1); - Assert.AreEqual(nestedArray2[1], "Hello"); - Assert.AreEqual(nestedArray2[2], 42); + Assert.AreEqual(4, nestedArray2!.Length); + Assert.AreEqual(1, nestedArray2[0]); + Assert.AreEqual("Hello", nestedArray2[1]); + Assert.AreEqual(42, nestedArray2[2]); Assert.IsNull(nestedArray2[3]); - Assert.AreEqual(testAttribute2.Animal, (Animal)67); + Assert.AreEqual((Animal)67, testAttribute2.Animal); } // See https://github.com/CommunityToolkit/dotnet/issues/375 diff --git a/tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ObservableGroup.cs b/tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ObservableGroup.cs index 947f14f1..db40fae9 100644 --- a/tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ObservableGroup.cs +++ b/tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ObservableGroup.cs @@ -17,8 +17,8 @@ public void Test_ObservableGroup_Ctor_ShouldHaveExpectedState() { ObservableGroup group = new("key"); - Assert.AreEqual(group.Key, "key"); - Assert.AreEqual(group.Count, 0); + Assert.AreEqual("key", group.Key); + Assert.AreEqual(0, group.Count); } [TestMethod] @@ -27,7 +27,7 @@ public void Test_ObservableGroup_Ctor_WithGrouping_ShouldHaveExpectedState() IntGroup source = new("key", new[] { 1, 2, 3 }); ObservableGroup group = new(source); - Assert.AreEqual(group.Key, "key"); + Assert.AreEqual("key", group.Key); CollectionAssert.AreEqual(group, new[] { 1, 2, 3 }); } @@ -37,7 +37,7 @@ public void Test_ObservableGroup_Ctor_WithCollection_ShouldHaveExpectedState() int[] source = new[] { 1, 2, 3 }; ObservableGroup group = new("key", source); - Assert.AreEqual(group.Key, "key"); + Assert.AreEqual("key", group.Key); CollectionAssert.AreEqual(group, new[] { 1, 2, 3 }); } @@ -52,7 +52,7 @@ public void Test_ObservableGroup_Add_ShouldRaiseEvent() group.Add(4); - Assert.AreEqual(group.Key, "key"); + Assert.AreEqual("key", group.Key); CollectionAssert.AreEqual(group, new[] { 1, 2, 3, 4 }); Assert.IsTrue(collectionChangedEventRaised); } @@ -68,7 +68,7 @@ public void Test_ObservableGroup_Update_ShouldRaiseEvent() group[1] = 4; - Assert.AreEqual(group.Key, "key"); + Assert.AreEqual("key", group.Key); CollectionAssert.AreEqual(group, new[] { 1, 4, 3 }); Assert.IsTrue(collectionChangedEventRaised); } @@ -84,7 +84,7 @@ public void Test_ObservableGroup_Remove_ShouldRaiseEvent() _ = group.Remove(1); - Assert.AreEqual(group.Key, "key"); + Assert.AreEqual("key", group.Key); CollectionAssert.AreEqual(group, new[] { 2, 3 }); Assert.IsTrue(collectionChangedEventRaised); } @@ -100,8 +100,8 @@ public void Test_ObservableGroup_Clear_ShouldRaiseEvent() group.Clear(); - Assert.AreEqual(group.Key, "key"); - Assert.AreEqual(group.Count, 0); + Assert.AreEqual("key", group.Key); + Assert.AreEqual(0, group.Count); Assert.IsTrue(collectionChangedEventRaised); } @@ -113,7 +113,7 @@ public void Test_ObservableGroup_IReadOnlyObservableGroup_ShouldReturnExpectedVa ObservableGroup group = new("key", Enumerable.Range(0, count)); IReadOnlyObservableGroup iReadOnlyObservableGroup = group; - Assert.AreEqual(iReadOnlyObservableGroup.Key, "key"); + Assert.AreEqual("key", iReadOnlyObservableGroup.Key); Assert.AreEqual(iReadOnlyObservableGroup.Count, count); } diff --git a/tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ObservableGroupedCollection.cs b/tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ObservableGroupedCollection.cs index fb2ad16a..9180a4d2 100644 --- a/tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ObservableGroupedCollection.cs +++ b/tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ObservableGroupedCollection.cs @@ -18,7 +18,7 @@ public void Test_ObservableGroupedCollection_Ctor_ShouldHaveExpectedValues() { ObservableGroupedCollection groupCollection = new(); - Assert.AreEqual(groupCollection.Count, 0); + Assert.AreEqual(0, groupCollection.Count); } [TestMethod] @@ -31,12 +31,12 @@ public void Test_ObservableGroupedCollection_Ctor_WithGroups_ShouldHaveExpectedV }; ObservableGroupedCollection groupCollection = new(groups); - Assert.AreEqual(groupCollection.Count, 2); + Assert.AreEqual(2, groupCollection.Count); - Assert.AreEqual(groupCollection[0].Key, "A"); + Assert.AreEqual("A", groupCollection[0].Key); CollectionAssert.AreEqual(groupCollection[0], new[] { 1, 3, 5 }); - Assert.AreEqual(groupCollection[1].Key, "B"); + Assert.AreEqual("B", groupCollection[1].Key); CollectionAssert.AreEqual(groupCollection[1], new[] { 2, 4, 6 }); } diff --git a/tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ObservableGroupedCollectionExtensions.cs b/tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ObservableGroupedCollectionExtensions.cs index c76b9142..46cefc82 100644 --- a/tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ObservableGroupedCollectionExtensions.cs +++ b/tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ObservableGroupedCollectionExtensions.cs @@ -77,7 +77,7 @@ public void Test_ObservableGroupedCollectionExtensions_FirstGroupByKey_WhenGroup int result = groupedCollection.FirstGroupByKey("B")[2]; - Assert.AreEqual(result, 12); + Assert.AreEqual(12, result); } [TestMethod] @@ -105,7 +105,7 @@ public void Test_ObservableGroupedCollectionExtensions_FirstGroupByKey_WhenGroup int result = groupedCollection.FirstGroupByKey("B")[2]; - Assert.AreEqual(result, 12); + Assert.AreEqual(12, result); } [TestMethod] @@ -116,7 +116,7 @@ public void Test_ObservableGroupedCollectionExtensions_AddGroup_WithItem_ShouldA ObservableGroup addedGroup = groupedCollection.AddGroup("new key", new[] { 23 }); Assert.IsNotNull(addedGroup); - Assert.AreEqual(addedGroup.Key, "new key"); + Assert.AreEqual("new key", addedGroup.Key); CollectionAssert.AreEqual(addedGroup, new[] { 23 }); CollectionAssert.AreEqual(groupedCollection, new[] { addedGroup }); } @@ -129,7 +129,7 @@ public void Test_ObservableGroupedCollectionExtensions_AddGroup_WithCollection_S ObservableGroup addedGroup = groupedCollection.AddGroup("new key", new[] { 23, 10, 42 }); Assert.IsNotNull(addedGroup); - Assert.AreEqual(addedGroup.Key, "new key"); + Assert.AreEqual("new key", addedGroup.Key); CollectionAssert.AreEqual(addedGroup, new[] { 23, 10, 42 }); CollectionAssert.AreEqual(groupedCollection, new[] { addedGroup }); } @@ -142,7 +142,7 @@ public void Test_ObservableGroupedCollectionExtensions_AddGroup_WithParamsCollec ObservableGroup addedGroup = groupedCollection.AddGroup("new key", new[] { 23, 10, 42 }); Assert.IsNotNull(addedGroup); - Assert.AreEqual(addedGroup.Key, "new key"); + Assert.AreEqual("new key", addedGroup.Key); CollectionAssert.AreEqual(addedGroup, new[] { 23, 10, 42 }); CollectionAssert.AreEqual(groupedCollection, new[] { addedGroup }); } @@ -187,7 +187,7 @@ public void Test_ObservableGroupedCollectionExtensions_AddItem_WhenTargetGroupDo ObservableGroup addedGroup = groupedCollection.AddItem("new key", 23); Assert.IsNotNull(addedGroup); - Assert.AreEqual(addedGroup.Key, "new key"); + Assert.AreEqual("new key", addedGroup.Key); CollectionAssert.AreEqual(addedGroup, new[] { 23 }); CollectionAssert.AreEqual(groupedCollection, new[] { addedGroup }); } @@ -206,18 +206,18 @@ public void Test_ObservableGroupedCollectionExtensions_AddItem_WhenSingleTargetG ObservableGroup addedGroup = groupedCollection.AddItem("B", 23); Assert.AreSame(addedGroup, targetGroup); - Assert.AreEqual(addedGroup.Key, "B"); + Assert.AreEqual("B", addedGroup.Key); CollectionAssert.AreEqual(addedGroup, new[] { 4, 5, 6, 23 }); - Assert.AreEqual(groupedCollection.Count, 3); + Assert.AreEqual(3, groupedCollection.Count); - Assert.AreEqual(groupedCollection[0].Key, "A"); + Assert.AreEqual("A", groupedCollection[0].Key); CollectionAssert.AreEqual(groupedCollection[0], new[] { 1, 2, 3 }); - Assert.AreEqual(groupedCollection[1].Key, "B"); + Assert.AreEqual("B", groupedCollection[1].Key); CollectionAssert.AreEqual(groupedCollection[1], new[] { 4, 5, 6, 23 }); - Assert.AreEqual(groupedCollection[2].Key, "C"); + Assert.AreEqual("C", groupedCollection[2].Key); CollectionAssert.AreEqual(groupedCollection[2], new[] { 7, 8 }); } @@ -236,21 +236,21 @@ public void Test_ObservableGroupedCollectionExtensions_AddItem_WhenSeveralTarget ObservableGroup addedGroup = groupedCollection.AddItem("B", 23); Assert.AreSame(addedGroup, targetGroup); - Assert.AreEqual(addedGroup.Key, "B"); + Assert.AreEqual("B", addedGroup.Key); CollectionAssert.AreEqual(addedGroup, new[] { 4, 5, 6, 23 }); - Assert.AreEqual(groupedCollection.Count, 4); + Assert.AreEqual(4, groupedCollection.Count); - Assert.AreEqual(groupedCollection[0].Key, "A"); + Assert.AreEqual("A", groupedCollection[0].Key); CollectionAssert.AreEqual(groupedCollection[0], new[] { 1, 2, 3 }); - Assert.AreEqual(groupedCollection[1].Key, "B"); + Assert.AreEqual("B", groupedCollection[1].Key); CollectionAssert.AreEqual(groupedCollection[1], new[] { 4, 5, 6, 23 }); - Assert.AreEqual(groupedCollection[2].Key, "B"); + Assert.AreEqual("B", groupedCollection[2].Key); CollectionAssert.AreEqual(groupedCollection[2], new[] { 7, 8, 9 }); - Assert.AreEqual(groupedCollection[3].Key, "C"); + Assert.AreEqual("C", groupedCollection[3].Key); CollectionAssert.AreEqual(groupedCollection[3], new[] { 10, 11 }); } @@ -323,8 +323,8 @@ public void Test_ObservableGroupedCollectionExtensions_RemoveGroup_WhenGroupDoes groupedCollection.RemoveGroup("I do not exist"); - Assert.AreEqual(groupedCollection.Count, 1); - Assert.AreEqual(groupedCollection[0].Key, "A"); + Assert.AreEqual(1, groupedCollection.Count); + Assert.AreEqual("A", groupedCollection[0].Key); CollectionAssert.AreEqual(groupedCollection[0], new[] { 1, 2, 3 }); } @@ -338,8 +338,8 @@ public void Test_ObservableGroupedCollectionExtensions_RemoveGroup_WhenSingleGro groupedCollection.RemoveGroup("B"); - Assert.AreEqual(groupedCollection.Count, 1); - Assert.AreEqual(groupedCollection[0].Key, "A"); + Assert.AreEqual(1, groupedCollection.Count); + Assert.AreEqual("A", groupedCollection[0].Key); CollectionAssert.AreEqual(groupedCollection[0], new[] { 1, 2, 3 }); } @@ -354,12 +354,12 @@ public void Test_ObservableGroupedCollectionExtensions_RemoveGroup_WhenSeveralGr groupedCollection.RemoveGroup("B"); - Assert.AreEqual(groupedCollection.Count, 2); + Assert.AreEqual(2, groupedCollection.Count); - Assert.AreEqual(groupedCollection[0].Key, "A"); + Assert.AreEqual("A", groupedCollection[0].Key); CollectionAssert.AreEqual(groupedCollection[0], new[] { 1, 2, 3 }); - Assert.AreEqual(groupedCollection[1].Key, "B"); + Assert.AreEqual("B", groupedCollection[1].Key); CollectionAssert.AreEqual(groupedCollection[1], new[] { 7, 8 }); } @@ -375,12 +375,12 @@ public void Test_ObservableGroupedCollectionExtensions_RemoveItem_WhenGroupDoesN groupedCollection.RemoveItem("I do not exist", 8, removeGroupIfEmpty); - Assert.AreEqual(groupedCollection.Count, 2); + Assert.AreEqual(2, groupedCollection.Count); - Assert.AreEqual(groupedCollection[0].Key, "A"); + Assert.AreEqual("A", groupedCollection[0].Key); CollectionAssert.AreEqual(groupedCollection[0], new[] { 1, 2, 3 }); - Assert.AreEqual(groupedCollection[1].Key, "B"); + Assert.AreEqual("B", groupedCollection[1].Key); CollectionAssert.AreEqual(groupedCollection[1], new[] { 4, 5, 6 }); } @@ -396,12 +396,12 @@ public void Test_ObservableGroupedCollectionExtensions_RemoveItem_WhenGroupExist groupedCollection.RemoveItem("B", 8, removeGroupIfEmpty); - Assert.AreEqual(groupedCollection.Count, 2); + Assert.AreEqual(2, groupedCollection.Count); - Assert.AreEqual(groupedCollection[0].Key, "A"); + Assert.AreEqual("A", groupedCollection[0].Key); CollectionAssert.AreEqual(groupedCollection[0], new[] { 1, 2, 3 }); - Assert.AreEqual(groupedCollection[1].Key, "B"); + Assert.AreEqual("B", groupedCollection[1].Key); CollectionAssert.AreEqual(groupedCollection[1], new[] { 4, 5, 6 }); } @@ -417,12 +417,12 @@ public void Test_ObservableGroupedCollectionExtensions_RemoveItem_WhenGroupAndIt groupedCollection.RemoveItem("B", 5, removeGroupIfEmpty); - Assert.AreEqual(groupedCollection.Count, 2); + Assert.AreEqual(2, groupedCollection.Count); - Assert.AreEqual(groupedCollection[0].Key, "A"); + Assert.AreEqual("A", groupedCollection[0].Key); CollectionAssert.AreEqual(groupedCollection[0], new[] { 1, 2, 3 }); - Assert.AreEqual(groupedCollection[1].Key, "B"); + Assert.AreEqual("B", groupedCollection[1].Key); CollectionAssert.AreEqual(groupedCollection[1], new[] { 4, 6 }); } @@ -440,13 +440,13 @@ public void Test_ObservableGroupedCollectionExtensions_RemoveItem_WhenRemovingLa Assert.AreEqual(groupedCollection.Count, expectGroupRemoved ? 1 : 2); - Assert.AreEqual(groupedCollection[0].Key, "A"); + Assert.AreEqual("A", groupedCollection[0].Key); CollectionAssert.AreEqual(groupedCollection[0], new[] { 1, 2, 3 }); if (!expectGroupRemoved) { - Assert.AreEqual(groupedCollection[1].Key, "B"); - Assert.AreEqual(groupedCollection[1].Count, 0); + Assert.AreEqual("B", groupedCollection[1].Key); + Assert.AreEqual(0, groupedCollection[1].Count); } } } diff --git a/tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ReadOnlyObservableGroup.cs b/tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ReadOnlyObservableGroup.cs index ed433492..27a80ce3 100644 --- a/tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ReadOnlyObservableGroup.cs +++ b/tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ReadOnlyObservableGroup.cs @@ -20,7 +20,7 @@ public void Test_ReadOnlyObservableGroup_Ctor_WithKeyAndOBservableCollection_Sho ObservableCollection source = new(new[] { 1, 2, 3 }); ReadOnlyObservableGroup group = new("key", source); - Assert.AreEqual(group.Key, "key"); + Assert.AreEqual("key", group.Key); CollectionAssert.AreEqual(group, new[] { 1, 2, 3 }); } @@ -31,7 +31,7 @@ public void Test_ReadOnlyObservableGroup_Ctor_ObservableGroup_ShouldHaveExpected ObservableGroup sourceGroup = new("key", source); ReadOnlyObservableGroup group = new(sourceGroup); - Assert.AreEqual(group.Key, "key"); + Assert.AreEqual("key", group.Key); CollectionAssert.AreEqual(group, new[] { 1, 2, 3 }); } @@ -41,7 +41,7 @@ public void Test_ReadOnlyObservableGroup_Ctor_WithKeyAndCollection_ShouldHaveExp ObservableCollection source = new() { 1, 2, 3 }; ReadOnlyObservableGroup group = new("key", source); - Assert.AreEqual(group.Key, "key"); + Assert.AreEqual("key", group.Key); CollectionAssert.AreEqual(group, new[] { 1, 2, 3 }); } @@ -57,7 +57,7 @@ public void Test_ReadOnlyObservableGroup_Add_ShouldRaiseEvent() sourceGroup.Add(4); - Assert.AreEqual(group.Key, "key"); + Assert.AreEqual("key", group.Key); CollectionAssert.AreEqual(group, new[] { 1, 2, 3, 4 }); Assert.IsTrue(collectionChangedEventRaised); @@ -75,7 +75,7 @@ public void Test_ReadOnlyObservableGroup_Update_ShouldRaiseEvent() sourceGroup[1] = 4; - Assert.AreEqual(group.Key, "key"); + Assert.AreEqual("key", group.Key); CollectionAssert.AreEqual(group, new[] { 1, 4, 3 }); Assert.IsTrue(collectionChangedEventRaised); @@ -93,7 +93,7 @@ public void Test_ReadOnlyObservableGroup_Remove_ShouldRaiseEvent() _ = sourceGroup.Remove(1); - Assert.AreEqual(group.Key, "key"); + Assert.AreEqual("key", group.Key); CollectionAssert.AreEqual(group, new[] { 2, 3 }); Assert.IsTrue(collectionChangedEventRaised); @@ -111,7 +111,7 @@ public void Test_ReadOnlyObservableGroup_Clear_ShouldRaiseEvent() sourceGroup.Clear(); - Assert.AreEqual(group.Key, "key"); + Assert.AreEqual("key", group.Key); CollectionAssert.AreEqual(group, Array.Empty()); Assert.IsTrue(collectionChangedEventRaised); @@ -126,7 +126,7 @@ public void Test_ReadOnlyObservableGroup_IReadOnlyObservableGroup_ShouldReturnEx ReadOnlyObservableGroup group = new(sourceGroup); IReadOnlyObservableGroup iReadOnlyObservableGroup = group; - Assert.AreEqual(iReadOnlyObservableGroup.Key, "key"); + Assert.AreEqual("key", iReadOnlyObservableGroup.Key); Assert.AreEqual(iReadOnlyObservableGroup.Count, count); } diff --git a/tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ReadOnlyObservableGroupedCollection.cs b/tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ReadOnlyObservableGroupedCollection.cs index 3621c6b1..5b3d34ba 100644 --- a/tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ReadOnlyObservableGroupedCollection.cs +++ b/tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ReadOnlyObservableGroupedCollection.cs @@ -23,7 +23,7 @@ public void Test_ReadOnlyObservableGroupedCollection_Ctor_WithEmptySource_ShoudI ObservableGroupedCollection source = new(); ReadOnlyObservableGroupedCollection readOnlyGroup = new(source); - Assert.AreEqual(readOnlyGroup.Count, 0); + Assert.AreEqual(0, readOnlyGroup.Count); CollectionAssert.AreEqual(readOnlyGroup, Array.Empty()); } @@ -38,12 +38,12 @@ public void Test_ReadOnlyObservableGroupedCollection_Ctor_WithObservableGroupedC ObservableGroupedCollection source = new(groups); ReadOnlyObservableGroupedCollection readOnlyGroup = new(source); - Assert.AreEqual(readOnlyGroup.Count, 2); + Assert.AreEqual(2, readOnlyGroup.Count); - Assert.AreEqual(readOnlyGroup[0].Key, "A"); + Assert.AreEqual("A", readOnlyGroup[0].Key); CollectionAssert.AreEquivalent(readOnlyGroup[0], new[] { 1, 3, 5 }); - Assert.AreEqual(readOnlyGroup[1].Key, "B"); + Assert.AreEqual("B", readOnlyGroup[1].Key); CollectionAssert.AreEquivalent(readOnlyGroup[1], new[] { 2, 4, 6 }); } @@ -57,12 +57,12 @@ public void Test_ReadOnlyObservableGroupedCollection_Ctor_WithListOfReadOnlyObse }; ReadOnlyObservableGroupedCollection readOnlyGroup = new(source); - Assert.AreEqual(readOnlyGroup.Count, 2); + Assert.AreEqual(2, readOnlyGroup.Count); - Assert.AreEqual(readOnlyGroup[0].Key, "A"); + Assert.AreEqual("A", readOnlyGroup[0].Key); CollectionAssert.AreEqual(readOnlyGroup[0], new[] { 1, 3, 5 }); - Assert.AreEqual(readOnlyGroup[1].Key, "B"); + Assert.AreEqual("B", readOnlyGroup[1].Key); CollectionAssert.AreEqual(readOnlyGroup[1], new[] { 2, 4, 6 }); } @@ -78,16 +78,16 @@ public void Test_ReadOnlyObservableGroupedCollection_IListImplementation_Propert ReadOnlyObservableGroupedCollection readOnlyGroup = new(source); IList list = readOnlyGroup; - Assert.AreEqual(list.Count, 2); + Assert.AreEqual(2, list.Count); ReadOnlyObservableGroup group0 = (ReadOnlyObservableGroup)list[0]!; - Assert.AreEqual(group0.Key, "A"); + Assert.AreEqual("A", group0.Key); CollectionAssert.AreEqual(group0, new[] { 1, 3, 5 }); ReadOnlyObservableGroup group1 = (ReadOnlyObservableGroup)list[1]!; - Assert.AreEqual(group1.Key, "B"); + Assert.AreEqual("B", group1.Key); CollectionAssert.AreEqual(group1, new[] { 2, 4, 6 }); Assert.IsNotNull(list.SyncRoot); @@ -166,7 +166,7 @@ public void Test_ReadOnlyObservableGroupedCollection_IListImplementation_Contain bool result = list.Contains(groupToSearch); - Assert.AreEqual(result, expectedResult); + Assert.AreEqual(expectedResult, result); } [TestMethod] @@ -196,11 +196,11 @@ public void Test_ReadOnlyObservableGroupedCollection_AddGroupInSource_ShouldAddG int expectedReadOnlyGroupCount = sourceInitialItemsCount + 1; - Assert.AreEqual(readOnlyGroup.Count, expectedReadOnlyGroupCount); + Assert.AreEqual(expectedReadOnlyGroupCount, readOnlyGroup.Count); Assert.AreEqual("Add", readOnlyGroup[readOnlyGroup.Count - 1].Key); Assert.IsTrue(isCountPropertyChangedEventRaised); Assert.IsNotNull(collectionChangedEventArgs); - Assert.AreEqual(collectionChangedEventsCount, 1); + Assert.AreEqual(1, collectionChangedEventsCount); bool isAddEventValid = IsAddEventValid(collectionChangedEventArgs, itemsList, expectedInsertionIndex); @@ -232,11 +232,11 @@ public void Test_ReadOnlyObservableGroupedCollection_InsertGroupInSource_ShouldA source.Insert(insertionIndex, new ObservableGroup("Add", itemsList)); - Assert.AreEqual(readOnlyGroup.Count, 3); + Assert.AreEqual(3, readOnlyGroup.Count); Assert.AreEqual("Add", readOnlyGroup[insertionIndex].Key); Assert.IsTrue(isCountPropertyChangedEventRaised); Assert.IsNotNull(collectionChangedEventArgs); - Assert.AreEqual(collectionChangedEventsCount, 1); + Assert.AreEqual(1, collectionChangedEventsCount); bool isAddEventValid = IsAddEventValid(collectionChangedEventArgs, itemsList, addIndex: insertionIndex); @@ -267,14 +267,14 @@ public void Test_ReadOnlyObservableGroupedCollection_RemoveGroupInSource_ShoudRe source.RemoveAt(1); - Assert.AreEqual(readOnlyGroup.Count, 1); + Assert.AreEqual(1, readOnlyGroup.Count); - Assert.AreEqual(readOnlyGroup[0].Key, "A"); + Assert.AreEqual("A", readOnlyGroup[0].Key); CollectionAssert.AreEquivalent(readOnlyGroup[0], aItemsList); Assert.IsTrue(isCountPropertyChangedEventRaised); Assert.IsNotNull(collectionChangedEventArgs); - Assert.AreEqual(collectionChangedEventsCount, 1); + Assert.AreEqual(1, collectionChangedEventsCount); bool isRemoveEventValid = IsRemoveEventValid(collectionChangedEventArgs, bItemsList, 1); @@ -314,7 +314,7 @@ public void Test_ReadOnlyObservableGroupedCollection_MoveGroupInSource_ShoudMove Assert.AreEqual(groups.Count, readOnlyGroup.Count); - Assert.AreEqual(readOnlyGroup[0].Key, "B"); + Assert.AreEqual("B", readOnlyGroup[0].Key); CollectionAssert.AreEquivalent(readOnlyGroup[0], bItemsList); List> tempList = new(groups); @@ -331,7 +331,7 @@ public void Test_ReadOnlyObservableGroupedCollection_MoveGroupInSource_ShoudMove Assert.IsFalse(isCountPropertyChangedEventRaised); Assert.IsNotNull(collectionChangedEventArgs); - Assert.AreEqual(collectionChangedEventsCount, 1); + Assert.AreEqual(1, collectionChangedEventsCount); bool isMoveEventValid = IsMoveEventValid(collectionChangedEventArgs, groups[oldIndex], oldIndex, newIndex); @@ -362,11 +362,11 @@ public void Test_ReadOnlyObservableGroupedCollection_ClearSource_ShoudClear() source.Clear(); - Assert.AreEqual(readOnlyGroup.Count, 0); + Assert.AreEqual(0, readOnlyGroup.Count); Assert.IsTrue(isCountPropertyChangedEventRaised); Assert.IsNotNull(collectionChangedEventArgs); - Assert.AreEqual(collectionChangedEventsCount, 1); + Assert.AreEqual(1, collectionChangedEventsCount); bool isResetEventValid = IsResetEventValid(collectionChangedEventArgs); @@ -398,17 +398,17 @@ public void Test_ReadOnlyObservableGroupedCollection_ReplaceGroupInSource_ShoudR source[0] = new ObservableGroup("C", cItemsList); - Assert.AreEqual(readOnlyGroup.Count, 2); + Assert.AreEqual(2, readOnlyGroup.Count); - Assert.AreEqual(readOnlyGroup[0].Key, "C"); + Assert.AreEqual("C", readOnlyGroup[0].Key); CollectionAssert.AreEquivalent(readOnlyGroup[0], cItemsList); - Assert.AreEqual(readOnlyGroup[1].Key, "B"); + Assert.AreEqual("B", readOnlyGroup[1].Key); CollectionAssert.AreEquivalent(readOnlyGroup[1], bItemsList); Assert.IsFalse(isCountPropertyChangedEventRaised); Assert.IsNotNull(collectionChangedEventArgs); - Assert.AreEqual(collectionChangedEventsCount, 1); + Assert.AreEqual(1, collectionChangedEventsCount); bool isReplaceEventValid = IsReplaceEventValid(collectionChangedEventArgs, aItemsList, cItemsList); diff --git a/tests/CommunityToolkit.Mvvm.UnitTests/Test_AsyncRelayCommand.cs b/tests/CommunityToolkit.Mvvm.UnitTests/Test_AsyncRelayCommand.cs index addc9661..d877ef80 100644 --- a/tests/CommunityToolkit.Mvvm.UnitTests/Test_AsyncRelayCommand.cs +++ b/tests/CommunityToolkit.Mvvm.UnitTests/Test_AsyncRelayCommand.cs @@ -57,13 +57,13 @@ public async Task Test_AsyncRelayCommand_AlwaysEnabled() Assert.IsFalse(command.IsRunning); - Assert.AreEqual(ticks, 1); + Assert.AreEqual(1, ticks); command.Execute(new object()); await command.ExecutionTask!; - Assert.AreEqual(ticks, 2); + Assert.AreEqual(2, ticks); } [TestMethod] @@ -86,11 +86,11 @@ public void Test_AsyncRelayCommand_WithCanExecuteFunctionTrue() command.Execute(null); - Assert.AreEqual(ticks, 1); + Assert.AreEqual(1, ticks); command.Execute(new object()); - Assert.AreEqual(ticks, 2); + Assert.AreEqual(2, ticks); } [TestMethod] @@ -115,11 +115,11 @@ public void Test_AsyncRelayCommand_WithCanExecuteFunctionFalse() // It is the caller's responsibility to ensure that CanExecute is true // before calling Execute. This check verifies the logic is still called. - Assert.AreEqual(ticks, 1); + Assert.AreEqual(1, ticks); command.Execute(new object()); - Assert.AreEqual(ticks, 2); + Assert.AreEqual(2, ticks); } [TestMethod] @@ -154,19 +154,19 @@ public async Task Test_AsyncRelayCommand_WithCancellation() Assert.IsFalse(command.IsCancellationRequested); // Validate the various event args for all the properties that were updated when executing the command - Assert.AreEqual(args.Count, 4); - Assert.AreEqual(args[0].PropertyName, nameof(IAsyncRelayCommand.ExecutionTask)); - Assert.AreEqual(args[1].PropertyName, nameof(IAsyncRelayCommand.IsRunning)); - Assert.AreEqual(args[2].PropertyName, nameof(IAsyncRelayCommand.CanBeCanceled)); - Assert.AreEqual(args[3].PropertyName, nameof(IAsyncRelayCommand.IsCancellationRequested)); + Assert.AreEqual(4, args.Count); + Assert.AreEqual(nameof(IAsyncRelayCommand.ExecutionTask), args[0].PropertyName); + Assert.AreEqual(nameof(IAsyncRelayCommand.IsRunning), args[1].PropertyName); + Assert.AreEqual(nameof(IAsyncRelayCommand.CanBeCanceled), args[2].PropertyName); + Assert.AreEqual(nameof(IAsyncRelayCommand.IsCancellationRequested), args[3].PropertyName); command.Cancel(); // Verify that these two properties raised notifications correctly when canceling the command too. // We need to ensure all command properties support notifications so that users can bind to them. - Assert.AreEqual(args.Count, 6); - Assert.AreEqual(args[4].PropertyName, nameof(IAsyncRelayCommand.CanBeCanceled)); - Assert.AreEqual(args[5].PropertyName, nameof(IAsyncRelayCommand.IsCancellationRequested)); + Assert.AreEqual(6, args.Count); + Assert.AreEqual(nameof(IAsyncRelayCommand.CanBeCanceled), args[4].PropertyName); + Assert.AreEqual(nameof(IAsyncRelayCommand.IsCancellationRequested), args[5].PropertyName); Assert.IsTrue(command.IsCancellationRequested); diff --git a/tests/CommunityToolkit.Mvvm.UnitTests/Test_AsyncRelayCommand{T}.cs b/tests/CommunityToolkit.Mvvm.UnitTests/Test_AsyncRelayCommand{T}.cs index df24b6aa..5751d3c0 100644 --- a/tests/CommunityToolkit.Mvvm.UnitTests/Test_AsyncRelayCommand{T}.cs +++ b/tests/CommunityToolkit.Mvvm.UnitTests/Test_AsyncRelayCommand{T}.cs @@ -54,13 +54,13 @@ public async Task Test_AsyncRelayCommandOfT_AlwaysEnabled() Assert.IsFalse(command.IsRunning); - Assert.AreEqual(ticks, 42); + Assert.AreEqual(42, ticks); command.Execute("2"); await command.ExecutionTask!; - Assert.AreEqual(ticks, 2); + Assert.AreEqual(2, ticks); ExceptionHelper.ThrowsArgumentExceptionWithParameterName(() => command.CanExecute(new object()), "parameter"); ExceptionHelper.ThrowsArgumentExceptionWithParameterName(() => command.CanExecute(42), "parameter"); @@ -86,11 +86,11 @@ public void Test_AsyncRelayCommandOfT_WithCanExecuteFunctionTrue() command.Execute("42"); - Assert.AreEqual(ticks, 42); + Assert.AreEqual(42, ticks); command.Execute("2"); - Assert.AreEqual(ticks, 2); + Assert.AreEqual(2, ticks); ExceptionHelper.ThrowsArgumentExceptionWithParameterName(() => command.CanExecute(new object()), "parameter"); ExceptionHelper.ThrowsArgumentExceptionWithParameterName(() => command.CanExecute(42), "parameter"); @@ -117,11 +117,11 @@ public void Test_AsyncRelayCommandOfT_WithCanExecuteFunctionFalse() command.Execute("2"); // Like in the RelayCommand test, ensure Execute is unconditionally invoked - Assert.AreEqual(ticks, 2); + Assert.AreEqual(2, ticks); command.Execute("42"); - Assert.AreEqual(ticks, 42); + Assert.AreEqual(42, ticks); ExceptionHelper.ThrowsArgumentExceptionWithParameterName(() => command.CanExecute(new object()), "parameter"); ExceptionHelper.ThrowsArgumentExceptionWithParameterName(() => command.CanExecute(42), "parameter"); @@ -197,17 +197,17 @@ public async Task Test_AsyncRelayCommandOfT_WithCancellation() Assert.IsTrue(command.CanBeCanceled); Assert.IsFalse(command.IsCancellationRequested); - Assert.AreEqual(args.Count, 4); - Assert.AreEqual(args[0].PropertyName, nameof(IAsyncRelayCommand.ExecutionTask)); - Assert.AreEqual(args[1].PropertyName, nameof(IAsyncRelayCommand.IsRunning)); - Assert.AreEqual(args[2].PropertyName, nameof(IAsyncRelayCommand.CanBeCanceled)); - Assert.AreEqual(args[3].PropertyName, nameof(IAsyncRelayCommand.IsCancellationRequested)); + Assert.AreEqual(4, args.Count); + Assert.AreEqual(nameof(IAsyncRelayCommand.ExecutionTask), args[0].PropertyName); + Assert.AreEqual(nameof(IAsyncRelayCommand.IsRunning), args[1].PropertyName); + Assert.AreEqual(nameof(IAsyncRelayCommand.CanBeCanceled), args[2].PropertyName); + Assert.AreEqual(nameof(IAsyncRelayCommand.IsCancellationRequested), args[3].PropertyName); command.Cancel(); - Assert.AreEqual(args.Count, 6); - Assert.AreEqual(args[4].PropertyName, nameof(IAsyncRelayCommand.CanBeCanceled)); - Assert.AreEqual(args[5].PropertyName, nameof(IAsyncRelayCommand.IsCancellationRequested)); + Assert.AreEqual(6, args.Count); + Assert.AreEqual(nameof(IAsyncRelayCommand.CanBeCanceled), args[4].PropertyName); + Assert.AreEqual(nameof(IAsyncRelayCommand.IsCancellationRequested), args[5].PropertyName); Assert.IsTrue(command.IsCancellationRequested); diff --git a/tests/CommunityToolkit.Mvvm.UnitTests/Test_INotifyPropertyChangedAttribute.cs b/tests/CommunityToolkit.Mvvm.UnitTests/Test_INotifyPropertyChangedAttribute.cs index d4992254..8d0f5cf0 100644 --- a/tests/CommunityToolkit.Mvvm.UnitTests/Test_INotifyPropertyChangedAttribute.cs +++ b/tests/CommunityToolkit.Mvvm.UnitTests/Test_INotifyPropertyChangedAttribute.cs @@ -34,8 +34,8 @@ public void Test_INotifyPropertyChanged_Events() model.Data = 42; - Assert.AreEqual(changed.Item1?.PropertyName, nameof(SampleModel.Data)); - Assert.AreEqual(changed.Item2, 42); + Assert.AreEqual(nameof(SampleModel.Data), changed.Item1?.PropertyName); + Assert.AreEqual(42, changed.Item2); } [INotifyPropertyChanged] @@ -61,13 +61,13 @@ public void Test_INotifyPropertyChanged_WithoutHelpers() MethodInfo[]? methods = typeof(SampleModelWithoutHelpers).GetMethods(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.DeclaredOnly); - Assert.AreEqual(methods.Length, 2); - Assert.AreEqual(methods[0].Name, "OnPropertyChanged"); - Assert.AreEqual(methods[1].Name, "OnPropertyChanged"); + Assert.AreEqual(2, methods.Length); + Assert.AreEqual("OnPropertyChanged", methods[0].Name); + Assert.AreEqual("OnPropertyChanged", methods[1].Name); System.Type[]? types = typeof(SampleModelWithoutHelpers).GetNestedTypes(BindingFlags.NonPublic); - Assert.AreEqual(types.Length, 0); + Assert.AreEqual(0, types.Length); } [INotifyPropertyChanged(IncludeAdditionalHelperMethods = false)] @@ -89,9 +89,9 @@ public void Test_INotifyPropertyChanged_WithGeneratedProperties() model.X = 42; model.Y = 66; - Assert.AreEqual(eventArgs.Count, 2); - Assert.AreEqual(eventArgs[0].PropertyName, nameof(SampleModelWithINPCAndObservableProperties.X)); - Assert.AreEqual(eventArgs[1].PropertyName, nameof(SampleModelWithINPCAndObservableProperties.Y)); + Assert.AreEqual(2, eventArgs.Count); + Assert.AreEqual(nameof(SampleModelWithINPCAndObservableProperties.X), eventArgs[0].PropertyName); + Assert.AreEqual(nameof(SampleModelWithINPCAndObservableProperties.Y), eventArgs[1].PropertyName); } // See https://github.com/CommunityToolkit/WindowsCommunityToolkit/issues/4167 @@ -120,9 +120,9 @@ public void Test_INotifyPropertyChanged_WithGeneratedPartialProperties() model.X = 42; model.Y = 66; - Assert.AreEqual(eventArgs.Count, 2); - Assert.AreEqual(eventArgs[0].PropertyName, nameof(SampleModelWithINPCAndObservablePartialProperties.X)); - Assert.AreEqual(eventArgs[1].PropertyName, nameof(SampleModelWithINPCAndObservablePartialProperties.Y)); + Assert.AreEqual(2, eventArgs.Count); + Assert.AreEqual(nameof(SampleModelWithINPCAndObservablePartialProperties.X), eventArgs[0].PropertyName); + Assert.AreEqual(nameof(SampleModelWithINPCAndObservablePartialProperties.Y), eventArgs[1].PropertyName); } [INotifyPropertyChanged] @@ -150,8 +150,8 @@ public void Test_INotifyPropertyChanged_WithGeneratedProperties_ExternalNetStand model.X = 42; model.Y = 66; - Assert.AreEqual(eventArgs.Count, 2); - Assert.AreEqual(eventArgs[0].PropertyName, nameof(ExternalAssembly.SampleModelWithINPCAndObservableProperties.X)); - Assert.AreEqual(eventArgs[1].PropertyName, nameof(ExternalAssembly.SampleModelWithINPCAndObservableProperties.Y)); + Assert.AreEqual(2, eventArgs.Count); + Assert.AreEqual(nameof(ExternalAssembly.SampleModelWithINPCAndObservableProperties.X), eventArgs[0].PropertyName); + Assert.AreEqual(nameof(ExternalAssembly.SampleModelWithINPCAndObservableProperties.Y), eventArgs[1].PropertyName); } } diff --git a/tests/CommunityToolkit.Mvvm.UnitTests/Test_Messenger.Request.cs b/tests/CommunityToolkit.Mvvm.UnitTests/Test_Messenger.Request.cs index 47a32220..3cdc4aa5 100644 --- a/tests/CommunityToolkit.Mvvm.UnitTests/Test_Messenger.Request.cs +++ b/tests/CommunityToolkit.Mvvm.UnitTests/Test_Messenger.Request.cs @@ -39,7 +39,7 @@ void Receive(object recipient, NumberRequestMessage m) int result = messenger.Send(); Assert.AreSame(test, recipient); - Assert.AreEqual(result, 42); + Assert.AreEqual(42, result); } [TestMethod] @@ -102,7 +102,7 @@ static void Receive(object recipient, AsyncNumberRequestMessage m) int result = await messenger.Send(); - Assert.AreEqual(result, 42); + Assert.AreEqual(42, result); GC.KeepAlive(recipient); } @@ -135,7 +135,7 @@ void Receive(object recipient, AsyncNumberRequestMessage m) int result = await messenger.Send(); - Assert.AreEqual(result, 42); + Assert.AreEqual(42, result); GC.KeepAlive(recipient); } @@ -198,7 +198,7 @@ static void Receive(object recipient, NumbersCollectionRequestMessage m) IReadOnlyCollection? results = messenger.Send().Responses; - Assert.AreEqual(results.Count, 0); + Assert.AreEqual(0, results.Count); GC.KeepAlive(recipient); } @@ -272,7 +272,7 @@ static void Receive(object recipient, AsyncNumbersCollectionRequestMessage m) IReadOnlyCollection? results = await messenger.Send().GetResponsesAsync(); - Assert.AreEqual(results.Count, 0); + Assert.AreEqual(0, results.Count); GC.KeepAlive(recipient); } diff --git a/tests/CommunityToolkit.Mvvm.UnitTests/Test_Messenger.cs b/tests/CommunityToolkit.Mvvm.UnitTests/Test_Messenger.cs index f64bf3e9..86abac37 100644 --- a/tests/CommunityToolkit.Mvvm.UnitTests/Test_Messenger.cs +++ b/tests/CommunityToolkit.Mvvm.UnitTests/Test_Messenger.cs @@ -223,7 +223,7 @@ public void Test_Messenger_IsRegistered_Register_Send_UnregisterOfTMessage_WithN _ = messenger.Send(new MessageA { Text = nameof(MessageA) }); Assert.AreSame(recipient, a); - Assert.AreEqual(result, nameof(MessageA)); + Assert.AreEqual(nameof(MessageA), result); messenger.Unregister(a); @@ -255,7 +255,7 @@ public void Test_Messenger_IsRegistered_Register_Send_UnregisterRecipient_WithNo _ = messenger.Send(new MessageA { Text = nameof(MessageA) }); - Assert.AreEqual(result, nameof(MessageA)); + Assert.AreEqual(nameof(MessageA), result); messenger.UnregisterAll(a); @@ -284,7 +284,7 @@ public void Test_Messenger_IsRegistered_Register_Send_UnregisterOfTMessage_WithT _ = messenger.Send(new MessageA { Text = nameof(MessageA) }, nameof(MessageA)); - Assert.AreEqual(result, nameof(MessageA)); + Assert.AreEqual(nameof(MessageA), result); messenger.Unregister(a, nameof(MessageA)); @@ -355,18 +355,18 @@ public void Test_Messenger_IRecipient_SomeMessages_NoToken(Type type) Assert.IsTrue(messenger.IsRegistered(recipient)); Assert.IsTrue(messenger.IsRegistered(recipient)); - Assert.AreEqual(recipient.As, 0); - Assert.AreEqual(recipient.Bs, 0); + Assert.AreEqual(0, recipient.As); + Assert.AreEqual(0, recipient.Bs); _ = messenger.Send(); - Assert.AreEqual(recipient.As, 1); - Assert.AreEqual(recipient.Bs, 0); + Assert.AreEqual(1, recipient.As); + Assert.AreEqual(0, recipient.Bs); _ = messenger.Send(); - Assert.AreEqual(recipient.As, 1); - Assert.AreEqual(recipient.Bs, 1); + Assert.AreEqual(1, recipient.As); + Assert.AreEqual(1, recipient.Bs); messenger.UnregisterAll(recipient); @@ -425,18 +425,18 @@ public void Test_Messenger_IRecipient_SomeMessages_WithToken(Type type) Assert.IsFalse(messenger.IsRegistered(recipient)); Assert.IsFalse(messenger.IsRegistered(recipient)); - Assert.AreEqual(recipient.As, 0); - Assert.AreEqual(recipient.Bs, 0); + Assert.AreEqual(0, recipient.As); + Assert.AreEqual(0, recipient.Bs); _ = messenger.Send(token); - Assert.AreEqual(recipient.As, 0); - Assert.AreEqual(recipient.Bs, 1); + Assert.AreEqual(0, recipient.As); + Assert.AreEqual(1, recipient.Bs); _ = messenger.Send(token); - Assert.AreEqual(recipient.As, 1); - Assert.AreEqual(recipient.Bs, 1); + Assert.AreEqual(1, recipient.As); + Assert.AreEqual(1, recipient.Bs); messenger.UnregisterAll(recipient, token); @@ -458,7 +458,7 @@ public void Test_Messenger_RegisterWithTypeParameter(Type type) _ = messenger.Send(); - Assert.AreEqual(number, 42); + Assert.AreEqual(42, number); } [TestMethod] @@ -589,8 +589,8 @@ void Test() foreach (RecipientWithSomeMessages? recipient in recipients) { - Assert.AreEqual(recipient!.As, 1); - Assert.AreEqual(recipient!.Bs, 2); + Assert.AreEqual(1, recipient!.As); + Assert.AreEqual(2, recipient!.Bs); } foreach (ref RecipientWithSomeMessages? recipient in recipients.AsSpan()) diff --git a/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservableObject.cs b/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservableObject.cs index e5da66f5..c73c412f 100644 --- a/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservableObject.cs +++ b/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservableObject.cs @@ -46,10 +46,10 @@ public void Test_ObservableObject_Events() model.Data = 42; - Assert.AreEqual(changing.Item1?.PropertyName, nameof(SampleModel.Data)); - Assert.AreEqual(changing.Item2, 0); - Assert.AreEqual(changed.Item1?.PropertyName, nameof(SampleModel.Data)); - Assert.AreEqual(changed.Item2, 42); + Assert.AreEqual(nameof(SampleModel.Data), changing.Item1?.PropertyName); + Assert.AreEqual(0, changing.Item2); + Assert.AreEqual(nameof(SampleModel.Data), changed.Item1?.PropertyName); + Assert.AreEqual(42, changed.Item2); } public class SampleModel : ObservableObject @@ -87,11 +87,11 @@ public void Test_ObservableObject_ProxyCrudWithProperty() model.Name = "Bob"; - Assert.AreEqual(changing.Item1?.PropertyName, nameof(WrappingModelWithProperty.Name)); - Assert.AreEqual(changing.Item2, "Alice"); - Assert.AreEqual(changed.Item1?.PropertyName, nameof(WrappingModelWithProperty.Name)); - Assert.AreEqual(changed.Item2, "Bob"); - Assert.AreEqual(model.PersonProxy.Name, "Bob"); + Assert.AreEqual(nameof(WrappingModelWithProperty.Name), changing.Item1?.PropertyName); + Assert.AreEqual("Alice", changing.Item2); + Assert.AreEqual(nameof(WrappingModelWithProperty.Name), changed.Item1?.PropertyName); + Assert.AreEqual("Bob", changed.Item2); + Assert.AreEqual("Bob", model.PersonProxy.Name); } public class Person @@ -141,11 +141,11 @@ public void Test_ObservableObject_ProxyCrudWithField() model.Name = "Bob"; - Assert.AreEqual(changing.Item1?.PropertyName, nameof(WrappingModelWithField.Name)); - Assert.AreEqual(changing.Item2, "Alice"); - Assert.AreEqual(changed.Item1?.PropertyName, nameof(WrappingModelWithField.Name)); - Assert.AreEqual(changed.Item2, "Bob"); - Assert.AreEqual(model.PersonProxy.Name, "Bob"); + Assert.AreEqual(nameof(WrappingModelWithField.Name), changing.Item1?.PropertyName); + Assert.AreEqual("Alice", changing.Item2); + Assert.AreEqual(nameof(WrappingModelWithField.Name), changed.Item1?.PropertyName); + Assert.AreEqual("Bob", changed.Item2); + Assert.AreEqual("Bob", model.PersonProxy.Name); } public class WrappingModelWithField : ObservableObject @@ -195,9 +195,9 @@ static async Task TestAsync(Action> callback) model.Data = task; Assert.IsFalse(task.IsCompleted); - Assert.AreEqual(changing.Item1?.PropertyName, nameof(SampleModelWithTask.Data)); + Assert.AreEqual(nameof(SampleModelWithTask.Data), changing.Item1?.PropertyName); Assert.IsNull(changing.Item2); - Assert.AreEqual(changed.Item1?.PropertyName, nameof(SampleModelWithTask.Data)); + Assert.AreEqual(nameof(SampleModelWithTask.Data), changed.Item1?.PropertyName); Assert.AreSame(changed.Item2, task); changed = default; @@ -207,7 +207,7 @@ static async Task TestAsync(Action> callback) await Task.Delay(100); // Time for the notification to dispatch Assert.IsTrue(task.IsCompleted); - Assert.AreEqual(changed.Item1?.PropertyName, nameof(SampleModel.Data)); + Assert.AreEqual(nameof(SampleModel.Data), changed.Item1?.PropertyName); Assert.AreSame(changed.Item2, task); } diff --git a/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservableObjectAttribute.cs b/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservableObjectAttribute.cs index 78ed9320..0d30c3d3 100644 --- a/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservableObjectAttribute.cs +++ b/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservableObjectAttribute.cs @@ -48,10 +48,10 @@ public void Test_ObservableObjectAttribute_Events() model.Data = 42; - Assert.AreEqual(changing.Item1?.PropertyName, nameof(SampleModel.Data)); - Assert.AreEqual(changing.Item2, 0); - Assert.AreEqual(changed.Item1?.PropertyName, nameof(SampleModel.Data)); - Assert.AreEqual(changed.Item2, 42); + Assert.AreEqual(nameof(SampleModel.Data), changing.Item1?.PropertyName); + Assert.AreEqual(0, changing.Item2); + Assert.AreEqual(nameof(SampleModel.Data), changed.Item1?.PropertyName); + Assert.AreEqual(42, changed.Item2); } [TestMethod] @@ -89,10 +89,10 @@ public void Test_ObservableObjectAttribute_OnSealedClass_Events() model.Data = 42; - Assert.AreEqual(changing.Item1?.PropertyName, nameof(SampleModelSealed.Data)); - Assert.AreEqual(changing.Item2, 0); - Assert.AreEqual(changed.Item1?.PropertyName, nameof(SampleModelSealed.Data)); - Assert.AreEqual(changed.Item2, 42); + Assert.AreEqual(nameof(SampleModelSealed.Data), changing.Item1?.PropertyName); + Assert.AreEqual(0, changing.Item2); + Assert.AreEqual(nameof(SampleModelSealed.Data), changed.Item1?.PropertyName); + Assert.AreEqual(42, changed.Item2); } [ObservableObject] diff --git a/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservablePropertyAttribute.cs b/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservablePropertyAttribute.cs index 65ab55fe..5a8f61dc 100644 --- a/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservablePropertyAttribute.cs +++ b/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservablePropertyAttribute.cs @@ -63,10 +63,10 @@ public void Test_ObservablePropertyAttribute_Events() model.Data = 42; - Assert.AreEqual(changing.Item1?.PropertyName, nameof(SampleModel.Data)); - Assert.AreEqual(changing.Item2, 0); - Assert.AreEqual(changed.Item1?.PropertyName, nameof(SampleModel.Data)); - Assert.AreEqual(changed.Item2, 42); + Assert.AreEqual(nameof(SampleModel.Data), changing.Item1?.PropertyName); + Assert.AreEqual(0, changing.Item2); + Assert.AreEqual(nameof(SampleModel.Data), changed.Item1?.PropertyName); + Assert.AreEqual(42, changed.Item2); } // See https://github.com/CommunityToolkit/WindowsCommunityToolkit/issues/4225 @@ -102,10 +102,10 @@ public void Test_ObservablePropertyAttributeWithinRegion_Events() model.Counter = 42; - Assert.AreEqual(changing.Item1?.PropertyName, nameof(SampleModel.Counter)); - Assert.AreEqual(changing.Item2, 0); - Assert.AreEqual(changed.Item1?.PropertyName, nameof(SampleModel.Counter)); - Assert.AreEqual(changed.Item2, 42); + Assert.AreEqual(nameof(SampleModel.Counter), changing.Item1?.PropertyName); + Assert.AreEqual(0, changing.Item2); + Assert.AreEqual(nameof(SampleModel.Counter), changed.Item1?.PropertyName); + Assert.AreEqual(42, changed.Item2); } // See https://github.com/CommunityToolkit/WindowsCommunityToolkit/issues/4225 @@ -141,10 +141,10 @@ public void Test_ObservablePropertyAttributeRightBelowRegion_Events() model.Name = "Bob"; - Assert.AreEqual(changing.Item1?.PropertyName, nameof(SampleModel.Name)); - Assert.AreEqual(changing.Item2, null); - Assert.AreEqual(changed.Item1?.PropertyName, nameof(SampleModel.Name)); - Assert.AreEqual(changed.Item2, "Bob"); + Assert.AreEqual(nameof(SampleModel.Name), changing.Item1?.PropertyName); + Assert.AreEqual(null, changing.Item2); + Assert.AreEqual(nameof(SampleModel.Name), changed.Item1?.PropertyName); + Assert.AreEqual("Bob", changed.Item2); } [TestMethod] @@ -169,15 +169,15 @@ public void Test_ValidationAttributes() Assert.IsNotNull(nameProperty.GetCustomAttribute()); Assert.IsNotNull(nameProperty.GetCustomAttribute()); - Assert.AreEqual(nameProperty.GetCustomAttribute()!.Length, 1); + Assert.AreEqual(1, nameProperty.GetCustomAttribute()!.Length); Assert.IsNotNull(nameProperty.GetCustomAttribute()); - Assert.AreEqual(nameProperty.GetCustomAttribute()!.Length, 100); + Assert.AreEqual(100, nameProperty.GetCustomAttribute()!.Length); PropertyInfo ageProperty = typeof(MyFormViewModel).GetProperty(nameof(MyFormViewModel.Age))!; Assert.IsNotNull(ageProperty.GetCustomAttribute()); - Assert.AreEqual(ageProperty.GetCustomAttribute()!.Minimum, 0); - Assert.AreEqual(ageProperty.GetCustomAttribute()!.Maximum, 120); + Assert.AreEqual(0, ageProperty.GetCustomAttribute()!.Minimum); + Assert.AreEqual(120, ageProperty.GetCustomAttribute()!.Maximum); PropertyInfo emailProperty = typeof(MyFormViewModel).GetProperty(nameof(MyFormViewModel.Email))!; @@ -189,21 +189,21 @@ public void Test_ValidationAttributes() Assert.IsNotNull(testAttribute); Assert.IsNull(testAttribute.O); - Assert.AreEqual(testAttribute.T, typeof(SampleModel)); - Assert.AreEqual(testAttribute.Flag, true); - Assert.AreEqual(testAttribute.D, 6.28); + Assert.AreEqual(typeof(SampleModel), testAttribute.T); + Assert.AreEqual(true, testAttribute.Flag); + Assert.AreEqual(6.28, testAttribute.D); CollectionAssert.AreEqual(testAttribute.Names, new[] { "Bob", "Ross" }); object[]? nestedArray = (object[]?)testAttribute.NestedArray; Assert.IsNotNull(nestedArray); - Assert.AreEqual(nestedArray!.Length, 3); - Assert.AreEqual(nestedArray[0], 1); - Assert.AreEqual(nestedArray[1], "Hello"); + Assert.AreEqual(3, nestedArray!.Length); + Assert.AreEqual(1, nestedArray[0]); + Assert.AreEqual("Hello", nestedArray[1]); Assert.IsTrue(nestedArray[2] is int[]); CollectionAssert.AreEqual((int[])nestedArray[2], new[] { 2, 3, 4 }); - Assert.AreEqual(testAttribute.Animal, Animal.Llama); + Assert.AreEqual(Animal.Llama, testAttribute.Animal); } // See https://github.com/CommunityToolkit/WindowsCommunityToolkit/issues/4216 @@ -218,7 +218,7 @@ public void Test_ObservablePropertyWithValueNamedField() model.Value = "Hello world"; - Assert.AreEqual(model.Value, "Hello world"); + Assert.AreEqual("Hello world", model.Value); CollectionAssert.AreEqual(new[] { nameof(model.Value) }, propertyNames); } @@ -239,7 +239,7 @@ public void Test_ObservablePropertyWithValueNamedField_WithValidationAttributes( model.Value = "Hello world"; - Assert.AreEqual(model.Value, "Hello world"); + Assert.AreEqual("Hello world", model.Value); // The [NotifyDataErrorInfo] attribute wasn't used, so the property shouldn't be validated Assert.IsFalse(errorsChanged); @@ -263,14 +263,14 @@ public void Test_ObservablePropertyWithValueNamedField_WithValidationAttributesA model.Value = "Bo"; Assert.IsTrue(model.HasErrors); - Assert.AreEqual(errors.Count, 1); - Assert.AreEqual(errors[0].PropertyName, nameof(ModelWithValuePropertyWithAutomaticValidation.Value)); + Assert.AreEqual(1, errors.Count); + Assert.AreEqual(nameof(ModelWithValuePropertyWithAutomaticValidation.Value), errors[0].PropertyName); model.Value = "Hello world"; Assert.IsFalse(model.HasErrors); - Assert.AreEqual(errors.Count, 2); - Assert.AreEqual(errors[1].PropertyName, nameof(ModelWithValuePropertyWithAutomaticValidation.Value)); + Assert.AreEqual(2, errors.Count); + Assert.AreEqual(nameof(ModelWithValuePropertyWithAutomaticValidation.Value), errors[1].PropertyName); } [TestMethod] @@ -289,14 +289,14 @@ public void Test_ObservablePropertyWithValueNamedField_WithValidationAttributesA model.Value = "Bo"; Assert.IsTrue(model.HasErrors); - Assert.AreEqual(errors.Count, 1); - Assert.AreEqual(errors[0].PropertyName, nameof(ModelWithValuePropertyWithAutomaticValidationWithClassLevelAttribute.Value)); + Assert.AreEqual(1, errors.Count); + Assert.AreEqual(nameof(ModelWithValuePropertyWithAutomaticValidationWithClassLevelAttribute.Value), errors[0].PropertyName); model.Value = "Hello world"; Assert.IsFalse(model.HasErrors); - Assert.AreEqual(errors.Count, 2); - Assert.AreEqual(errors[1].PropertyName, nameof(ModelWithValuePropertyWithAutomaticValidationWithClassLevelAttribute.Value)); + Assert.AreEqual(2, errors.Count); + Assert.AreEqual(nameof(ModelWithValuePropertyWithAutomaticValidationWithClassLevelAttribute.Value), errors[1].PropertyName); } [TestMethod] @@ -315,14 +315,14 @@ public void Test_ObservablePropertyWithValueNamedField_WithValidationAttributesA model.Value2 = "Bo"; Assert.IsTrue(model.HasErrors); - Assert.AreEqual(errors.Count, 1); - Assert.AreEqual(errors[0].PropertyName, nameof(ModelWithValuePropertyWithAutomaticValidationInheritingClassLevelAttribute.Value2)); + Assert.AreEqual(1, errors.Count); + Assert.AreEqual(nameof(ModelWithValuePropertyWithAutomaticValidationInheritingClassLevelAttribute.Value2), errors[0].PropertyName); model.Value2 = "Hello world"; Assert.IsFalse(model.HasErrors); - Assert.AreEqual(errors.Count, 2); - Assert.AreEqual(errors[1].PropertyName, nameof(ModelWithValuePropertyWithAutomaticValidationInheritingClassLevelAttribute.Value2)); + Assert.AreEqual(2, errors.Count); + Assert.AreEqual(nameof(ModelWithValuePropertyWithAutomaticValidationInheritingClassLevelAttribute.Value2), errors[1].PropertyName); } // See https://github.com/CommunityToolkit/WindowsCommunityToolkit/issues/4184 @@ -348,7 +348,7 @@ public void Test_GeneratedPropertiesWithValidationAttributesOverFields() ValidationResult[] validationErrors = model.GetErrors().ToArray(); - Assert.AreEqual(validationErrors.Length, 2); + Assert.AreEqual(2, validationErrors.Length); CollectionAssert.AreEqual(new[] { nameof(ViewModelWithValidatableGeneratedProperties.First) }, validationErrors[0].MemberNames.ToArray()); CollectionAssert.AreEqual(new[] { nameof(ViewModelWithValidatableGeneratedProperties.Last) }, validationErrors[1].MemberNames.ToArray()); @@ -618,7 +618,7 @@ public void Test_ObservableProperty_ObservableRecipientDoesNotBroadcastByDefault model.Name = null; // The [NotifyPropertyChangedRecipients] attribute wasn't used, so no messages should have been sent - Assert.AreEqual(messages.Count, 0); + Assert.AreEqual(0, messages.Count); } #if NET6_0_OR_GREATER @@ -760,9 +760,9 @@ public void Test_ObservableProperty_WithinGenericTypeWithMultipleTypeParameters( model.UValue = "Hello"; model.List = new List() { 420 }; - Assert.AreEqual(model.Value, true); - Assert.AreEqual(model.TValue, 42); - Assert.AreEqual(model.UValue, "Hello"); + Assert.AreEqual(true, model.Value); + Assert.AreEqual(42, model.TValue); + Assert.AreEqual("Hello", model.UValue); CollectionAssert.AreEqual(new[] { 420 }, model.List); CollectionAssert.AreEqual(new[] { nameof(model.Value), nameof(model.TValue), nameof(model.UValue), nameof(model.List) }, propertyNames); @@ -778,13 +778,13 @@ public void Test_ObservableProperty_WithBaseViewModelWithObservableObjectAttribu model.PropertyChanged += (s, e) => propertyNames.Add(e.PropertyName); - Assert.AreEqual(model.OtherProperty, "Ok"); + Assert.AreEqual("Ok", model.OtherProperty); model.MyProperty = "A"; model.OtherProperty = "B"; - Assert.AreEqual(model.MyProperty, "A"); - Assert.AreEqual(model.OtherProperty, "B"); + Assert.AreEqual("A", model.MyProperty); + Assert.AreEqual("B", model.OtherProperty); CollectionAssert.AreEqual(new[] { nameof(model.MyProperty), nameof(model.OtherProperty) }, propertyNames); } @@ -801,7 +801,7 @@ public void Test_ObservableProperty_ModelWithCultureAwarePropertyName() model.InputFolder = 42; - Assert.AreEqual(model.InputFolder, 42); + Assert.AreEqual(42, model.InputFolder); CollectionAssert.AreEqual(new[] { nameof(model.InputFolder) }, propertyNames); } @@ -864,9 +864,9 @@ public void Test_ObservableProperty_ForwardsSpecialCasesDataAnnotationAttributes DisplayAttribute? displayAttribute = (DisplayAttribute?)propertyInfo.GetCustomAttribute(typeof(DisplayAttribute)); Assert.IsNotNull(displayAttribute); - Assert.AreEqual(displayAttribute!.Name, "MyProperty"); - Assert.AreEqual(displayAttribute.ResourceType, typeof(List)); - Assert.AreEqual(displayAttribute.Prompt, "Foo bar baz"); + Assert.AreEqual("MyProperty", displayAttribute!.Name); + Assert.AreEqual(typeof(List), displayAttribute.ResourceType); + Assert.AreEqual("Foo bar baz", displayAttribute.Prompt); KeyAttribute? keyAttribute = (KeyAttribute?)propertyInfo.GetCustomAttribute(typeof(KeyAttribute)); @@ -880,15 +880,15 @@ public void Test_ObservableProperty_ForwardsSpecialCasesDataAnnotationAttributes UIHintAttribute? uiHintAttribute = (UIHintAttribute?)propertyInfo.GetCustomAttribute(typeof(UIHintAttribute)); Assert.IsNotNull(uiHintAttribute); - Assert.AreEqual(uiHintAttribute!.UIHint, "MyControl"); - Assert.AreEqual(uiHintAttribute.PresentationLayer, "WPF"); - Assert.AreEqual(uiHintAttribute.ControlParameters.Count, 3); + Assert.AreEqual("MyControl", uiHintAttribute!.UIHint); + Assert.AreEqual("WPF", uiHintAttribute.PresentationLayer); + Assert.AreEqual(3, uiHintAttribute.ControlParameters.Count); Assert.IsTrue(uiHintAttribute.ControlParameters.ContainsKey("Foo")); Assert.IsTrue(uiHintAttribute.ControlParameters.ContainsKey("Bar")); Assert.IsTrue(uiHintAttribute.ControlParameters.ContainsKey("Baz")); - Assert.AreEqual(uiHintAttribute.ControlParameters["Foo"], 42); - Assert.AreEqual(uiHintAttribute.ControlParameters["Bar"], 3.14); - Assert.AreEqual(uiHintAttribute.ControlParameters["Baz"], "Hello"); + Assert.AreEqual(42, uiHintAttribute.ControlParameters["Foo"]); + Assert.AreEqual(3.14, uiHintAttribute.ControlParameters["Bar"]); + Assert.AreEqual("Hello", uiHintAttribute.ControlParameters["Baz"]); ScaffoldColumnAttribute? scaffoldColumnAttribute = (ScaffoldColumnAttribute?)propertyInfo.GetCustomAttribute(typeof(ScaffoldColumnAttribute)); @@ -938,14 +938,14 @@ public void Test_ObservableProperty_WithExplicitAttributeForProperty() Assert.IsNotNull(nameProperty.GetCustomAttribute()); Assert.IsNotNull(nameProperty.GetCustomAttribute()); - Assert.AreEqual(nameProperty.GetCustomAttribute()!.Length, 1); + Assert.AreEqual(1, nameProperty.GetCustomAttribute()!.Length); Assert.IsNotNull(nameProperty.GetCustomAttribute()); - Assert.AreEqual(nameProperty.GetCustomAttribute()!.Length, 100); + Assert.AreEqual(100, nameProperty.GetCustomAttribute()!.Length); PropertyInfo lastNameProperty = typeof(MyViewModelWithExplicitPropertyAttributes).GetProperty(nameof(MyViewModelWithExplicitPropertyAttributes.LastName))!; Assert.IsNotNull(lastNameProperty.GetCustomAttribute()); - Assert.AreEqual(lastNameProperty.GetCustomAttribute()!.Name, "lastName"); + Assert.AreEqual("lastName", lastNameProperty.GetCustomAttribute()!.Name); Assert.IsNotNull(lastNameProperty.GetCustomAttribute()); PropertyInfo justOneSimpleAttributeProperty = typeof(MyViewModelWithExplicitPropertyAttributes).GetProperty(nameof(MyViewModelWithExplicitPropertyAttributes.JustOneSimpleAttribute))!; @@ -958,21 +958,21 @@ public void Test_ObservableProperty_WithExplicitAttributeForProperty() Assert.IsNotNull(testAttribute); Assert.IsNull(testAttribute.O); - Assert.AreEqual(testAttribute.T, typeof(MyViewModelWithExplicitPropertyAttributes)); - Assert.AreEqual(testAttribute.Flag, true); - Assert.AreEqual(testAttribute.D, 6.28); + Assert.AreEqual(typeof(MyViewModelWithExplicitPropertyAttributes), testAttribute.T); + Assert.AreEqual(true, testAttribute.Flag); + Assert.AreEqual(6.28, testAttribute.D); CollectionAssert.AreEqual(testAttribute.Names, new[] { "Bob", "Ross" }); object[]? nestedArray = (object[]?)testAttribute.NestedArray; Assert.IsNotNull(nestedArray); - Assert.AreEqual(nestedArray!.Length, 3); - Assert.AreEqual(nestedArray[0], 1); - Assert.AreEqual(nestedArray[1], "Hello"); + Assert.AreEqual(3, nestedArray!.Length); + Assert.AreEqual(1, nestedArray[0]); + Assert.AreEqual("Hello", nestedArray[1]); Assert.IsTrue(nestedArray[2] is int[]); CollectionAssert.AreEqual((int[])nestedArray[2], new[] { 2, 3, 4 }); - Assert.AreEqual(testAttribute.Animal, Animal.Llama); + Assert.AreEqual(Animal.Llama, testAttribute.Animal); PropertyInfo someComplexRandomAttribute = typeof(MyViewModelWithExplicitPropertyAttributes).GetProperty(nameof(MyViewModelWithExplicitPropertyAttributes.SomeComplexRandomAttribute))!; @@ -982,25 +982,25 @@ public void Test_ObservableProperty_WithExplicitAttributeForProperty() Assert.IsNotNull(testAttribute2); Assert.IsNull(testAttribute2.O); - Assert.AreEqual(testAttribute2.T, typeof(MyViewModelWithExplicitPropertyAttributes)); - Assert.AreEqual(testAttribute2.Flag, true); - Assert.AreEqual(testAttribute2.D, 6.28); + Assert.AreEqual(typeof(MyViewModelWithExplicitPropertyAttributes), testAttribute2.T); + Assert.AreEqual(true, testAttribute2.Flag); + Assert.AreEqual(6.28, testAttribute2.D); Assert.IsNotNull(testAttribute2.Objects); Assert.IsTrue(testAttribute2.Objects is object[]); - Assert.AreEqual(((object[])testAttribute2.Objects).Length, 1); - Assert.AreEqual(((object[])testAttribute2.Objects)[0], "Test"); + Assert.AreEqual(1, ((object[])testAttribute2.Objects).Length); + Assert.AreEqual("Test", ((object[])testAttribute2.Objects)[0]); CollectionAssert.AreEqual(testAttribute2.Names, new[] { "Bob", "Ross" }); object[]? nestedArray2 = (object[]?)testAttribute2.NestedArray; Assert.IsNotNull(nestedArray2); - Assert.AreEqual(nestedArray2!.Length, 4); - Assert.AreEqual(nestedArray2[0], 1); - Assert.AreEqual(nestedArray2[1], "Hello"); - Assert.AreEqual(nestedArray2[2], 42); + Assert.AreEqual(4, nestedArray2!.Length); + Assert.AreEqual(1, nestedArray2[0]); + Assert.AreEqual("Hello", nestedArray2[1]); + Assert.AreEqual(42, nestedArray2[2]); Assert.IsNull(nestedArray2[3]); - Assert.AreEqual(testAttribute2.Animal, (Animal)67); + Assert.AreEqual((Animal)67, testAttribute2.Animal); } // See https://github.com/CommunityToolkit/dotnet/issues/446 diff --git a/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservableRecipient.cs b/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservableRecipient.cs index 9149ddcc..28135603 100644 --- a/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservableRecipient.cs +++ b/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservableRecipient.cs @@ -87,9 +87,9 @@ public void Test_ObservableRecipient_Broadcast(Type type) Assert.IsNotNull(message); Assert.AreSame(message.Sender, viewmodel); - Assert.AreEqual(message.OldValue, 0); - Assert.AreEqual(message.NewValue, 42); - Assert.AreEqual(message.PropertyName, nameof(SomeRecipient.Data)); + Assert.AreEqual(0, message.OldValue); + Assert.AreEqual(42, message.NewValue); + Assert.AreEqual(nameof(SomeRecipient.Data), message.PropertyName); } [TestMethod] diff --git a/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservableRecipientAttribute.cs b/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservableRecipientAttribute.cs index 9e2ee3dd..3b2034ca 100644 --- a/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservableRecipientAttribute.cs +++ b/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservableRecipientAttribute.cs @@ -32,19 +32,19 @@ public void Test_ObservableRecipientAttribute_Events() model.Name = "No"; Assert.IsTrue(model.HasErrors); - Assert.AreEqual(args.Count, 2); - Assert.AreEqual(args[0].PropertyName, nameof(Person.Name)); - Assert.AreEqual(args[1].PropertyName, nameof(INotifyDataErrorInfo.HasErrors)); + Assert.AreEqual(2, args.Count); + Assert.AreEqual(nameof(Person.Name), args[0].PropertyName); + Assert.AreEqual(nameof(INotifyDataErrorInfo.HasErrors), args[1].PropertyName); model.Name = "Valid"; Assert.IsFalse(model.HasErrors); - Assert.AreEqual(args.Count, 4); - Assert.AreEqual(args[2].PropertyName, nameof(Person.Name)); - Assert.AreEqual(args[3].PropertyName, nameof(INotifyDataErrorInfo.HasErrors)); + Assert.AreEqual(4, args.Count); + Assert.AreEqual(nameof(Person.Name), args[2].PropertyName); + Assert.AreEqual(nameof(INotifyDataErrorInfo.HasErrors), args[3].PropertyName); Assert.IsNotNull(typeof(Person).GetProperty("Messenger", BindingFlags.Instance | BindingFlags.NonPublic)); - Assert.AreEqual(typeof(Person).GetConstructors(BindingFlags.Instance | BindingFlags.NonPublic).Length, 0); + Assert.AreEqual(0, typeof(Person).GetConstructors(BindingFlags.Instance | BindingFlags.NonPublic).Length); } [ObservableRecipient] @@ -78,7 +78,7 @@ public void Test_ObservableRecipientAttribute_AbstractConstructors() { ConstructorInfo[]? ctors = typeof(AbstractPerson).GetConstructors(BindingFlags.Instance | BindingFlags.NonPublic); - Assert.AreEqual(ctors.Length, 2); + Assert.AreEqual(2, ctors.Length); Assert.IsTrue(ctors.All(static ctor => ctor.IsFamily)); } @@ -92,7 +92,7 @@ public void Test_ObservableRecipientAttribute_NonAbstractConstructors() { ConstructorInfo[]? ctors = typeof(NonAbstractPerson).GetConstructors(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); - Assert.AreEqual(ctors.Length, 2); + Assert.AreEqual(2, ctors.Length); Assert.IsTrue(ctors.All(static ctor => ctor.IsPublic)); } diff --git a/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservableValidator.cs b/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservableValidator.cs index 7b09d107..464fdf91 100644 --- a/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservableValidator.cs +++ b/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservableValidator.cs @@ -35,16 +35,16 @@ public void Test_ObservableValidator_HasErrors() // properties were broadcast as well (both the changed property and HasErrors). We need // this last one to raise notifications too so that users can bind to that in the UI. Assert.IsTrue(model.HasErrors); - Assert.AreEqual(args.Count, 2); - Assert.AreEqual(args[0].PropertyName, nameof(Person.Name)); - Assert.AreEqual(args[1].PropertyName, nameof(INotifyDataErrorInfo.HasErrors)); + Assert.AreEqual(2, args.Count); + Assert.AreEqual(nameof(Person.Name), args[0].PropertyName); + Assert.AreEqual(nameof(INotifyDataErrorInfo.HasErrors), args[1].PropertyName); model.Name = "Valid"; Assert.IsFalse(model.HasErrors); - Assert.AreEqual(args.Count, 4); - Assert.AreEqual(args[2].PropertyName, nameof(Person.Name)); - Assert.AreEqual(args[3].PropertyName, nameof(INotifyDataErrorInfo.HasErrors)); + Assert.AreEqual(4, args.Count); + Assert.AreEqual(nameof(Person.Name), args[2].PropertyName); + Assert.AreEqual(nameof(INotifyDataErrorInfo.HasErrors), args[3].PropertyName); } [TestMethod] @@ -58,31 +58,31 @@ public void Test_ObservableValidator_ErrorsChanged() model.Name = "Foo"; - Assert.AreEqual(errors.Count, 1); + Assert.AreEqual(1, errors.Count); Assert.AreSame(errors[0].Sender, model); - Assert.AreEqual(errors[0].Args.PropertyName, nameof(Person.Name)); + Assert.AreEqual(nameof(Person.Name), errors[0].Args.PropertyName); errors.Clear(); model.Name = "Bar"; - Assert.AreEqual(errors.Count, 1); + Assert.AreEqual(1, errors.Count); Assert.AreSame(errors[0].Sender, model); - Assert.AreEqual(errors[0].Args.PropertyName, nameof(Person.Name)); + Assert.AreEqual(nameof(Person.Name), errors[0].Args.PropertyName); errors.Clear(); model.Name = "Valid"; - Assert.AreEqual(errors.Count, 1); + Assert.AreEqual(1, errors.Count); Assert.AreSame(errors[0].Sender, model); - Assert.AreEqual(errors[0].Args.PropertyName, nameof(Person.Name)); + Assert.AreEqual(nameof(Person.Name), errors[0].Args.PropertyName); errors.Clear(); model.Name = "This is fine"; - Assert.AreEqual(errors.Count, 0); + Assert.AreEqual(0, errors.Count); } [TestMethod] @@ -90,35 +90,35 @@ public void Test_ObservableValidator_GetErrors() { Person? model = new(); - Assert.AreEqual(model.GetErrors(null).Count(), 0); - Assert.AreEqual(model.GetErrors(string.Empty).Count(), 0); - Assert.AreEqual(model.GetErrors("ThereIsntAPropertyWithThisName").Count(), 0); - Assert.AreEqual(model.GetErrors(nameof(Person.Name)).Count(), 0); + Assert.AreEqual(0, model.GetErrors(null).Count()); + Assert.AreEqual(0, model.GetErrors(string.Empty).Count()); + Assert.AreEqual(0, model.GetErrors("ThereIsntAPropertyWithThisName").Count()); + Assert.AreEqual(0, model.GetErrors(nameof(Person.Name)).Count()); model.Name = "Foo"; ValidationResult[]? errors = model.GetErrors(nameof(Person.Name)).ToArray(); - Assert.AreEqual(errors.Length, 1); - Assert.AreEqual(errors[0].MemberNames.First(), nameof(Person.Name)); + Assert.AreEqual(1, errors.Length); + Assert.AreEqual(nameof(Person.Name), errors[0].MemberNames.First()); - Assert.AreEqual(model.GetErrors("ThereIsntAPropertyWithThisName").Count(), 0); + Assert.AreEqual(0, model.GetErrors("ThereIsntAPropertyWithThisName").Count()); errors = model.GetErrors(null).ToArray(); - Assert.AreEqual(errors.Length, 1); - Assert.AreEqual(errors[0].MemberNames.First(), nameof(Person.Name)); + Assert.AreEqual(1, errors.Length); + Assert.AreEqual(nameof(Person.Name), errors[0].MemberNames.First()); errors = model.GetErrors(string.Empty).ToArray(); - Assert.AreEqual(errors.Length, 1); - Assert.AreEqual(errors[0].MemberNames.First(), nameof(Person.Name)); + Assert.AreEqual(1, errors.Length); + Assert.AreEqual(nameof(Person.Name), errors[0].MemberNames.First()); model.Age = -1; errors = model.GetErrors(null).ToArray(); - Assert.AreEqual(errors.Length, 2); + Assert.AreEqual(2, errors.Length); Assert.IsTrue(errors.Any(e => e.MemberNames.First().Equals(nameof(Person.Name)))); Assert.IsTrue(errors.Any(e => e.MemberNames.First().Equals(nameof(Person.Age)))); @@ -126,7 +126,7 @@ public void Test_ObservableValidator_GetErrors() errors = model.GetErrors(null).ToArray(); - Assert.AreEqual(errors.Length, 1); + Assert.AreEqual(1, errors.Length); Assert.IsTrue(errors.Any(e => e.MemberNames.First().Equals(nameof(Person.Name)))); Assert.IsFalse(errors.Any(e => e.MemberNames.First().Equals(nameof(Person.Age)))); } @@ -166,28 +166,28 @@ public void Test_ObservableValidator_TrySetProperty() Assert.IsTrue(model.TrySetName("Hello", out IReadOnlyCollection? errors)); Assert.IsTrue(errors.Count == 0); Assert.IsTrue(events.Count == 0); - Assert.AreEqual(model.Name, "Hello"); + Assert.AreEqual("Hello", model.Name); Assert.IsFalse(model.HasErrors); // Invalid value #1, this should be ignored Assert.IsFalse(model.TrySetName(null, out errors)); Assert.IsTrue(errors.Count > 0); Assert.IsTrue(events.Count == 0); - Assert.AreEqual(model.Name, "Hello"); + Assert.AreEqual("Hello", model.Name); Assert.IsFalse(model.HasErrors); // Invalid value #2, same as above Assert.IsFalse(model.TrySetName("This string is too long for the target property in this model and should fail", out errors)); Assert.IsTrue(errors.Count > 0); Assert.IsTrue(events.Count == 0); - Assert.AreEqual(model.Name, "Hello"); + Assert.AreEqual("Hello", model.Name); Assert.IsFalse(model.HasErrors); // Correct value, this should update the property Assert.IsTrue(model.TrySetName("Hello world", out errors)); Assert.IsTrue(errors.Count == 0); Assert.IsTrue(events.Count == 0); - Assert.AreEqual(model.Name, "Hello world"); + Assert.AreEqual("Hello world", model.Name); Assert.IsFalse(model.HasErrors); // Actually set an invalid value to show some errors @@ -204,7 +204,7 @@ public void Test_ObservableValidator_TrySetProperty() Assert.IsTrue(errors.Count == 0); Assert.IsTrue(events.Count == 2); Assert.IsFalse(model.HasErrors); - Assert.AreEqual(model.Name, "This is fine"); + Assert.AreEqual("This is fine", model.Name); } [TestMethod] @@ -219,14 +219,14 @@ public void Test_ObservableValidator_ValidateProperty() model.A = 42; model.B = 30; - Assert.AreEqual(events.Count, 0); + Assert.AreEqual(0, events.Count); Assert.IsFalse(model.HasErrors); // Make B greater than A, hence invalidating A model.B = 50; - Assert.AreEqual(events.Count, 1); - Assert.AreEqual(events.Last().PropertyName, nameof(ComparableModel.A)); + Assert.AreEqual(1, events.Count); + Assert.AreEqual(nameof(ComparableModel.A), events.Last().PropertyName); Assert.IsTrue(model.HasErrors); events.Clear(); @@ -234,9 +234,9 @@ public void Test_ObservableValidator_ValidateProperty() // Make A greater than B, hence making it valid again model.A = 51; - Assert.AreEqual(events.Count, 1); - Assert.AreEqual(events.Last().PropertyName, nameof(ComparableModel.A)); - Assert.AreEqual(model.GetErrors(nameof(ComparableModel.A)).Count(), 0); + Assert.AreEqual(1, events.Count); + Assert.AreEqual(nameof(ComparableModel.A), events.Last().PropertyName); + Assert.AreEqual(0, model.GetErrors(nameof(ComparableModel.A)).Count()); Assert.IsFalse(model.HasErrors); events.Clear(); @@ -244,9 +244,9 @@ public void Test_ObservableValidator_ValidateProperty() // Make A smaller than B, hence invalidating it model.A = 49; - Assert.AreEqual(events.Count, 1); - Assert.AreEqual(events.Last().PropertyName, nameof(ComparableModel.A)); - Assert.AreEqual(model.GetErrors(nameof(ComparableModel.A)).Count(), 1); + Assert.AreEqual(1, events.Count); + Assert.AreEqual(nameof(ComparableModel.A), events.Last().PropertyName); + Assert.AreEqual(1, model.GetErrors(nameof(ComparableModel.A)).Count()); Assert.IsTrue(model.HasErrors); events.Clear(); @@ -254,9 +254,9 @@ public void Test_ObservableValidator_ValidateProperty() // Lower B, hence making A valid again model.B = 20; - Assert.AreEqual(events.Count, 1); - Assert.AreEqual(events.Last().PropertyName, nameof(ComparableModel.A)); - Assert.AreEqual(model.GetErrors(nameof(ComparableModel.A)).Count(), 0); + Assert.AreEqual(1, events.Count); + Assert.AreEqual(nameof(ComparableModel.A), events.Last().PropertyName); + Assert.AreEqual(0, model.GetErrors(nameof(ComparableModel.A)).Count()); Assert.IsFalse(model.HasErrors); } @@ -424,7 +424,7 @@ public void Test_ObservableValidator_CustomValidation() model.A = 10; Assert.IsFalse(model.HasErrors); - Assert.AreEqual(events.Count, 0); + Assert.AreEqual(0, events.Count); } [TestMethod] @@ -438,28 +438,28 @@ public void Test_ObservableValidator_CustomValidationWithInjectedService() model.Name = "This is a valid name"; Assert.IsFalse(model.HasErrors); - Assert.AreEqual(events.Count, 0); + Assert.AreEqual(0, events.Count); model.Name = "This is invalid238!!"; Assert.IsTrue(model.HasErrors); - Assert.AreEqual(events.Count, 1); - Assert.AreEqual(events[0].PropertyName, nameof(ValidationWithServiceModel.Name)); - Assert.AreEqual(model.GetErrors(nameof(ValidationWithServiceModel.Name)).ToArray().Length, 1); + Assert.AreEqual(1, events.Count); + Assert.AreEqual(nameof(ValidationWithServiceModel.Name), events[0].PropertyName); + Assert.AreEqual(1, model.GetErrors(nameof(ValidationWithServiceModel.Name)).ToArray().Length); model.Name = "This is valid but it is too long so the validation will fail anyway"; Assert.IsTrue(model.HasErrors); - Assert.AreEqual(events.Count, 2); - Assert.AreEqual(events[1].PropertyName, nameof(ValidationWithServiceModel.Name)); - Assert.AreEqual(model.GetErrors(nameof(ValidationWithServiceModel.Name)).ToArray().Length, 1); + Assert.AreEqual(2, events.Count); + Assert.AreEqual(nameof(ValidationWithServiceModel.Name), events[1].PropertyName); + Assert.AreEqual(1, model.GetErrors(nameof(ValidationWithServiceModel.Name)).ToArray().Length); model.Name = "This is both too long and it also contains invalid characters, a real disaster!"; Assert.IsTrue(model.HasErrors); - Assert.AreEqual(events.Count, 3); - Assert.AreEqual(events[2].PropertyName, nameof(ValidationWithServiceModel.Name)); - Assert.AreEqual(model.GetErrors(nameof(ValidationWithServiceModel.Name)).ToArray().Length, 2); + Assert.AreEqual(3, events.Count); + Assert.AreEqual(nameof(ValidationWithServiceModel.Name), events[2].PropertyName); + Assert.AreEqual(2, model.GetErrors(nameof(ValidationWithServiceModel.Name)).ToArray().Length); } [TestMethod] @@ -472,15 +472,15 @@ public void Test_ObservableValidator_ValidationWithFormattedDisplayName() // We need to order because there is no guaranteed order on the members of a type ValidationResult[] allErrors = model.GetErrors().OrderBy(error => error.ErrorMessage).ToArray(); - Assert.AreEqual(allErrors.Length, 2); + Assert.AreEqual(2, allErrors.Length); - Assert.AreEqual(allErrors[0].MemberNames.Count(), 1); - Assert.AreEqual(allErrors[0].MemberNames.Single(), nameof(ValidationWithDisplayName.StringMayNotBeEmpty)); - Assert.AreEqual(allErrors[0].ErrorMessage, $"FIRST: {nameof(ValidationWithDisplayName.StringMayNotBeEmpty)}."); + Assert.AreEqual(1, allErrors[0].MemberNames.Count()); + Assert.AreEqual(nameof(ValidationWithDisplayName.StringMayNotBeEmpty), allErrors[0].MemberNames.Single()); + Assert.AreEqual($"FIRST: {nameof(ValidationWithDisplayName.StringMayNotBeEmpty)}.", allErrors[0].ErrorMessage); - Assert.AreEqual(allErrors[1].MemberNames.Count(), 1); - Assert.AreEqual(allErrors[1].MemberNames.Single(), nameof(ValidationWithDisplayName.AnotherRequiredField)); - Assert.AreEqual(allErrors[1].ErrorMessage, $"SECOND: {nameof(ValidationWithDisplayName.AnotherRequiredField)}."); + Assert.AreEqual(1, allErrors[1].MemberNames.Count()); + Assert.AreEqual(nameof(ValidationWithDisplayName.AnotherRequiredField), allErrors[1].MemberNames.Single()); + Assert.AreEqual($"SECOND: {nameof(ValidationWithDisplayName.AnotherRequiredField)}.", allErrors[1].ErrorMessage); } // See: https://github.com/CommunityToolkit/WindowsCommunityToolkit/issues/4272 @@ -554,7 +554,7 @@ public void Test_ObservableValidator_WithGenericTypeParameters() ValidationResult[] errors = model.GetErrors(nameof(model.Value)).ToArray(); Assert.IsNotNull(errors); - Assert.AreEqual(errors.Length, 1); + Assert.AreEqual(1, errors.Length); CollectionAssert.AreEqual(errors[0].MemberNames.ToArray(), new[] { nameof(model.Value) }); @@ -749,7 +749,7 @@ public int A public static ValidationResult ValidateA(int x, ValidationContext context) { - Assert.AreEqual(context.MemberName, nameof(A)); + Assert.AreEqual(nameof(A), context.MemberName); if ((int)context.Items[nameof(A)]! == 42) { diff --git a/tests/CommunityToolkit.Mvvm.UnitTests/Test_RelayCommand.cs b/tests/CommunityToolkit.Mvvm.UnitTests/Test_RelayCommand.cs index f7c38869..d77a7f77 100644 --- a/tests/CommunityToolkit.Mvvm.UnitTests/Test_RelayCommand.cs +++ b/tests/CommunityToolkit.Mvvm.UnitTests/Test_RelayCommand.cs @@ -32,11 +32,11 @@ public void Test_RelayCommand_AlwaysEnabled() command.Execute(null); - Assert.AreEqual(ticks, 1); + Assert.AreEqual(1, ticks); command.Execute(new object()); - Assert.AreEqual(ticks, 2); + Assert.AreEqual(2, ticks); } [TestMethod] @@ -51,11 +51,11 @@ public void Test_RelayCommand_WithCanExecuteFunctionTrue() command.Execute(null); - Assert.AreEqual(ticks, 1); + Assert.AreEqual(1, ticks); command.Execute(new object()); - Assert.AreEqual(ticks, 2); + Assert.AreEqual(2, ticks); } [TestMethod] @@ -71,10 +71,10 @@ public void Test_RelayCommand_WithCanExecuteFunctionFalse() command.Execute(null); // Logic is unconditionally invoked, the caller should check CanExecute first - Assert.AreEqual(ticks, 1); + Assert.AreEqual(1, ticks); command.Execute(new object()); - Assert.AreEqual(ticks, 2); + Assert.AreEqual(2, ticks); } } diff --git a/tests/CommunityToolkit.Mvvm.UnitTests/Test_RelayCommandAttribute.cs b/tests/CommunityToolkit.Mvvm.UnitTests/Test_RelayCommandAttribute.cs index ecf4ff05..bc567c1d 100644 --- a/tests/CommunityToolkit.Mvvm.UnitTests/Test_RelayCommandAttribute.cs +++ b/tests/CommunityToolkit.Mvvm.UnitTests/Test_RelayCommandAttribute.cs @@ -27,27 +27,27 @@ public async Task Test_RelayCommandAttribute_RelayCommand() model.IncrementCounterCommand.Execute(null); - Assert.AreEqual(model.Counter, 1); + Assert.AreEqual(1, model.Counter); model.IncrementCounterWithValueCommand.Execute(5); - Assert.AreEqual(model.Counter, 6); + Assert.AreEqual(6, model.Counter); await model.DelayAndIncrementCounterCommand.ExecuteAsync(null); - Assert.AreEqual(model.Counter, 7); + Assert.AreEqual(7, model.Counter); await model.DelayAndIncrementCounterWithTokenCommand.ExecuteAsync(null); - Assert.AreEqual(model.Counter, 8); + Assert.AreEqual(8, model.Counter); await model.DelayAndIncrementCounterWithValueCommand.ExecuteAsync(5); - Assert.AreEqual(model.Counter, 13); + Assert.AreEqual(13, model.Counter); await model.DelayAndIncrementCounterWithValueAndTokenCommand.ExecuteAsync(5); - Assert.AreEqual(model.Counter, 18); + Assert.AreEqual(18, model.Counter); List tasks = new(); @@ -143,7 +143,7 @@ public void Test_RelayCommandAttribute_CanExecute_NoParameters_Property() model.IncrementCounter_NoParameters_PropertyCommand.Execute(null); - Assert.AreEqual(model.Counter, 1); + Assert.AreEqual(1, model.Counter); model.Flag = false; @@ -152,7 +152,7 @@ public void Test_RelayCommandAttribute_CanExecute_NoParameters_Property() // This and all test above also verify the logic is unconditionally invoked if CanExecute is ignored model.IncrementCounter_NoParameters_PropertyCommand.Execute(null); - Assert.AreEqual(model.Counter, 2); + Assert.AreEqual(2, model.Counter); } [TestMethod] @@ -164,7 +164,7 @@ public void Test_RelayCommandAttribute_CanExecute_NoParameters_GeneratedProperty model.IncrementCounter_NoParameters_GeneratedPropertyCommand.Execute(null); - Assert.AreEqual(model.Counter, 1); + Assert.AreEqual(1, model.Counter); model.SetGeneratedFlag(false); @@ -172,7 +172,7 @@ public void Test_RelayCommandAttribute_CanExecute_NoParameters_GeneratedProperty model.IncrementCounter_NoParameters_GeneratedPropertyCommand.Execute(null); - Assert.AreEqual(model.Counter, 2); + Assert.AreEqual(2, model.Counter); } [TestMethod] @@ -184,7 +184,7 @@ public void Test_RelayCommandAttribute_CanExecute_WithParameter_Property() model.IncrementCounter_WithParameter_PropertyCommand.Execute(null); - Assert.AreEqual(model.Counter, 1); + Assert.AreEqual(1, model.Counter); model.Flag = false; @@ -192,7 +192,7 @@ public void Test_RelayCommandAttribute_CanExecute_WithParameter_Property() model.IncrementCounter_WithParameter_PropertyCommand.Execute(null); - Assert.AreEqual(model.Counter, 2); + Assert.AreEqual(2, model.Counter); } [TestMethod] @@ -204,7 +204,7 @@ public void Test_RelayCommandAttribute_CanExecute_WithParameter_GeneratedPropert model.IncrementCounter_WithParameter_GeneratedPropertyCommand.Execute(null); - Assert.AreEqual(model.Counter, 1); + Assert.AreEqual(1, model.Counter); model.SetGeneratedFlag(false); @@ -212,7 +212,7 @@ public void Test_RelayCommandAttribute_CanExecute_WithParameter_GeneratedPropert model.IncrementCounter_WithParameter_GeneratedPropertyCommand.Execute(null); - Assert.AreEqual(model.Counter, 2); + Assert.AreEqual(2, model.Counter); } [TestMethod] @@ -224,7 +224,7 @@ public void Test_RelayCommandAttribute_CanExecute_NoParameters_MethodWithNoParam model.IncrementCounter_NoParameters_MethodWithNoParametersCommand.Execute(null); - Assert.AreEqual(model.Counter, 1); + Assert.AreEqual(1, model.Counter); model.Flag = false; @@ -232,7 +232,7 @@ public void Test_RelayCommandAttribute_CanExecute_NoParameters_MethodWithNoParam model.IncrementCounter_WithParameter_PropertyCommand.Execute(null); - Assert.AreEqual(model.Counter, 2); + Assert.AreEqual(2, model.Counter); } [TestMethod] @@ -244,7 +244,7 @@ public void Test_RelayCommandAttribute_CanExecute_WithParameters_MethodWithNoPar model.IncrementCounter_WithParameters_MethodWithNoParametersCommand.Execute(null); - Assert.AreEqual(model.Counter, 1); + Assert.AreEqual(1, model.Counter); model.Flag = false; @@ -252,7 +252,7 @@ public void Test_RelayCommandAttribute_CanExecute_WithParameters_MethodWithNoPar model.IncrementCounter_WithParameters_MethodWithNoParametersCommand.Execute(null); - Assert.AreEqual(model.Counter, 2); + Assert.AreEqual(2, model.Counter); } [TestMethod] @@ -262,13 +262,13 @@ public void Test_RelayCommandAttribute_CanExecute_WithParameters_MethodWithMatch model.IncrementCounter_WithParameters_MethodWithMatchingParameterCommand.Execute(new User { Name = nameof(CanExecuteViewModel) }); - Assert.AreEqual(model.Counter, 1); + Assert.AreEqual(1, model.Counter); Assert.IsFalse(model.IncrementCounter_WithParameters_MethodWithMatchingParameterCommand.CanExecute(new User())); model.IncrementCounter_WithParameters_MethodWithMatchingParameterCommand.Execute(new User()); - Assert.AreEqual(model.Counter, 2); + Assert.AreEqual(2, model.Counter); } [TestMethod] @@ -280,7 +280,7 @@ public async Task Test_RelayCommandAttribute_CanExecute_Async_NoParameters_Prope await model.IncrementCounter_Async_NoParameters_PropertyCommand.ExecuteAsync(null); - Assert.AreEqual(model.Counter, 1); + Assert.AreEqual(1, model.Counter); model.Flag = false; @@ -288,7 +288,7 @@ public async Task Test_RelayCommandAttribute_CanExecute_Async_NoParameters_Prope await model.IncrementCounter_Async_NoParameters_PropertyCommand.ExecuteAsync(null); - Assert.AreEqual(model.Counter, 2); + Assert.AreEqual(2, model.Counter); } [TestMethod] @@ -300,7 +300,7 @@ public async Task Test_RelayCommandAttribute_CanExecute_Async_WithParameter_Prop await model.IncrementCounter_Async_WithParameter_PropertyCommand.ExecuteAsync(null); - Assert.AreEqual(model.Counter, 1); + Assert.AreEqual(1, model.Counter); model.Flag = false; @@ -308,7 +308,7 @@ public async Task Test_RelayCommandAttribute_CanExecute_Async_WithParameter_Prop await model.IncrementCounter_Async_WithParameter_PropertyCommand.ExecuteAsync(null); - Assert.AreEqual(model.Counter, 2); + Assert.AreEqual(2, model.Counter); } [TestMethod] @@ -320,7 +320,7 @@ public async Task Test_RelayCommandAttribute_CanExecute_Async_NoParameters_Metho await model.IncrementCounter_Async_NoParameters_MethodWithNoParametersCommand.ExecuteAsync(null); - Assert.AreEqual(model.Counter, 1); + Assert.AreEqual(1, model.Counter); model.Flag = false; @@ -328,7 +328,7 @@ public async Task Test_RelayCommandAttribute_CanExecute_Async_NoParameters_Metho await model.IncrementCounter_Async_WithParameter_PropertyCommand.ExecuteAsync(null); - Assert.AreEqual(model.Counter, 2); + Assert.AreEqual(2, model.Counter); } [TestMethod] @@ -340,7 +340,7 @@ public async Task Test_RelayCommandAttribute_CanExecute_Async_WithParameters_Met await model.IncrementCounter_Async_WithParameters_MethodWithNoParametersCommand.ExecuteAsync(null); - Assert.AreEqual(model.Counter, 1); + Assert.AreEqual(1, model.Counter); model.Flag = false; @@ -348,7 +348,7 @@ public async Task Test_RelayCommandAttribute_CanExecute_Async_WithParameters_Met await model.IncrementCounter_Async_WithParameters_MethodWithNoParametersCommand.ExecuteAsync(null); - Assert.AreEqual(model.Counter, 2); + Assert.AreEqual(2, model.Counter); } [TestMethod] @@ -358,13 +358,13 @@ public async Task Test_RelayCommandAttribute_CanExecute_Async_WithParameters_Met await model.IncrementCounter_Async_WithParameters_MethodWithMatchingParameterCommand.ExecuteAsync(new User { Name = nameof(CanExecuteViewModel) }); - Assert.AreEqual(model.Counter, 1); + Assert.AreEqual(1, model.Counter); Assert.IsFalse(model.IncrementCounter_Async_WithParameters_MethodWithMatchingParameterCommand.CanExecute(new User())); await model.IncrementCounter_Async_WithParameters_MethodWithMatchingParameterCommand.ExecuteAsync(new User()); - Assert.AreEqual(model.Counter, 2); + Assert.AreEqual(2, model.Counter); } [TestMethod] @@ -575,22 +575,22 @@ public void Test_RelayCommandAttribute_WithExplicitAttributesForFieldAndProperty Assert.IsNotNull(fooField.GetCustomAttribute()); Assert.IsNotNull(fooField.GetCustomAttribute()); - Assert.AreEqual(fooField.GetCustomAttribute()!.Length, 1); + Assert.AreEqual(1, fooField.GetCustomAttribute()!.Length); Assert.IsNotNull(fooField.GetCustomAttribute()); - Assert.AreEqual(fooField.GetCustomAttribute()!.Length, 100); + Assert.AreEqual(100, fooField.GetCustomAttribute()!.Length); PropertyInfo fooProperty = typeof(MyViewModelWithExplicitFieldAndPropertyAttributes).GetProperty("FooCommand")!; Assert.IsNotNull(fooProperty.GetCustomAttribute()); Assert.IsNotNull(fooProperty.GetCustomAttribute()); - Assert.AreEqual(fooProperty.GetCustomAttribute()!.Length, 1); + Assert.AreEqual(1, fooProperty.GetCustomAttribute()!.Length); Assert.IsNotNull(fooProperty.GetCustomAttribute()); - Assert.AreEqual(fooProperty.GetCustomAttribute()!.Length, 100); + Assert.AreEqual(100, fooProperty.GetCustomAttribute()!.Length); PropertyInfo barProperty = typeof(MyViewModelWithExplicitFieldAndPropertyAttributes).GetProperty("BarCommand")!; Assert.IsNotNull(barProperty.GetCustomAttribute()); - Assert.AreEqual(barProperty.GetCustomAttribute()!.Name, "bar"); + Assert.AreEqual("bar", barProperty.GetCustomAttribute()!.Name); Assert.IsNotNull(barProperty.GetCustomAttribute()); PropertyInfo bazProperty = typeof(MyViewModelWithExplicitFieldAndPropertyAttributes).GetProperty("BazCommand")!; @@ -601,21 +601,21 @@ static void ValidateTestAttribute(TestValidationAttribute testAttribute) { Assert.IsNotNull(testAttribute); Assert.IsNull(testAttribute.O); - Assert.AreEqual(testAttribute.T, typeof(MyViewModelWithExplicitFieldAndPropertyAttributes)); - Assert.AreEqual(testAttribute.Flag, true); - Assert.AreEqual(testAttribute.D, 6.28); + Assert.AreEqual(typeof(MyViewModelWithExplicitFieldAndPropertyAttributes), testAttribute.T); + Assert.AreEqual(true, testAttribute.Flag); + Assert.AreEqual(6.28, testAttribute.D); CollectionAssert.AreEqual(testAttribute.Names, new[] { "Bob", "Ross" }); object[]? nestedArray = (object[]?)testAttribute.NestedArray; Assert.IsNotNull(nestedArray); - Assert.AreEqual(nestedArray!.Length, 3); - Assert.AreEqual(nestedArray[0], 1); - Assert.AreEqual(nestedArray[1], "Hello"); + Assert.AreEqual(3, nestedArray!.Length); + Assert.AreEqual(1, nestedArray[0]); + Assert.AreEqual("Hello", nestedArray[1]); Assert.IsTrue(nestedArray[2] is int[]); CollectionAssert.AreEqual((int[])nestedArray[2], new[] { 2, 3, 4 }); - Assert.AreEqual(testAttribute.Animal, Test_ObservablePropertyAttribute.Animal.Llama); + Assert.AreEqual(Test_ObservablePropertyAttribute.Animal.Llama, testAttribute.Animal); } FieldInfo fooBarField = typeof(MyViewModelWithExplicitFieldAndPropertyAttributes).GetField("fooBarCommand", BindingFlags.Instance | BindingFlags.NonPublic)!; @@ -638,25 +638,25 @@ static void ValidateTestAttribute(TestValidationAttribute testAttribute) Assert.IsNotNull(testAttribute2); Assert.IsNull(testAttribute2.O); - Assert.AreEqual(testAttribute2.T, typeof(MyViewModelWithExplicitFieldAndPropertyAttributes)); - Assert.AreEqual(testAttribute2.Flag, true); - Assert.AreEqual(testAttribute2.D, 6.28); + Assert.AreEqual(typeof(MyViewModelWithExplicitFieldAndPropertyAttributes), testAttribute2.T); + Assert.AreEqual(true, testAttribute2.Flag); + Assert.AreEqual(6.28, testAttribute2.D); Assert.IsNotNull(testAttribute2.Objects); Assert.IsTrue(testAttribute2.Objects is object[]); - Assert.AreEqual(((object[])testAttribute2.Objects).Length, 1); - Assert.AreEqual(((object[])testAttribute2.Objects)[0], "Test"); + Assert.AreEqual(1, ((object[])testAttribute2.Objects).Length); + Assert.AreEqual("Test", ((object[])testAttribute2.Objects)[0]); CollectionAssert.AreEqual(testAttribute2.Names, new[] { "Bob", "Ross" }); object[]? nestedArray2 = (object[]?)testAttribute2.NestedArray; Assert.IsNotNull(nestedArray2); - Assert.AreEqual(nestedArray2!.Length, 4); - Assert.AreEqual(nestedArray2[0], 1); - Assert.AreEqual(nestedArray2[1], "Hello"); - Assert.AreEqual(nestedArray2[2], 42); + Assert.AreEqual(4, nestedArray2!.Length); + Assert.AreEqual(1, nestedArray2[0]); + Assert.AreEqual("Hello", nestedArray2[1]); + Assert.AreEqual(42, nestedArray2[2]); Assert.IsNull(nestedArray2[3]); - Assert.AreEqual(testAttribute2.Animal, (Test_ObservablePropertyAttribute.Animal)67); + Assert.AreEqual((Test_ObservablePropertyAttribute.Animal)67, testAttribute2.Animal); } // See https://github.com/CommunityToolkit/dotnet/issues/632 @@ -674,24 +674,24 @@ public void Test_RelayCommandAttribute_WithPartialCommandMethodDefinitions() Assert.IsNotNull(bazField.GetCustomAttribute()); Assert.IsNotNull(bazField.GetCustomAttribute()); - Assert.AreEqual(bazField.GetCustomAttribute()!.Length, 1); + Assert.AreEqual(1, bazField.GetCustomAttribute()!.Length); PropertyInfo bazProperty = typeof(ModelWithPartialCommandMethods).GetProperty("BazCommand")!; Assert.IsNotNull(bazProperty.GetCustomAttribute()); - Assert.AreEqual(bazProperty.GetCustomAttribute()!.Length, 2); + Assert.AreEqual(2, bazProperty.GetCustomAttribute()!.Length); Assert.IsNotNull(bazProperty.GetCustomAttribute()); FieldInfo fooBarField = typeof(ModelWithPartialCommandMethods).GetField("fooBarCommand", BindingFlags.Instance | BindingFlags.NonPublic)!; Assert.IsNotNull(fooBarField.GetCustomAttribute()); Assert.IsNotNull(fooBarField.GetCustomAttribute()); - Assert.AreEqual(fooBarField.GetCustomAttribute()!.Length, 1); + Assert.AreEqual(1, fooBarField.GetCustomAttribute()!.Length); PropertyInfo fooBarProperty = typeof(ModelWithPartialCommandMethods).GetProperty("FooBarCommand")!; Assert.IsNotNull(fooBarProperty.GetCustomAttribute()); - Assert.AreEqual(fooBarProperty.GetCustomAttribute()!.Length, 2); + Assert.AreEqual(2, fooBarProperty.GetCustomAttribute()!.Length); Assert.IsNotNull(fooBarProperty.GetCustomAttribute()); } diff --git a/tests/CommunityToolkit.Mvvm.UnitTests/Test_RelayCommand{T}.cs b/tests/CommunityToolkit.Mvvm.UnitTests/Test_RelayCommand{T}.cs index e4064bc4..d5531f04 100644 --- a/tests/CommunityToolkit.Mvvm.UnitTests/Test_RelayCommand{T}.cs +++ b/tests/CommunityToolkit.Mvvm.UnitTests/Test_RelayCommand{T}.cs @@ -39,11 +39,11 @@ public void Test_RelayCommandOfT_AlwaysEnabled() command.Execute((object)"Hello"); - Assert.AreEqual(text, "Hello"); + Assert.AreEqual("Hello", text); command.Execute(null); - Assert.AreEqual(text, null); + Assert.AreEqual(null, text); } [TestMethod] @@ -64,7 +64,7 @@ public void Test_RelayCommand_WithCanExecuteFunction() command.Execute((object)"Hello"); - Assert.AreEqual(text, "Hello"); + Assert.AreEqual("Hello", text); command.Execute(null); From 12ae36b59489f8918962fb10fe03283814c48cbb Mon Sep 17 00:00:00 2001 From: Sergio Pedri Date: Sun, 9 Nov 2025 18:34:09 -0800 Subject: [PATCH 3/9] Refactor unit tests to use new assertion helpers Replaces usages of Assert.AreEqual, Assert.IsTrue, and similar assertions with new helper methods such as Assert.HasCount, Assert.IsEmpty, Assert.IsNull, and Assert.IsGreaterThanOrEqualTo across multiple test files. This improves test readability and consistency with updated assertion APIs. --- .../Extensions/Test_TaskExtensions.cs | 16 +-- .../Test_Guard.cs | 8 +- .../Buffers/Test_ArrayPoolBufferWriter{T}.cs | 12 +- .../Buffers/Test_MemoryOwner{T}.cs | 20 ++-- .../Buffers/Test_SpanOwner{T}.cs | 14 +-- .../Buffers/Test_StringPool.cs | 4 +- .../Extensions/Test_ArrayExtensions.2D.cs | 4 +- .../Extensions/Test_ArrayPoolExtensions.cs | 14 +-- .../Extensions/Test_MemoryExtensions.cs | 4 +- .../Extensions/Test_StreamExtensions.cs | 4 +- .../Memory/Test_Memory2D{T}.cs | 4 +- .../Memory/Test_ReadOnlyMemory2D{T}.cs | 4 +- .../Streams/Test_IBufferWriterStream.cs | 4 +- .../Streams/Test_MemoryStream.cs | 22 ++-- .../Streams/Test_ReadOnlySequenceStream.cs | 4 +- ...ablePropertyAttribute_PartialProperties.cs | 54 ++++----- .../Test_SourceGeneratorsDiagnostics.cs | 2 +- .../Collections/Test_ObservableGroup.cs | 4 +- .../Test_ObservableGroupedCollection.cs | 4 +- ...t_ObservableGroupedCollectionExtensions.cs | 22 ++-- ...est_ReadOnlyObservableGroupedCollection.cs | 20 ++-- .../Test_AsyncRelayCommand.cs | 8 +- .../Test_AsyncRelayCommand{T}.cs | 8 +- .../Test_INotifyPropertyChangedAttribute.cs | 10 +- .../Test_Messenger.Request.cs | 4 +- .../Test_Messenger.cs | 20 ++-- .../Test_ObservablePropertyAttribute.cs | 54 ++++----- .../Test_ObservableRecipientAttribute.cs | 14 +-- .../Test_ObservableValidator.cs | 104 +++++++++--------- .../Test_RelayCommandAttribute.cs | 18 +-- .../Test_RelayCommand{T}.cs | 2 +- 31 files changed, 243 insertions(+), 243 deletions(-) diff --git a/tests/CommunityToolkit.Common.UnitTests/Extensions/Test_TaskExtensions.cs b/tests/CommunityToolkit.Common.UnitTests/Extensions/Test_TaskExtensions.cs index 1bebbf5d..740a75a9 100644 --- a/tests/CommunityToolkit.Common.UnitTests/Extensions/Test_TaskExtensions.cs +++ b/tests/CommunityToolkit.Common.UnitTests/Extensions/Test_TaskExtensions.cs @@ -34,7 +34,7 @@ public void Test_TaskExtensions_Generic_ReferenceType() { TaskCompletionSource tcs = new(); - Assert.AreEqual(null, tcs.Task.GetResultOrDefault()); + Assert.IsNull(tcs.Task.GetResultOrDefault()); tcs.SetResult(nameof(Test_TaskExtensions_Generic_ReferenceType)); @@ -46,17 +46,17 @@ public void Test_TaskExtensions_ResultOrDefault() { TaskCompletionSource tcs = new(); - Assert.AreEqual(null, ((Task)tcs.Task).GetResultOrDefault()); + Assert.IsNull(((Task)tcs.Task).GetResultOrDefault()); tcs.SetCanceled(); - Assert.AreEqual(null, ((Task)tcs.Task).GetResultOrDefault()); + Assert.IsNull(((Task)tcs.Task).GetResultOrDefault()); tcs = new TaskCompletionSource(); tcs.SetException(new InvalidOperationException("Test")); - Assert.AreEqual(null, ((Task)tcs.Task).GetResultOrDefault()); + Assert.IsNull(((Task)tcs.Task).GetResultOrDefault()); tcs = new TaskCompletionSource(); @@ -68,7 +68,7 @@ public void Test_TaskExtensions_ResultOrDefault() [TestMethod] public void Test_TaskExtensions_ResultOrDefault_FromTaskCompleted() { - Assert.AreEqual(null, Task.CompletedTask.GetResultOrDefault()); + Assert.IsNull(Task.CompletedTask.GetResultOrDefault()); } [TestMethod] @@ -118,17 +118,17 @@ public void Test_TaskExtensions_ResultOrDefault_OfT_String() { TaskCompletionSource tcs = new(); - Assert.AreEqual(null, tcs.Task.GetResultOrDefault()); + Assert.IsNull(tcs.Task.GetResultOrDefault()); tcs.SetCanceled(); - Assert.AreEqual(null, tcs.Task.GetResultOrDefault()); + Assert.IsNull(tcs.Task.GetResultOrDefault()); tcs = new TaskCompletionSource(); tcs.SetException(new InvalidOperationException("Test")); - Assert.AreEqual(null, tcs.Task.GetResultOrDefault()); + Assert.IsNull(tcs.Task.GetResultOrDefault()); tcs = new TaskCompletionSource(); diff --git a/tests/CommunityToolkit.Diagnostics.UnitTests/Test_Guard.cs b/tests/CommunityToolkit.Diagnostics.UnitTests/Test_Guard.cs index 74367d7f..4d4347d7 100644 --- a/tests/CommunityToolkit.Diagnostics.UnitTests/Test_Guard.cs +++ b/tests/CommunityToolkit.Diagnostics.UnitTests/Test_Guard.cs @@ -351,7 +351,7 @@ public void Test_Guard_IsTrue_Fail_WithMessage() } catch (ArgumentException e) { - Assert.IsTrue(e.Message.Contains("\"Hello world\"")); + Assert.Contains("\"Hello world\"", e.Message); return; } @@ -377,7 +377,7 @@ public void Test_Guard_IsTrue_WithHandler_Fail() } catch (ArgumentException e) { - Assert.IsTrue(e.Message.Contains($"This is an interpolated message: {DateTime.Now.Year}, {"hello".AsSpan()}")); + Assert.Contains($"This is an interpolated message: {DateTime.Now.Year}, {"hello".AsSpan()}", e.Message); return; } @@ -410,7 +410,7 @@ public void Test_Guard_IsFalse_Fail_WithMessage() } catch (ArgumentException e) { - Assert.IsTrue(e.Message.Contains("\"Hello world\"")); + Assert.Contains("\"Hello world\"", e.Message); return; } @@ -434,7 +434,7 @@ public void Test_Guard_IsFalse_WithHandler_Fail() } catch (ArgumentException e) { - Assert.IsTrue(e.Message.Contains($"This is an interpolated message: {DateTime.Now.Year}, {"hello".AsSpan()}")); + Assert.Contains($"This is an interpolated message: {DateTime.Now.Year}, {"hello".AsSpan()}", e.Message); return; } diff --git a/tests/CommunityToolkit.HighPerformance.UnitTests/Buffers/Test_ArrayPoolBufferWriter{T}.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Buffers/Test_ArrayPoolBufferWriter{T}.cs index f1277afe..8126c834 100644 --- a/tests/CommunityToolkit.HighPerformance.UnitTests/Buffers/Test_ArrayPoolBufferWriter{T}.cs +++ b/tests/CommunityToolkit.HighPerformance.UnitTests/Buffers/Test_ArrayPoolBufferWriter{T}.cs @@ -52,7 +52,7 @@ public void Test_ArrayPoolBufferWriterOfT_BufferSize(int request, int expected) byte[] array = (byte[])arrayFieldInfo!.GetValue(writer)!; - Assert.AreEqual(expected, array.Length); + Assert.HasCount(expected, array); } [TestMethod] @@ -68,7 +68,7 @@ public void Test_ArrayPoolBufferWriterOfT_AllocateAndGetMemoryAndSpan() Span span = writer.GetSpan(43); - Assert.IsTrue(span.Length >= 43); + Assert.IsGreaterThanOrEqualTo(43, span.Length); writer.Advance(43); @@ -99,7 +99,7 @@ public void Test_ArrayPoolBufferWriterOfT_AllocateFromCustomPoolAndGetMemoryAndS using (ArrayPoolBufferWriter? writer = new(pool)) { - Assert.AreEqual(1, pool.RentedArrays.Count); + Assert.HasCount(1, pool.RentedArrays); Assert.AreEqual(256, writer.Capacity); Assert.AreEqual(256, writer.FreeCapacity); @@ -109,7 +109,7 @@ public void Test_ArrayPoolBufferWriterOfT_AllocateFromCustomPoolAndGetMemoryAndS Span span = writer.GetSpan(43); - Assert.IsTrue(span.Length >= 43); + Assert.IsGreaterThanOrEqualTo(43, span.Length); writer.Advance(43); @@ -133,7 +133,7 @@ public void Test_ArrayPoolBufferWriterOfT_AllocateFromCustomPoolAndGetMemoryAndS _ = Assert.ThrowsExactly(() => writer.Advance(1)); } - Assert.AreEqual(0, pool.RentedArrays.Count); + Assert.IsEmpty(pool.RentedArrays); } [TestMethod] @@ -230,7 +230,7 @@ public void Test_ArrayPoolBufferWriterOfT_AllocateAndGetArray() ArraySegment segment = bufferWriter.DangerousGetArray(); Assert.IsNotNull(segment.Array); - Assert.IsTrue(segment.Array.Length >= bufferWriter.WrittenSpan.Length); + Assert.IsGreaterThanOrEqualTo(bufferWriter.WrittenSpan.Length, segment.Array.Length); Assert.AreEqual(0, segment.Offset); Assert.AreEqual(segment.Count, bufferWriter.WrittenSpan.Length); diff --git a/tests/CommunityToolkit.HighPerformance.UnitTests/Buffers/Test_MemoryOwner{T}.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Buffers/Test_MemoryOwner{T}.cs index 0431f46b..91216120 100644 --- a/tests/CommunityToolkit.HighPerformance.UnitTests/Buffers/Test_MemoryOwner{T}.cs +++ b/tests/CommunityToolkit.HighPerformance.UnitTests/Buffers/Test_MemoryOwner{T}.cs @@ -18,9 +18,9 @@ public void Test_MemoryOwnerOfT_AllocateAndGetMemoryAndSpan() { using MemoryOwner? buffer = MemoryOwner.Allocate(127); - Assert.IsTrue(buffer.Length == 127); - Assert.IsTrue(buffer.Memory.Length == 127); - Assert.IsTrue(buffer.Span.Length == 127); + Assert.AreEqual(127, buffer.Length); + Assert.AreEqual(127, buffer.Memory.Length); + Assert.AreEqual(127, buffer.Span.Length); buffer.Span.Fill(42); @@ -35,11 +35,11 @@ public void Test_MemoryOwnerOfT_AllocateFromCustomPoolAndGetMemoryAndSpan() using (MemoryOwner? buffer = MemoryOwner.Allocate(127, pool)) { - Assert.AreEqual(1, pool.RentedArrays.Count); + Assert.HasCount(1, pool.RentedArrays); - Assert.IsTrue(buffer.Length == 127); - Assert.IsTrue(buffer.Memory.Length == 127); - Assert.IsTrue(buffer.Span.Length == 127); + Assert.AreEqual(127, buffer.Length); + Assert.AreEqual(127, buffer.Memory.Length); + Assert.AreEqual(127, buffer.Span.Length); buffer.Span.Fill(42); @@ -47,7 +47,7 @@ public void Test_MemoryOwnerOfT_AllocateFromCustomPoolAndGetMemoryAndSpan() Assert.IsTrue(buffer.Span.ToArray().All(i => i == 42)); } - Assert.AreEqual(0, pool.RentedArrays.Count); + Assert.IsEmpty(pool.RentedArrays); } [TestMethod] @@ -127,7 +127,7 @@ public void Test_MemoryOwnerOfT_AllocateAndGetArray() ArraySegment segment = buffer.DangerousGetArray(); Assert.IsNotNull(segment.Array); - Assert.IsTrue(segment.Array.Length >= buffer.Length); + Assert.IsGreaterThanOrEqualTo(buffer.Length, segment.Array.Length); Assert.AreEqual(0, segment.Offset); Assert.AreEqual(segment.Count, buffer.Length); @@ -142,7 +142,7 @@ public void Test_MemoryOwnerOfT_AllocateAndGetArray() // Same as before, but we now also verify the initial offset != 0, as we used Slice Assert.IsNotNull(segment.Array); - Assert.IsTrue(segment.Array.Length >= second.Length); + Assert.IsGreaterThanOrEqualTo(second.Length, segment.Array.Length); Assert.AreEqual(10, segment.Offset); Assert.AreEqual(segment.Count, second.Length); diff --git a/tests/CommunityToolkit.HighPerformance.UnitTests/Buffers/Test_SpanOwner{T}.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Buffers/Test_SpanOwner{T}.cs index b489c231..a8ff3cb8 100644 --- a/tests/CommunityToolkit.HighPerformance.UnitTests/Buffers/Test_SpanOwner{T}.cs +++ b/tests/CommunityToolkit.HighPerformance.UnitTests/Buffers/Test_SpanOwner{T}.cs @@ -18,8 +18,8 @@ public void Test_SpanOwnerOfT_AllocateAndGetMemoryAndSpan() { using SpanOwner buffer = SpanOwner.Allocate(127); - Assert.IsTrue(buffer.Length == 127); - Assert.IsTrue(buffer.Span.Length == 127); + Assert.AreEqual(127, buffer.Length); + Assert.AreEqual(127, buffer.Span.Length); buffer.Span.Fill(42); @@ -33,17 +33,17 @@ public void Test_SpanOwnerOfT_AllocateFromCustomPoolAndGetMemoryAndSpan() using (SpanOwner buffer = SpanOwner.Allocate(127, pool)) { - Assert.AreEqual(1, pool.RentedArrays.Count); + Assert.HasCount(1, pool.RentedArrays); - Assert.IsTrue(buffer.Length == 127); - Assert.IsTrue(buffer.Span.Length == 127); + Assert.AreEqual(127, buffer.Length); + Assert.AreEqual(127, buffer.Span.Length); buffer.Span.Fill(42); Assert.IsTrue(buffer.Span.ToArray().All(i => i == 42)); } - Assert.AreEqual(0, pool.RentedArrays.Count); + Assert.IsEmpty(pool.RentedArrays); } [TestMethod] @@ -86,7 +86,7 @@ public void Test_SpanOwnerOfT_AllocateAndGetArray() // with the assumption that usages after dispose are undefined behavior. This // is all documented in the XML docs for the SpanOwner type. Assert.IsNotNull(segment.Array); - Assert.IsTrue(segment.Array.Length >= buffer.Length); + Assert.IsGreaterThanOrEqualTo(buffer.Length, segment.Array.Length); Assert.AreEqual(0, segment.Offset); Assert.AreEqual(segment.Count, buffer.Length); } diff --git a/tests/CommunityToolkit.HighPerformance.UnitTests/Buffers/Test_StringPool.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Buffers/Test_StringPool.cs index 08a3715a..c9140c49 100644 --- a/tests/CommunityToolkit.HighPerformance.UnitTests/Buffers/Test_StringPool.cs +++ b/tests/CommunityToolkit.HighPerformance.UnitTests/Buffers/Test_StringPool.cs @@ -37,13 +37,13 @@ public void Test_StringPool_Cctor_Ok(int minimumSize, int x, int y, int size) Array maps = (Array)typeof(StringPool).GetField("maps", BindingFlags.Instance | BindingFlags.NonPublic)!.GetValue(pool)!; - Assert.AreEqual(x, maps.Length); + Assert.HasCount(x, maps); Type bucketType = Type.GetType("CommunityToolkit.HighPerformance.Buffers.StringPool+FixedSizePriorityMap, CommunityToolkit.HighPerformance")!; int[] buckets = (int[])bucketType.GetField("buckets", BindingFlags.Instance | BindingFlags.NonPublic)!.GetValue(maps.GetValue(0))!; - Assert.AreEqual(y, buckets.Length); + Assert.HasCount(y, buckets); } [TestMethod] diff --git a/tests/CommunityToolkit.HighPerformance.UnitTests/Extensions/Test_ArrayExtensions.2D.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Extensions/Test_ArrayExtensions.2D.cs index d6d5bf8e..8a2102cd 100644 --- a/tests/CommunityToolkit.HighPerformance.UnitTests/Extensions/Test_ArrayExtensions.2D.cs +++ b/tests/CommunityToolkit.HighPerformance.UnitTests/Extensions/Test_ArrayExtensions.2D.cs @@ -428,7 +428,7 @@ public void Test_ArrayExtensions_2D_AsSpan_Empty() Span span = array.AsSpan(); // Check that the empty array was loaded properly - Assert.AreEqual(span.Length, array.Length); + Assert.HasCount(span.Length, array); Assert.IsTrue(span.IsEmpty); } @@ -445,7 +445,7 @@ public void Test_ArrayExtensions_2D_AsSpan_Populated() Span span = array.AsSpan(); // Test the total length of the span - Assert.AreEqual(span.Length, array.Length); + Assert.HasCount(span.Length, array); ref int r0 = ref array[0, 0]; ref int r1 = ref span[0]; diff --git a/tests/CommunityToolkit.HighPerformance.UnitTests/Extensions/Test_ArrayPoolExtensions.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Extensions/Test_ArrayPoolExtensions.cs index c31fe681..14b0815f 100644 --- a/tests/CommunityToolkit.HighPerformance.UnitTests/Extensions/Test_ArrayPoolExtensions.cs +++ b/tests/CommunityToolkit.HighPerformance.UnitTests/Extensions/Test_ArrayPoolExtensions.cs @@ -29,7 +29,7 @@ public void Test_ArrayPoolExtensions_Resize_NewArray() ArrayPool.Shared.Resize(ref array, 10); Assert.IsNotNull(array); - Assert.IsTrue(array.Length >= 10); + Assert.IsGreaterThanOrEqualTo(10, array.Length); } [TestMethod] @@ -54,7 +54,7 @@ public void Test_ArrayPoolExtensions_Resize_Expand() ArrayPool.Shared.Resize(ref array, 32); Assert.AreNotSame(array, backup); - Assert.IsTrue(array.Length >= 32); + Assert.IsGreaterThanOrEqualTo(32, array.Length); Assert.IsTrue(array.AsSpan(0, 16).ToArray().All(i => i == 7)); } @@ -69,7 +69,7 @@ public void Test_ArrayPoolExtensions_Resize_Shrink() ArrayPool.Shared.Resize(ref array, 16); Assert.AreNotSame(array, backup); - Assert.IsTrue(array.Length >= 16); + Assert.IsGreaterThanOrEqualTo(16, array.Length); Assert.IsTrue(array.AsSpan(0, 16).ToArray().All(i => i == 7)); } @@ -103,7 +103,7 @@ public void Test_ArrayPoolExtensions_EnsureCapacity_IdenticalCapacity() ArrayPool.Shared.EnsureCapacity(ref array, 10); Assert.AreSame(backup, array); - Assert.IsTrue(array.Length >= 10); + Assert.IsGreaterThanOrEqualTo(10, array.Length); } [TestMethod] @@ -114,13 +114,13 @@ public void Test_ArrayPoolExtensions_EnsureCapacity_NewArray() ArrayPool.Shared.EnsureCapacity(ref array, 7); Assert.IsNotNull(array); - Assert.IsTrue(array.Length >= 7); + Assert.IsGreaterThanOrEqualTo(7, array.Length); int[]? backup = array; ArrayPool.Shared.EnsureCapacity(ref array, 64); Assert.AreNotSame(backup, array); - Assert.IsTrue(array.Length >= 64); + Assert.IsGreaterThanOrEqualTo(64, array.Length); } [TestMethod] @@ -152,6 +152,6 @@ public void Test_ArrayPoolExtensions_EnsureCapacity_ClearArray() Assert.AreNotSame(backup, array); Assert.IsTrue(backup.All(i => i == default)); - Assert.IsTrue(array.Length >= 256); + Assert.IsGreaterThanOrEqualTo(256, array.Length); } } diff --git a/tests/CommunityToolkit.HighPerformance.UnitTests/Extensions/Test_MemoryExtensions.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Extensions/Test_MemoryExtensions.cs index 59b83f5e..3e19995f 100644 --- a/tests/CommunityToolkit.HighPerformance.UnitTests/Extensions/Test_MemoryExtensions.cs +++ b/tests/CommunityToolkit.HighPerformance.UnitTests/Extensions/Test_MemoryExtensions.cs @@ -150,7 +150,7 @@ public void Test_MemoryExtensions_FromArray_CastFromByteAndBack() Assert.IsTrue(MemoryMarshal.TryGetArray(memoryBack, out ArraySegment segment)); Assert.AreSame(segment.Array!, data); Assert.AreEqual(0, segment.Offset); - Assert.AreEqual(segment.Count, data.Length); + Assert.HasCount(segment.Count, data); Assert.IsTrue(memoryOfBytes.Equals(memoryBack)); @@ -253,7 +253,7 @@ public void Test_MemoryExtensions_FromArray_CastFromByteAndBack_WithSlice() Assert.IsTrue(MemoryMarshal.TryGetArray(memoryBack, out ArraySegment segment)); Assert.AreSame(segment.Array!, data); Assert.AreEqual(128, segment.Offset); - Assert.AreEqual(128, segment.Count); + Assert.HasCount(128, segment); Assert.IsTrue(memoryOfBytes.Equals(memoryBack)); diff --git a/tests/CommunityToolkit.HighPerformance.UnitTests/Extensions/Test_StreamExtensions.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Extensions/Test_StreamExtensions.cs index 7780839e..30580d08 100644 --- a/tests/CommunityToolkit.HighPerformance.UnitTests/Extensions/Test_StreamExtensions.cs +++ b/tests/CommunityToolkit.HighPerformance.UnitTests/Extensions/Test_StreamExtensions.cs @@ -29,7 +29,7 @@ public void Test_StreamExtensions_ReadWrite() stream.Position = 0; - Assert.AreEqual(true, stream.Read()); + Assert.IsTrue(stream.Read()); Assert.AreEqual(42, stream.Read()); Assert.AreEqual(3.14f, stream.Read()); Assert.AreEqual(unchecked(uint.MaxValue * 324823489204ul), stream.Read()); @@ -50,7 +50,7 @@ public void Test_StreamExtensions_ReadWrite_WithBufferedStream() stream.Position = 0; - Assert.AreEqual(true, stream.Read()); + Assert.IsTrue(stream.Read()); Assert.AreEqual(42, stream.Read()); Assert.AreEqual(3.14f, stream.Read()); Assert.AreEqual(unchecked(uint.MaxValue * 324823489204ul), stream.Read()); diff --git a/tests/CommunityToolkit.HighPerformance.UnitTests/Memory/Test_Memory2D{T}.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Memory/Test_Memory2D{T}.cs index 4e59996f..d1ed6cda 100644 --- a/tests/CommunityToolkit.HighPerformance.UnitTests/Memory/Test_Memory2D{T}.cs +++ b/tests/CommunityToolkit.HighPerformance.UnitTests/Memory/Test_Memory2D{T}.cs @@ -331,7 +331,7 @@ public void Test_Memory2DT_TryGetMemory_1() Assert.IsTrue(memory.IsEmpty); #else Assert.IsTrue(success); - Assert.AreEqual(memory.Length, array.Length); + Assert.HasCount(memory.Length, array); Assert.IsTrue(Unsafe.AreSame(ref array[0, 0], ref memory.Span[0])); #endif } @@ -348,7 +348,7 @@ public void Test_Memory2DT_TryGetMemory_2() bool success = memory2d.TryGetMemory(out Memory memory); Assert.IsTrue(success); - Assert.AreEqual(memory.Length, array.Length); + Assert.HasCount(memory.Length, array); Assert.AreEqual(3, memory.Span[2]); } diff --git a/tests/CommunityToolkit.HighPerformance.UnitTests/Memory/Test_ReadOnlyMemory2D{T}.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Memory/Test_ReadOnlyMemory2D{T}.cs index d491343f..0942e81e 100644 --- a/tests/CommunityToolkit.HighPerformance.UnitTests/Memory/Test_ReadOnlyMemory2D{T}.cs +++ b/tests/CommunityToolkit.HighPerformance.UnitTests/Memory/Test_ReadOnlyMemory2D{T}.cs @@ -297,7 +297,7 @@ public void Test_ReadOnlyMemory2DT_TryGetReadOnlyMemory_1() Assert.IsTrue(memory.IsEmpty); #else Assert.IsTrue(success); - Assert.AreEqual(memory.Length, array.Length); + Assert.HasCount(memory.Length, array); Assert.IsTrue(Unsafe.AreSame(ref array[0, 0], ref Unsafe.AsRef(in memory.Span[0]))); #endif } @@ -312,7 +312,7 @@ public void Test_ReadOnlyMemory2DT_TryGetReadOnlyMemory_2() bool success = memory2d.TryGetMemory(out ReadOnlyMemory memory); Assert.IsTrue(success); - Assert.AreEqual(memory.Length, array.Length); + Assert.HasCount(memory.Length, array); Assert.AreEqual(3, memory.Span[2]); } diff --git a/tests/CommunityToolkit.HighPerformance.UnitTests/Streams/Test_IBufferWriterStream.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Streams/Test_IBufferWriterStream.cs index 978d64f1..ae9d37a7 100644 --- a/tests/CommunityToolkit.HighPerformance.UnitTests/Streams/Test_IBufferWriterStream.cs +++ b/tests/CommunityToolkit.HighPerformance.UnitTests/Streams/Test_IBufferWriterStream.cs @@ -52,7 +52,7 @@ public void Test_IBufferWriterStream_Write_Array() // that the state of the writer is consistent, and the written content matches. stream.Write(data, 0, data.Length); - Assert.AreEqual(writer.WrittenCount, data.Length); + Assert.HasCount(writer.WrittenCount, data); Assert.IsTrue(writer.WrittenSpan.SequenceEqual(data)); // A few tests with invalid inputs (null buffers, invalid indices, etc.) @@ -78,7 +78,7 @@ public async Task Test_IBufferWriterStream_WriteAsync_Array() // Same test as above, but using an asynchronous write instead await stream.WriteAsync(data, 0, data.Length); - Assert.AreEqual(writer.WrittenCount, data.Length); + Assert.HasCount(writer.WrittenCount, data); Assert.IsTrue(writer.WrittenSpan.SequenceEqual(data)); _ = await Assert.ThrowsExactlyAsync(() => stream.WriteAsync(null!, 0, 10)); diff --git a/tests/CommunityToolkit.HighPerformance.UnitTests/Streams/Test_MemoryStream.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Streams/Test_MemoryStream.cs index 71c1f0fa..7790da07 100644 --- a/tests/CommunityToolkit.HighPerformance.UnitTests/Streams/Test_MemoryStream.cs +++ b/tests/CommunityToolkit.HighPerformance.UnitTests/Streams/Test_MemoryStream.cs @@ -91,20 +91,20 @@ public void Test_MemoryStream_WriteToEndAndRefreshPosition() Assert.AreEqual(stream.Position, i + 1); } - Assert.AreEqual(stream.Position, array.Length); + Assert.HasCount(stream.Position, array); // These should not throw, seeking to the end is valid stream.Position = stream.Position; - Assert.AreEqual(stream.Position, array.Length); + Assert.HasCount(stream.Position, array); _ = stream.Seek(array.Length, SeekOrigin.Begin); - Assert.AreEqual(stream.Position, array.Length); + Assert.HasCount(stream.Position, array); _ = stream.Seek(0, SeekOrigin.Current); - Assert.AreEqual(stream.Position, array.Length); + Assert.HasCount(stream.Position, array); _ = stream.Seek(0, SeekOrigin.End); - Assert.AreEqual(stream.Position, array.Length); + Assert.HasCount(stream.Position, array); } [TestMethod] @@ -116,7 +116,7 @@ public void Test_MemoryStream_ReadWrite_Array() stream.Write(data, 0, data.Length); - Assert.AreEqual(stream.Position, data.Length); + Assert.HasCount(stream.Position, data); stream.Position = 0; @@ -124,8 +124,8 @@ public void Test_MemoryStream_ReadWrite_Array() int bytesRead = stream.Read(result, 0, result.Length); - Assert.AreEqual(bytesRead, result.Length); - Assert.AreEqual(stream.Position, data.Length); + Assert.HasCount(bytesRead, result); + Assert.HasCount(stream.Position, data); Assert.IsTrue(data.AsSpan().SequenceEqual(result)); _ = Assert.ThrowsExactly(() => stream.Write(null!, 0, 10)); @@ -148,7 +148,7 @@ public async Task Test_MemoryStream_ReadWriteAsync_Array() await stream.WriteAsync(data, 0, data.Length); - Assert.AreEqual(stream.Position, data.Length); + Assert.HasCount(stream.Position, data); stream.Position = 0; @@ -156,8 +156,8 @@ public async Task Test_MemoryStream_ReadWriteAsync_Array() int bytesRead = await stream.ReadAsync(result, 0, result.Length); - Assert.AreEqual(bytesRead, result.Length); - Assert.AreEqual(stream.Position, data.Length); + Assert.HasCount(bytesRead, result); + Assert.HasCount(stream.Position, data); Assert.IsTrue(data.AsSpan().SequenceEqual(result)); _ = await Assert.ThrowsExactlyAsync(() => stream.WriteAsync(null!, 0, 10)); diff --git a/tests/CommunityToolkit.HighPerformance.UnitTests/Streams/Test_ReadOnlySequenceStream.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Streams/Test_ReadOnlySequenceStream.cs index 36a257b2..dec87e29 100644 --- a/tests/CommunityToolkit.HighPerformance.UnitTests/Streams/Test_ReadOnlySequenceStream.cs +++ b/tests/CommunityToolkit.HighPerformance.UnitTests/Streams/Test_ReadOnlySequenceStream.cs @@ -89,7 +89,7 @@ public void Test_ReadOnlySequenceStream_Read_Array() int bytesRead = stream.Read(result, 0, result.Length); - Assert.AreEqual(bytesRead, result.Length); + Assert.HasCount(bytesRead, result); Assert.AreEqual(stream.Position, data.Length); Assert.IsTrue(data.Span.SequenceEqual(result)); @@ -113,7 +113,7 @@ public void Test_ReadOnlySequenceStream_NotFromStart_Read_Array() int bytesRead = stream.Read(result, 0, result.Length); - Assert.AreEqual(bytesRead, result.Length); + Assert.HasCount(bytesRead, result); Assert.AreEqual(stream.Position, result.Length + offset); Assert.IsTrue(data.Span.Slice(offset).SequenceEqual(result)); diff --git a/tests/CommunityToolkit.Mvvm.Roslyn4120.UnitTests/Test_ObservablePropertyAttribute_PartialProperties.cs b/tests/CommunityToolkit.Mvvm.Roslyn4120.UnitTests/Test_ObservablePropertyAttribute_PartialProperties.cs index 0de20fda..fe1249a9 100644 --- a/tests/CommunityToolkit.Mvvm.Roslyn4120.UnitTests/Test_ObservablePropertyAttribute_PartialProperties.cs +++ b/tests/CommunityToolkit.Mvvm.Roslyn4120.UnitTests/Test_ObservablePropertyAttribute_PartialProperties.cs @@ -142,7 +142,7 @@ public void Test_ObservablePropertyAttributeRightBelowRegion_Events() model.Name = "Bob"; Assert.AreEqual(nameof(SampleModel.Name), changing.Item1?.PropertyName); - Assert.AreEqual(null, changing.Item2); + Assert.IsNull(changing.Item2); Assert.AreEqual(nameof(SampleModel.Name), changed.Item1?.PropertyName); Assert.AreEqual("Bob", changed.Item2); } @@ -190,14 +190,14 @@ public void Test_ValidationAttributes() Assert.IsNotNull(testAttribute); Assert.IsNull(testAttribute.O); Assert.AreEqual(typeof(SampleModel), testAttribute.T); - Assert.AreEqual(true, testAttribute.Flag); + Assert.IsTrue(testAttribute.Flag); Assert.AreEqual(6.28, testAttribute.D); CollectionAssert.AreEqual(testAttribute.Names, new[] { "Bob", "Ross" }); object[]? nestedArray = (object[]?)testAttribute.NestedArray; Assert.IsNotNull(nestedArray); - Assert.AreEqual(3, nestedArray!.Length); + Assert.HasCount(3, nestedArray); Assert.AreEqual(1, nestedArray[0]); Assert.AreEqual("Hello", nestedArray[1]); Assert.IsTrue(nestedArray[2] is int[]); @@ -263,13 +263,13 @@ public void Test_ObservablePropertyWithValueNamedField_WithValidationAttributesA model.Value = "Bo"; Assert.IsTrue(model.HasErrors); - Assert.AreEqual(1, errors.Count); + Assert.HasCount(1, errors); Assert.AreEqual(nameof(ModelWithValuePropertyWithAutomaticValidation.Value), errors[0].PropertyName); model.Value = "Hello world"; Assert.IsFalse(model.HasErrors); - Assert.AreEqual(2, errors.Count); + Assert.HasCount(2, errors); Assert.AreEqual(nameof(ModelWithValuePropertyWithAutomaticValidation.Value), errors[1].PropertyName); } @@ -289,13 +289,13 @@ public void Test_ObservablePropertyWithValueNamedField_WithValidationAttributesA model.Value = "Bo"; Assert.IsTrue(model.HasErrors); - Assert.AreEqual(1, errors.Count); + Assert.HasCount(1, errors); Assert.AreEqual(nameof(ModelWithValuePropertyWithAutomaticValidationWithClassLevelAttribute.Value), errors[0].PropertyName); model.Value = "Hello world"; Assert.IsFalse(model.HasErrors); - Assert.AreEqual(2, errors.Count); + Assert.HasCount(2, errors); Assert.AreEqual(nameof(ModelWithValuePropertyWithAutomaticValidationWithClassLevelAttribute.Value), errors[1].PropertyName); } @@ -315,13 +315,13 @@ public void Test_ObservablePropertyWithValueNamedField_WithValidationAttributesA model.Value2 = "Bo"; Assert.IsTrue(model.HasErrors); - Assert.AreEqual(1, errors.Count); + Assert.HasCount(1, errors); Assert.AreEqual(nameof(ModelWithValuePropertyWithAutomaticValidationInheritingClassLevelAttribute.Value2), errors[0].PropertyName); model.Value2 = "Hello world"; Assert.IsFalse(model.HasErrors); - Assert.AreEqual(2, errors.Count); + Assert.HasCount(2, errors); Assert.AreEqual(nameof(ModelWithValuePropertyWithAutomaticValidationInheritingClassLevelAttribute.Value2), errors[1].PropertyName); } @@ -348,7 +348,7 @@ public void Test_GeneratedPropertiesWithValidationAttributesOverFields() ValidationResult[] validationErrors = model.GetErrors().ToArray(); - Assert.AreEqual(2, validationErrors.Length); + Assert.HasCount(2, validationErrors); CollectionAssert.AreEqual(new[] { nameof(ViewModelWithValidatableGeneratedProperties.First) }, validationErrors[0].MemberNames.ToArray()); CollectionAssert.AreEqual(new[] { nameof(ViewModelWithValidatableGeneratedProperties.Last) }, validationErrors[1].MemberNames.ToArray()); @@ -446,7 +446,7 @@ public void Test_OnPropertyChangingAndChangedPartialMethods_WithPreviousValues() { ViewModelWithImplementedUpdateMethods2 model = new(); - Assert.AreEqual(null, model.Name); + Assert.IsNull(model.Name); Assert.AreEqual(0, model.Number); CollectionAssert.AreEqual(Array.Empty<(string, string)>(), model.OnNameChangingValues); @@ -588,15 +588,15 @@ private void Test_NotifyPropertyChangedRecipients_Test(Func fa setter(model, "Bob"); - Assert.AreEqual(1, messages.Count); + Assert.HasCount(1, messages); Assert.AreSame(model, messages[0].Sender); - Assert.AreEqual(null, messages[0].Message.OldValue); + Assert.IsNull(messages[0].Message.OldValue); Assert.AreEqual("Bob", messages[0].Message.NewValue); Assert.AreEqual(propertyName, messages[0].Message.PropertyName); setter(model, "Ross"); - Assert.AreEqual(2, messages.Count); + Assert.HasCount(2, messages); Assert.AreSame(model, messages[1].Sender); Assert.AreEqual("Bob", messages[1].Message.OldValue); Assert.AreEqual("Ross", messages[1].Message.NewValue); @@ -618,7 +618,7 @@ public void Test_ObservableProperty_ObservableRecipientDoesNotBroadcastByDefault model.Name = null; // The [NotifyPropertyChangedRecipients] attribute wasn't used, so no messages should have been sent - Assert.AreEqual(0, messages.Count); + Assert.IsEmpty(messages); } #if NET6_0_OR_GREATER @@ -633,7 +633,7 @@ public void Test_ObservableProperty_NullabilityAnnotations_Simple() Assert.AreEqual(typeof(List), info.Type); Assert.AreEqual(NullabilityState.Nullable, info.ReadState); Assert.AreEqual(NullabilityState.Nullable, info.WriteState); - Assert.AreEqual(1, info.GenericTypeArguments.Length); + Assert.HasCount(1, info.GenericTypeArguments); NullabilityInfo elementInfo = info.GenericTypeArguments[0]; @@ -653,14 +653,14 @@ public void Test_ObservableProperty_NullabilityAnnotations_Complex() Assert.AreEqual(typeof(Foo.Bar?, StrongBox.Bar?>?>), info.Type); Assert.AreEqual(NullabilityState.Nullable, info.ReadState); Assert.AreEqual(NullabilityState.Nullable, info.WriteState); - Assert.AreEqual(2, info.GenericTypeArguments.Length); + Assert.HasCount(2, info.GenericTypeArguments); NullabilityInfo leftInfo = info.GenericTypeArguments[0]; Assert.AreEqual(typeof(Foo.Bar), leftInfo.Type); Assert.AreEqual(NullabilityState.Nullable, leftInfo.ReadState); Assert.AreEqual(NullabilityState.Nullable, leftInfo.WriteState); - Assert.AreEqual(3, leftInfo.GenericTypeArguments.Length); + Assert.HasCount(3, leftInfo.GenericTypeArguments); NullabilityInfo leftInfo0 = leftInfo.GenericTypeArguments[0]; @@ -685,14 +685,14 @@ public void Test_ObservableProperty_NullabilityAnnotations_Complex() Assert.AreEqual(typeof(StrongBox.Bar?>), rightInfo.Type); Assert.AreEqual(NullabilityState.Nullable, rightInfo.ReadState); Assert.AreEqual(NullabilityState.Nullable, rightInfo.WriteState); - Assert.AreEqual(1, rightInfo.GenericTypeArguments.Length); + Assert.HasCount(1, rightInfo.GenericTypeArguments); NullabilityInfo rightInnerInfo = rightInfo.GenericTypeArguments[0]; Assert.AreEqual(typeof(Foo.Bar), rightInnerInfo.Type); Assert.AreEqual(NullabilityState.Nullable, rightInnerInfo.ReadState); Assert.AreEqual(NullabilityState.Nullable, rightInnerInfo.WriteState); - Assert.AreEqual(3, rightInnerInfo.GenericTypeArguments.Length); + Assert.HasCount(3, rightInnerInfo.GenericTypeArguments); NullabilityInfo rightInfo0 = rightInnerInfo.GenericTypeArguments[0]; @@ -760,7 +760,7 @@ public void Test_ObservableProperty_WithinGenericTypeWithMultipleTypeParameters( model.UValue = "Hello"; model.List = new List() { 420 }; - Assert.AreEqual(true, model.Value); + Assert.IsTrue(model.Value); Assert.AreEqual(42, model.TValue); Assert.AreEqual("Hello", model.UValue); CollectionAssert.AreEqual(new[] { 420 }, model.List); @@ -882,7 +882,7 @@ public void Test_ObservableProperty_ForwardsSpecialCasesDataAnnotationAttributes Assert.IsNotNull(uiHintAttribute); Assert.AreEqual("MyControl", uiHintAttribute!.UIHint); Assert.AreEqual("WPF", uiHintAttribute.PresentationLayer); - Assert.AreEqual(3, uiHintAttribute.ControlParameters.Count); + Assert.HasCount(3, uiHintAttribute.ControlParameters); Assert.IsTrue(uiHintAttribute.ControlParameters.ContainsKey("Foo")); Assert.IsTrue(uiHintAttribute.ControlParameters.ContainsKey("Bar")); Assert.IsTrue(uiHintAttribute.ControlParameters.ContainsKey("Baz")); @@ -959,14 +959,14 @@ public void Test_ObservableProperty_WithExplicitAttributeForProperty() Assert.IsNotNull(testAttribute); Assert.IsNull(testAttribute.O); Assert.AreEqual(typeof(MyViewModelWithExplicitPropertyAttributes), testAttribute.T); - Assert.AreEqual(true, testAttribute.Flag); + Assert.IsTrue(testAttribute.Flag); Assert.AreEqual(6.28, testAttribute.D); CollectionAssert.AreEqual(testAttribute.Names, new[] { "Bob", "Ross" }); object[]? nestedArray = (object[]?)testAttribute.NestedArray; Assert.IsNotNull(nestedArray); - Assert.AreEqual(3, nestedArray!.Length); + Assert.HasCount(3, nestedArray); Assert.AreEqual(1, nestedArray[0]); Assert.AreEqual("Hello", nestedArray[1]); Assert.IsTrue(nestedArray[2] is int[]); @@ -983,18 +983,18 @@ public void Test_ObservableProperty_WithExplicitAttributeForProperty() Assert.IsNotNull(testAttribute2); Assert.IsNull(testAttribute2.O); Assert.AreEqual(typeof(MyViewModelWithExplicitPropertyAttributes), testAttribute2.T); - Assert.AreEqual(true, testAttribute2.Flag); + Assert.IsTrue(testAttribute2.Flag); Assert.AreEqual(6.28, testAttribute2.D); Assert.IsNotNull(testAttribute2.Objects); Assert.IsTrue(testAttribute2.Objects is object[]); - Assert.AreEqual(1, ((object[])testAttribute2.Objects).Length); + Assert.HasCount(1, (object[])testAttribute2.Objects); Assert.AreEqual("Test", ((object[])testAttribute2.Objects)[0]); CollectionAssert.AreEqual(testAttribute2.Names, new[] { "Bob", "Ross" }); object[]? nestedArray2 = (object[]?)testAttribute2.NestedArray; Assert.IsNotNull(nestedArray2); - Assert.AreEqual(4, nestedArray2!.Length); + Assert.HasCount(4, nestedArray2); Assert.AreEqual(1, nestedArray2[0]); Assert.AreEqual("Hello", nestedArray2[1]); Assert.AreEqual(42, nestedArray2[2]); diff --git a/tests/CommunityToolkit.Mvvm.SourceGenerators.UnitTests/Test_SourceGeneratorsDiagnostics.cs b/tests/CommunityToolkit.Mvvm.SourceGenerators.UnitTests/Test_SourceGeneratorsDiagnostics.cs index f18ff7df..69da0712 100644 --- a/tests/CommunityToolkit.Mvvm.SourceGenerators.UnitTests/Test_SourceGeneratorsDiagnostics.cs +++ b/tests/CommunityToolkit.Mvvm.SourceGenerators.UnitTests/Test_SourceGeneratorsDiagnostics.cs @@ -2589,7 +2589,7 @@ from assembly in AppDomain.CurrentDomain.GetAssemblies() // Filtered diagnostics List filteredDiagnostics = outputCompilationDiagnostics.Where(diagnostic => !ignoredDiagnosticIds.Contains(diagnostic.Id)).ToList(); - Assert.IsTrue(filteredDiagnostics.Count == 0, $"resultingIds: {string.Join(", ", filteredDiagnostics)}"); + Assert.IsEmpty(filteredDiagnostics, $"resultingIds: {string.Join(", ", filteredDiagnostics)}"); } GC.KeepAlive(observableObjectType); diff --git a/tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ObservableGroup.cs b/tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ObservableGroup.cs index db40fae9..a5e53b7f 100644 --- a/tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ObservableGroup.cs +++ b/tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ObservableGroup.cs @@ -18,7 +18,7 @@ public void Test_ObservableGroup_Ctor_ShouldHaveExpectedState() ObservableGroup group = new("key"); Assert.AreEqual("key", group.Key); - Assert.AreEqual(0, group.Count); + Assert.IsEmpty(group); } [TestMethod] @@ -101,7 +101,7 @@ public void Test_ObservableGroup_Clear_ShouldRaiseEvent() group.Clear(); Assert.AreEqual("key", group.Key); - Assert.AreEqual(0, group.Count); + Assert.IsEmpty(group); Assert.IsTrue(collectionChangedEventRaised); } diff --git a/tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ObservableGroupedCollection.cs b/tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ObservableGroupedCollection.cs index 9180a4d2..b106a824 100644 --- a/tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ObservableGroupedCollection.cs +++ b/tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ObservableGroupedCollection.cs @@ -18,7 +18,7 @@ public void Test_ObservableGroupedCollection_Ctor_ShouldHaveExpectedValues() { ObservableGroupedCollection groupCollection = new(); - Assert.AreEqual(0, groupCollection.Count); + Assert.IsEmpty(groupCollection); } [TestMethod] @@ -31,7 +31,7 @@ public void Test_ObservableGroupedCollection_Ctor_WithGroups_ShouldHaveExpectedV }; ObservableGroupedCollection groupCollection = new(groups); - Assert.AreEqual(2, groupCollection.Count); + Assert.HasCount(2, groupCollection); Assert.AreEqual("A", groupCollection[0].Key); CollectionAssert.AreEqual(groupCollection[0], new[] { 1, 3, 5 }); diff --git a/tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ObservableGroupedCollectionExtensions.cs b/tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ObservableGroupedCollectionExtensions.cs index 46cefc82..c0a5d81c 100644 --- a/tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ObservableGroupedCollectionExtensions.cs +++ b/tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ObservableGroupedCollectionExtensions.cs @@ -209,7 +209,7 @@ public void Test_ObservableGroupedCollectionExtensions_AddItem_WhenSingleTargetG Assert.AreEqual("B", addedGroup.Key); CollectionAssert.AreEqual(addedGroup, new[] { 4, 5, 6, 23 }); - Assert.AreEqual(3, groupedCollection.Count); + Assert.HasCount(3, groupedCollection); Assert.AreEqual("A", groupedCollection[0].Key); CollectionAssert.AreEqual(groupedCollection[0], new[] { 1, 2, 3 }); @@ -239,7 +239,7 @@ public void Test_ObservableGroupedCollectionExtensions_AddItem_WhenSeveralTarget Assert.AreEqual("B", addedGroup.Key); CollectionAssert.AreEqual(addedGroup, new[] { 4, 5, 6, 23 }); - Assert.AreEqual(4, groupedCollection.Count); + Assert.HasCount(4, groupedCollection); Assert.AreEqual("A", groupedCollection[0].Key); CollectionAssert.AreEqual(groupedCollection[0], new[] { 1, 2, 3 }); @@ -268,7 +268,7 @@ public void Test_ObservableGroupedCollectionExtensions_InsertItem() ObservableGroup group8 = groupedCollection.InsertItem("B", 8); ObservableGroup group7 = groupedCollection.InsertItem("B", 7); - Assert.AreEqual(2, groupedCollection.Count); + Assert.HasCount(2, groupedCollection); CollectionAssert.AllItemsAreNotNull(new[] { group1, group2, group6, group4, group3, group99, group8, group7 }); Assert.AreSame(group1, group2); @@ -298,7 +298,7 @@ public void Test_ObservableGroupedCollectionExtensions_InsertItem_WithComparer() ObservableGroup group8 = groupedCollection.InsertItem("B", Comparer.Default, 8, Comparer.Default); ObservableGroup group7 = groupedCollection.InsertItem("B", Comparer.Default, 7, Comparer.Default); - Assert.AreEqual(2, groupedCollection.Count); + Assert.HasCount(2, groupedCollection); CollectionAssert.AllItemsAreNotNull(new[] { group1, group2, group6, group4, group3, group99, group8, group7 }); Assert.AreSame(group1, group2); @@ -323,7 +323,7 @@ public void Test_ObservableGroupedCollectionExtensions_RemoveGroup_WhenGroupDoes groupedCollection.RemoveGroup("I do not exist"); - Assert.AreEqual(1, groupedCollection.Count); + Assert.HasCount(1, groupedCollection); Assert.AreEqual("A", groupedCollection[0].Key); CollectionAssert.AreEqual(groupedCollection[0], new[] { 1, 2, 3 }); } @@ -338,7 +338,7 @@ public void Test_ObservableGroupedCollectionExtensions_RemoveGroup_WhenSingleGro groupedCollection.RemoveGroup("B"); - Assert.AreEqual(1, groupedCollection.Count); + Assert.HasCount(1, groupedCollection); Assert.AreEqual("A", groupedCollection[0].Key); CollectionAssert.AreEqual(groupedCollection[0], new[] { 1, 2, 3 }); } @@ -354,7 +354,7 @@ public void Test_ObservableGroupedCollectionExtensions_RemoveGroup_WhenSeveralGr groupedCollection.RemoveGroup("B"); - Assert.AreEqual(2, groupedCollection.Count); + Assert.HasCount(2, groupedCollection); Assert.AreEqual("A", groupedCollection[0].Key); CollectionAssert.AreEqual(groupedCollection[0], new[] { 1, 2, 3 }); @@ -375,7 +375,7 @@ public void Test_ObservableGroupedCollectionExtensions_RemoveItem_WhenGroupDoesN groupedCollection.RemoveItem("I do not exist", 8, removeGroupIfEmpty); - Assert.AreEqual(2, groupedCollection.Count); + Assert.HasCount(2, groupedCollection); Assert.AreEqual("A", groupedCollection[0].Key); CollectionAssert.AreEqual(groupedCollection[0], new[] { 1, 2, 3 }); @@ -396,7 +396,7 @@ public void Test_ObservableGroupedCollectionExtensions_RemoveItem_WhenGroupExist groupedCollection.RemoveItem("B", 8, removeGroupIfEmpty); - Assert.AreEqual(2, groupedCollection.Count); + Assert.HasCount(2, groupedCollection); Assert.AreEqual("A", groupedCollection[0].Key); CollectionAssert.AreEqual(groupedCollection[0], new[] { 1, 2, 3 }); @@ -417,7 +417,7 @@ public void Test_ObservableGroupedCollectionExtensions_RemoveItem_WhenGroupAndIt groupedCollection.RemoveItem("B", 5, removeGroupIfEmpty); - Assert.AreEqual(2, groupedCollection.Count); + Assert.HasCount(2, groupedCollection); Assert.AreEqual("A", groupedCollection[0].Key); CollectionAssert.AreEqual(groupedCollection[0], new[] { 1, 2, 3 }); @@ -446,7 +446,7 @@ public void Test_ObservableGroupedCollectionExtensions_RemoveItem_WhenRemovingLa if (!expectGroupRemoved) { Assert.AreEqual("B", groupedCollection[1].Key); - Assert.AreEqual(0, groupedCollection[1].Count); + Assert.IsEmpty(groupedCollection[1]); } } } diff --git a/tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ReadOnlyObservableGroupedCollection.cs b/tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ReadOnlyObservableGroupedCollection.cs index 5b3d34ba..10e4260c 100644 --- a/tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ReadOnlyObservableGroupedCollection.cs +++ b/tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ReadOnlyObservableGroupedCollection.cs @@ -23,7 +23,7 @@ public void Test_ReadOnlyObservableGroupedCollection_Ctor_WithEmptySource_ShoudI ObservableGroupedCollection source = new(); ReadOnlyObservableGroupedCollection readOnlyGroup = new(source); - Assert.AreEqual(0, readOnlyGroup.Count); + Assert.IsEmpty(readOnlyGroup); CollectionAssert.AreEqual(readOnlyGroup, Array.Empty()); } @@ -38,7 +38,7 @@ public void Test_ReadOnlyObservableGroupedCollection_Ctor_WithObservableGroupedC ObservableGroupedCollection source = new(groups); ReadOnlyObservableGroupedCollection readOnlyGroup = new(source); - Assert.AreEqual(2, readOnlyGroup.Count); + Assert.HasCount(2, readOnlyGroup); Assert.AreEqual("A", readOnlyGroup[0].Key); CollectionAssert.AreEquivalent(readOnlyGroup[0], new[] { 1, 3, 5 }); @@ -57,7 +57,7 @@ public void Test_ReadOnlyObservableGroupedCollection_Ctor_WithListOfReadOnlyObse }; ReadOnlyObservableGroupedCollection readOnlyGroup = new(source); - Assert.AreEqual(2, readOnlyGroup.Count); + Assert.HasCount(2, readOnlyGroup); Assert.AreEqual("A", readOnlyGroup[0].Key); CollectionAssert.AreEqual(readOnlyGroup[0], new[] { 1, 3, 5 }); @@ -78,7 +78,7 @@ public void Test_ReadOnlyObservableGroupedCollection_IListImplementation_Propert ReadOnlyObservableGroupedCollection readOnlyGroup = new(source); IList list = readOnlyGroup; - Assert.AreEqual(2, list.Count); + Assert.HasCount(2, list); ReadOnlyObservableGroup group0 = (ReadOnlyObservableGroup)list[0]!; @@ -196,7 +196,7 @@ public void Test_ReadOnlyObservableGroupedCollection_AddGroupInSource_ShouldAddG int expectedReadOnlyGroupCount = sourceInitialItemsCount + 1; - Assert.AreEqual(expectedReadOnlyGroupCount, readOnlyGroup.Count); + Assert.HasCount(expectedReadOnlyGroupCount, readOnlyGroup); Assert.AreEqual("Add", readOnlyGroup[readOnlyGroup.Count - 1].Key); Assert.IsTrue(isCountPropertyChangedEventRaised); Assert.IsNotNull(collectionChangedEventArgs); @@ -232,7 +232,7 @@ public void Test_ReadOnlyObservableGroupedCollection_InsertGroupInSource_ShouldA source.Insert(insertionIndex, new ObservableGroup("Add", itemsList)); - Assert.AreEqual(3, readOnlyGroup.Count); + Assert.HasCount(3, readOnlyGroup); Assert.AreEqual("Add", readOnlyGroup[insertionIndex].Key); Assert.IsTrue(isCountPropertyChangedEventRaised); Assert.IsNotNull(collectionChangedEventArgs); @@ -267,7 +267,7 @@ public void Test_ReadOnlyObservableGroupedCollection_RemoveGroupInSource_ShoudRe source.RemoveAt(1); - Assert.AreEqual(1, readOnlyGroup.Count); + Assert.HasCount(1, readOnlyGroup); Assert.AreEqual("A", readOnlyGroup[0].Key); CollectionAssert.AreEquivalent(readOnlyGroup[0], aItemsList); @@ -312,7 +312,7 @@ public void Test_ReadOnlyObservableGroupedCollection_MoveGroupInSource_ShoudMove source.Move(oldIndex, newIndex); - Assert.AreEqual(groups.Count, readOnlyGroup.Count); + Assert.HasCount(groups.Count, readOnlyGroup); Assert.AreEqual("B", readOnlyGroup[0].Key); CollectionAssert.AreEquivalent(readOnlyGroup[0], bItemsList); @@ -362,7 +362,7 @@ public void Test_ReadOnlyObservableGroupedCollection_ClearSource_ShoudClear() source.Clear(); - Assert.AreEqual(0, readOnlyGroup.Count); + Assert.IsEmpty(readOnlyGroup); Assert.IsTrue(isCountPropertyChangedEventRaised); Assert.IsNotNull(collectionChangedEventArgs); @@ -398,7 +398,7 @@ public void Test_ReadOnlyObservableGroupedCollection_ReplaceGroupInSource_ShoudR source[0] = new ObservableGroup("C", cItemsList); - Assert.AreEqual(2, readOnlyGroup.Count); + Assert.HasCount(2, readOnlyGroup); Assert.AreEqual("C", readOnlyGroup[0].Key); CollectionAssert.AreEquivalent(readOnlyGroup[0], cItemsList); diff --git a/tests/CommunityToolkit.Mvvm.UnitTests/Test_AsyncRelayCommand.cs b/tests/CommunityToolkit.Mvvm.UnitTests/Test_AsyncRelayCommand.cs index d877ef80..bb69acbf 100644 --- a/tests/CommunityToolkit.Mvvm.UnitTests/Test_AsyncRelayCommand.cs +++ b/tests/CommunityToolkit.Mvvm.UnitTests/Test_AsyncRelayCommand.cs @@ -154,7 +154,7 @@ public async Task Test_AsyncRelayCommand_WithCancellation() Assert.IsFalse(command.IsCancellationRequested); // Validate the various event args for all the properties that were updated when executing the command - Assert.AreEqual(4, args.Count); + Assert.HasCount(4, args); Assert.AreEqual(nameof(IAsyncRelayCommand.ExecutionTask), args[0].PropertyName); Assert.AreEqual(nameof(IAsyncRelayCommand.IsRunning), args[1].PropertyName); Assert.AreEqual(nameof(IAsyncRelayCommand.CanBeCanceled), args[2].PropertyName); @@ -164,7 +164,7 @@ public async Task Test_AsyncRelayCommand_WithCancellation() // Verify that these two properties raised notifications correctly when canceling the command too. // We need to ensure all command properties support notifications so that users can bind to them. - Assert.AreEqual(6, args.Count); + Assert.HasCount(6, args); Assert.AreEqual(nameof(IAsyncRelayCommand.CanBeCanceled), args[4].PropertyName); Assert.AreEqual(nameof(IAsyncRelayCommand.IsCancellationRequested), args[5].PropertyName); @@ -580,7 +580,7 @@ public void Test_AsyncRelayCommand_GetCancelCommand_WithToken() command.Execute(null); - Assert.AreEqual(1, cancelCommandCanExecuteChangedArgs.Count); + Assert.HasCount(1, cancelCommandCanExecuteChangedArgs); Assert.AreSame(cancelCommand, cancelCommandCanExecuteChangedArgs[0].Sender); Assert.AreSame(EventArgs.Empty, cancelCommandCanExecuteChangedArgs[0].Args); @@ -589,7 +589,7 @@ public void Test_AsyncRelayCommand_GetCancelCommand_WithToken() cancelCommand.Execute(null); Assert.IsFalse(cancelCommand.CanExecute(null)); - Assert.AreEqual(2, cancelCommandCanExecuteChangedArgs.Count); + Assert.HasCount(2, cancelCommandCanExecuteChangedArgs); Assert.AreSame(cancelCommand, cancelCommandCanExecuteChangedArgs[1].Sender); Assert.AreSame(EventArgs.Empty, cancelCommandCanExecuteChangedArgs[1].Args); Assert.IsFalse(command.CanBeCanceled); diff --git a/tests/CommunityToolkit.Mvvm.UnitTests/Test_AsyncRelayCommand{T}.cs b/tests/CommunityToolkit.Mvvm.UnitTests/Test_AsyncRelayCommand{T}.cs index 5751d3c0..4c105d53 100644 --- a/tests/CommunityToolkit.Mvvm.UnitTests/Test_AsyncRelayCommand{T}.cs +++ b/tests/CommunityToolkit.Mvvm.UnitTests/Test_AsyncRelayCommand{T}.cs @@ -197,7 +197,7 @@ public async Task Test_AsyncRelayCommandOfT_WithCancellation() Assert.IsTrue(command.CanBeCanceled); Assert.IsFalse(command.IsCancellationRequested); - Assert.AreEqual(4, args.Count); + Assert.HasCount(4, args); Assert.AreEqual(nameof(IAsyncRelayCommand.ExecutionTask), args[0].PropertyName); Assert.AreEqual(nameof(IAsyncRelayCommand.IsRunning), args[1].PropertyName); Assert.AreEqual(nameof(IAsyncRelayCommand.CanBeCanceled), args[2].PropertyName); @@ -205,7 +205,7 @@ public async Task Test_AsyncRelayCommandOfT_WithCancellation() command.Cancel(); - Assert.AreEqual(6, args.Count); + Assert.HasCount(6, args); Assert.AreEqual(nameof(IAsyncRelayCommand.CanBeCanceled), args[4].PropertyName); Assert.AreEqual(nameof(IAsyncRelayCommand.IsCancellationRequested), args[5].PropertyName); @@ -589,7 +589,7 @@ public void Test_AsyncRelayCommandOfT_GetCancelCommand_WithToken() command.Execute(null); - Assert.AreEqual(1, cancelCommandCanExecuteChangedArgs.Count); + Assert.HasCount(1, cancelCommandCanExecuteChangedArgs); Assert.AreSame(cancelCommand, cancelCommandCanExecuteChangedArgs[0].Sender); Assert.AreSame(EventArgs.Empty, cancelCommandCanExecuteChangedArgs[0].Args); @@ -598,7 +598,7 @@ public void Test_AsyncRelayCommandOfT_GetCancelCommand_WithToken() cancelCommand.Execute(null); Assert.IsFalse(cancelCommand.CanExecute(null)); - Assert.AreEqual(2, cancelCommandCanExecuteChangedArgs.Count); + Assert.HasCount(2, cancelCommandCanExecuteChangedArgs); Assert.AreSame(cancelCommand, cancelCommandCanExecuteChangedArgs[1].Sender); Assert.AreSame(EventArgs.Empty, cancelCommandCanExecuteChangedArgs[1].Args); Assert.IsFalse(command.CanBeCanceled); diff --git a/tests/CommunityToolkit.Mvvm.UnitTests/Test_INotifyPropertyChangedAttribute.cs b/tests/CommunityToolkit.Mvvm.UnitTests/Test_INotifyPropertyChangedAttribute.cs index 8d0f5cf0..9acc5be0 100644 --- a/tests/CommunityToolkit.Mvvm.UnitTests/Test_INotifyPropertyChangedAttribute.cs +++ b/tests/CommunityToolkit.Mvvm.UnitTests/Test_INotifyPropertyChangedAttribute.cs @@ -61,13 +61,13 @@ public void Test_INotifyPropertyChanged_WithoutHelpers() MethodInfo[]? methods = typeof(SampleModelWithoutHelpers).GetMethods(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.DeclaredOnly); - Assert.AreEqual(2, methods.Length); + Assert.HasCount(2, methods); Assert.AreEqual("OnPropertyChanged", methods[0].Name); Assert.AreEqual("OnPropertyChanged", methods[1].Name); System.Type[]? types = typeof(SampleModelWithoutHelpers).GetNestedTypes(BindingFlags.NonPublic); - Assert.AreEqual(0, types.Length); + Assert.IsEmpty(types); } [INotifyPropertyChanged(IncludeAdditionalHelperMethods = false)] @@ -89,7 +89,7 @@ public void Test_INotifyPropertyChanged_WithGeneratedProperties() model.X = 42; model.Y = 66; - Assert.AreEqual(2, eventArgs.Count); + Assert.HasCount(2, eventArgs); Assert.AreEqual(nameof(SampleModelWithINPCAndObservableProperties.X), eventArgs[0].PropertyName); Assert.AreEqual(nameof(SampleModelWithINPCAndObservableProperties.Y), eventArgs[1].PropertyName); } @@ -120,7 +120,7 @@ public void Test_INotifyPropertyChanged_WithGeneratedPartialProperties() model.X = 42; model.Y = 66; - Assert.AreEqual(2, eventArgs.Count); + Assert.HasCount(2, eventArgs); Assert.AreEqual(nameof(SampleModelWithINPCAndObservablePartialProperties.X), eventArgs[0].PropertyName); Assert.AreEqual(nameof(SampleModelWithINPCAndObservablePartialProperties.Y), eventArgs[1].PropertyName); } @@ -150,7 +150,7 @@ public void Test_INotifyPropertyChanged_WithGeneratedProperties_ExternalNetStand model.X = 42; model.Y = 66; - Assert.AreEqual(2, eventArgs.Count); + Assert.HasCount(2, eventArgs); Assert.AreEqual(nameof(ExternalAssembly.SampleModelWithINPCAndObservableProperties.X), eventArgs[0].PropertyName); Assert.AreEqual(nameof(ExternalAssembly.SampleModelWithINPCAndObservableProperties.Y), eventArgs[1].PropertyName); } diff --git a/tests/CommunityToolkit.Mvvm.UnitTests/Test_Messenger.Request.cs b/tests/CommunityToolkit.Mvvm.UnitTests/Test_Messenger.Request.cs index 3cdc4aa5..ec0f0211 100644 --- a/tests/CommunityToolkit.Mvvm.UnitTests/Test_Messenger.Request.cs +++ b/tests/CommunityToolkit.Mvvm.UnitTests/Test_Messenger.Request.cs @@ -198,7 +198,7 @@ static void Receive(object recipient, NumbersCollectionRequestMessage m) IReadOnlyCollection? results = messenger.Send().Responses; - Assert.AreEqual(0, results.Count); + Assert.IsEmpty(results); GC.KeepAlive(recipient); } @@ -272,7 +272,7 @@ static void Receive(object recipient, AsyncNumbersCollectionRequestMessage m) IReadOnlyCollection? results = await messenger.Send().GetResponsesAsync(); - Assert.AreEqual(0, results.Count); + Assert.IsEmpty(results); GC.KeepAlive(recipient); } diff --git a/tests/CommunityToolkit.Mvvm.UnitTests/Test_Messenger.cs b/tests/CommunityToolkit.Mvvm.UnitTests/Test_Messenger.cs index 86abac37..1642a735 100644 --- a/tests/CommunityToolkit.Mvvm.UnitTests/Test_Messenger.cs +++ b/tests/CommunityToolkit.Mvvm.UnitTests/Test_Messenger.cs @@ -682,11 +682,11 @@ public void Test_Messenger_ConcurrentOperations_DefaultChannel_SeparateRecipient _ = messenger.Send(); // We can't just check that the count has been increased by 1, as there may be other concurrent broadcasts - Assert.IsTrue(r.As > a); + Assert.IsGreaterThan(a, r.As); _ = messenger.Send(); - Assert.IsTrue(r.Bs > b); + Assert.IsGreaterThan(b, r.Bs); switch (random.Next(0, 2)) { @@ -739,7 +739,7 @@ public void Test_Messenger_ConcurrentOperations_DefaultChannel_SharedRecipients( _ = messenger.Send(); - Assert.IsTrue(r.As > a); + Assert.IsGreaterThan(a, r.As); messenger.Unregister(r); } @@ -763,7 +763,7 @@ public void Test_Messenger_ConcurrentOperations_DefaultChannel_SharedRecipients( _ = messenger.Send(); - Assert.IsTrue(r.Bs > b); + Assert.IsGreaterThan(b, r.Bs); messenger.Unregister(r); } @@ -816,11 +816,11 @@ public void Test_Messenger_ConcurrentOperations_WithToken_SeparateRecipients(Typ _ = messenger.Send(token); - Assert.IsTrue(r.As > a); + Assert.IsGreaterThan(a, r.As); _ = messenger.Send(token); - Assert.IsTrue(r.Bs > b); + Assert.IsGreaterThan(b, r.Bs); switch (random.Next(0, 3)) { @@ -878,7 +878,7 @@ public void Test_Messenger_ConcurrentOperations_WithToken_SharedRecipients(Type _ = messenger.Send(token); - Assert.IsTrue(r.As > a); + Assert.IsGreaterThan(a, r.As); messenger.Unregister(r, token); } @@ -902,7 +902,7 @@ public void Test_Messenger_ConcurrentOperations_WithToken_SharedRecipients(Type _ = messenger.Send(token); - Assert.IsTrue(r.Bs > b); + Assert.IsGreaterThan(b, r.Bs); messenger.Unregister(r, token); } @@ -1029,8 +1029,8 @@ public void Test_Messenger_ConcurrentOperations_Combined_SeparateRecipients(Type messenger.UnregisterAll(r); } - Assert.IsTrue(r.As > a); - Assert.IsTrue(r.Bs > b); + Assert.IsGreaterThan(a, r.As); + Assert.IsGreaterThan(b, r.Bs); } }); } diff --git a/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservablePropertyAttribute.cs b/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservablePropertyAttribute.cs index 5a8f61dc..646058a7 100644 --- a/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservablePropertyAttribute.cs +++ b/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservablePropertyAttribute.cs @@ -142,7 +142,7 @@ public void Test_ObservablePropertyAttributeRightBelowRegion_Events() model.Name = "Bob"; Assert.AreEqual(nameof(SampleModel.Name), changing.Item1?.PropertyName); - Assert.AreEqual(null, changing.Item2); + Assert.IsNull(changing.Item2); Assert.AreEqual(nameof(SampleModel.Name), changed.Item1?.PropertyName); Assert.AreEqual("Bob", changed.Item2); } @@ -190,14 +190,14 @@ public void Test_ValidationAttributes() Assert.IsNotNull(testAttribute); Assert.IsNull(testAttribute.O); Assert.AreEqual(typeof(SampleModel), testAttribute.T); - Assert.AreEqual(true, testAttribute.Flag); + Assert.IsTrue(testAttribute.Flag); Assert.AreEqual(6.28, testAttribute.D); CollectionAssert.AreEqual(testAttribute.Names, new[] { "Bob", "Ross" }); object[]? nestedArray = (object[]?)testAttribute.NestedArray; Assert.IsNotNull(nestedArray); - Assert.AreEqual(3, nestedArray!.Length); + Assert.HasCount(3, nestedArray); Assert.AreEqual(1, nestedArray[0]); Assert.AreEqual("Hello", nestedArray[1]); Assert.IsTrue(nestedArray[2] is int[]); @@ -263,13 +263,13 @@ public void Test_ObservablePropertyWithValueNamedField_WithValidationAttributesA model.Value = "Bo"; Assert.IsTrue(model.HasErrors); - Assert.AreEqual(1, errors.Count); + Assert.HasCount(1, errors); Assert.AreEqual(nameof(ModelWithValuePropertyWithAutomaticValidation.Value), errors[0].PropertyName); model.Value = "Hello world"; Assert.IsFalse(model.HasErrors); - Assert.AreEqual(2, errors.Count); + Assert.HasCount(2, errors); Assert.AreEqual(nameof(ModelWithValuePropertyWithAutomaticValidation.Value), errors[1].PropertyName); } @@ -289,13 +289,13 @@ public void Test_ObservablePropertyWithValueNamedField_WithValidationAttributesA model.Value = "Bo"; Assert.IsTrue(model.HasErrors); - Assert.AreEqual(1, errors.Count); + Assert.HasCount(1, errors); Assert.AreEqual(nameof(ModelWithValuePropertyWithAutomaticValidationWithClassLevelAttribute.Value), errors[0].PropertyName); model.Value = "Hello world"; Assert.IsFalse(model.HasErrors); - Assert.AreEqual(2, errors.Count); + Assert.HasCount(2, errors); Assert.AreEqual(nameof(ModelWithValuePropertyWithAutomaticValidationWithClassLevelAttribute.Value), errors[1].PropertyName); } @@ -315,13 +315,13 @@ public void Test_ObservablePropertyWithValueNamedField_WithValidationAttributesA model.Value2 = "Bo"; Assert.IsTrue(model.HasErrors); - Assert.AreEqual(1, errors.Count); + Assert.HasCount(1, errors); Assert.AreEqual(nameof(ModelWithValuePropertyWithAutomaticValidationInheritingClassLevelAttribute.Value2), errors[0].PropertyName); model.Value2 = "Hello world"; Assert.IsFalse(model.HasErrors); - Assert.AreEqual(2, errors.Count); + Assert.HasCount(2, errors); Assert.AreEqual(nameof(ModelWithValuePropertyWithAutomaticValidationInheritingClassLevelAttribute.Value2), errors[1].PropertyName); } @@ -348,7 +348,7 @@ public void Test_GeneratedPropertiesWithValidationAttributesOverFields() ValidationResult[] validationErrors = model.GetErrors().ToArray(); - Assert.AreEqual(2, validationErrors.Length); + Assert.HasCount(2, validationErrors); CollectionAssert.AreEqual(new[] { nameof(ViewModelWithValidatableGeneratedProperties.First) }, validationErrors[0].MemberNames.ToArray()); CollectionAssert.AreEqual(new[] { nameof(ViewModelWithValidatableGeneratedProperties.Last) }, validationErrors[1].MemberNames.ToArray()); @@ -446,7 +446,7 @@ public void Test_OnPropertyChangingAndChangedPartialMethods_WithPreviousValues() { ViewModelWithImplementedUpdateMethods2 model = new(); - Assert.AreEqual(null, model.Name); + Assert.IsNull(model.Name); Assert.AreEqual(0, model.Number); CollectionAssert.AreEqual(Array.Empty<(string, string)>(), model.OnNameChangingValues); @@ -588,15 +588,15 @@ private void Test_NotifyPropertyChangedRecipients_Test(Func fa setter(model, "Bob"); - Assert.AreEqual(1, messages.Count); + Assert.HasCount(1, messages); Assert.AreSame(model, messages[0].Sender); - Assert.AreEqual(null, messages[0].Message.OldValue); + Assert.IsNull(messages[0].Message.OldValue); Assert.AreEqual("Bob", messages[0].Message.NewValue); Assert.AreEqual(propertyName, messages[0].Message.PropertyName); setter(model, "Ross"); - Assert.AreEqual(2, messages.Count); + Assert.HasCount(2, messages); Assert.AreSame(model, messages[1].Sender); Assert.AreEqual("Bob", messages[1].Message.OldValue); Assert.AreEqual("Ross", messages[1].Message.NewValue); @@ -618,7 +618,7 @@ public void Test_ObservableProperty_ObservableRecipientDoesNotBroadcastByDefault model.Name = null; // The [NotifyPropertyChangedRecipients] attribute wasn't used, so no messages should have been sent - Assert.AreEqual(0, messages.Count); + Assert.IsEmpty(messages); } #if NET6_0_OR_GREATER @@ -633,7 +633,7 @@ public void Test_ObservableProperty_NullabilityAnnotations_Simple() Assert.AreEqual(typeof(List), info.Type); Assert.AreEqual(NullabilityState.Nullable, info.ReadState); Assert.AreEqual(NullabilityState.Nullable, info.WriteState); - Assert.AreEqual(1, info.GenericTypeArguments.Length); + Assert.HasCount(1, info.GenericTypeArguments); NullabilityInfo elementInfo = info.GenericTypeArguments[0]; @@ -653,14 +653,14 @@ public void Test_ObservableProperty_NullabilityAnnotations_Complex() Assert.AreEqual(typeof(Foo.Bar?, StrongBox.Bar?>?>), info.Type); Assert.AreEqual(NullabilityState.Nullable, info.ReadState); Assert.AreEqual(NullabilityState.Nullable, info.WriteState); - Assert.AreEqual(2, info.GenericTypeArguments.Length); + Assert.HasCount(2, info.GenericTypeArguments); NullabilityInfo leftInfo = info.GenericTypeArguments[0]; Assert.AreEqual(typeof(Foo.Bar), leftInfo.Type); Assert.AreEqual(NullabilityState.Nullable, leftInfo.ReadState); Assert.AreEqual(NullabilityState.Nullable, leftInfo.WriteState); - Assert.AreEqual(3, leftInfo.GenericTypeArguments.Length); + Assert.HasCount(3, leftInfo.GenericTypeArguments); NullabilityInfo leftInfo0 = leftInfo.GenericTypeArguments[0]; @@ -685,14 +685,14 @@ public void Test_ObservableProperty_NullabilityAnnotations_Complex() Assert.AreEqual(typeof(StrongBox.Bar?>), rightInfo.Type); Assert.AreEqual(NullabilityState.Nullable, rightInfo.ReadState); Assert.AreEqual(NullabilityState.Nullable, rightInfo.WriteState); - Assert.AreEqual(1, rightInfo.GenericTypeArguments.Length); + Assert.HasCount(1, rightInfo.GenericTypeArguments); NullabilityInfo rightInnerInfo = rightInfo.GenericTypeArguments[0]; Assert.AreEqual(typeof(Foo.Bar), rightInnerInfo.Type); Assert.AreEqual(NullabilityState.Nullable, rightInnerInfo.ReadState); Assert.AreEqual(NullabilityState.Nullable, rightInnerInfo.WriteState); - Assert.AreEqual(3, rightInnerInfo.GenericTypeArguments.Length); + Assert.HasCount(3, rightInnerInfo.GenericTypeArguments); NullabilityInfo rightInfo0 = rightInnerInfo.GenericTypeArguments[0]; @@ -760,7 +760,7 @@ public void Test_ObservableProperty_WithinGenericTypeWithMultipleTypeParameters( model.UValue = "Hello"; model.List = new List() { 420 }; - Assert.AreEqual(true, model.Value); + Assert.IsTrue(model.Value); Assert.AreEqual(42, model.TValue); Assert.AreEqual("Hello", model.UValue); CollectionAssert.AreEqual(new[] { 420 }, model.List); @@ -882,7 +882,7 @@ public void Test_ObservableProperty_ForwardsSpecialCasesDataAnnotationAttributes Assert.IsNotNull(uiHintAttribute); Assert.AreEqual("MyControl", uiHintAttribute!.UIHint); Assert.AreEqual("WPF", uiHintAttribute.PresentationLayer); - Assert.AreEqual(3, uiHintAttribute.ControlParameters.Count); + Assert.HasCount(3, uiHintAttribute.ControlParameters); Assert.IsTrue(uiHintAttribute.ControlParameters.ContainsKey("Foo")); Assert.IsTrue(uiHintAttribute.ControlParameters.ContainsKey("Bar")); Assert.IsTrue(uiHintAttribute.ControlParameters.ContainsKey("Baz")); @@ -959,14 +959,14 @@ public void Test_ObservableProperty_WithExplicitAttributeForProperty() Assert.IsNotNull(testAttribute); Assert.IsNull(testAttribute.O); Assert.AreEqual(typeof(MyViewModelWithExplicitPropertyAttributes), testAttribute.T); - Assert.AreEqual(true, testAttribute.Flag); + Assert.IsTrue(testAttribute.Flag); Assert.AreEqual(6.28, testAttribute.D); CollectionAssert.AreEqual(testAttribute.Names, new[] { "Bob", "Ross" }); object[]? nestedArray = (object[]?)testAttribute.NestedArray; Assert.IsNotNull(nestedArray); - Assert.AreEqual(3, nestedArray!.Length); + Assert.HasCount(3, nestedArray); Assert.AreEqual(1, nestedArray[0]); Assert.AreEqual("Hello", nestedArray[1]); Assert.IsTrue(nestedArray[2] is int[]); @@ -983,18 +983,18 @@ public void Test_ObservableProperty_WithExplicitAttributeForProperty() Assert.IsNotNull(testAttribute2); Assert.IsNull(testAttribute2.O); Assert.AreEqual(typeof(MyViewModelWithExplicitPropertyAttributes), testAttribute2.T); - Assert.AreEqual(true, testAttribute2.Flag); + Assert.IsTrue(testAttribute2.Flag); Assert.AreEqual(6.28, testAttribute2.D); Assert.IsNotNull(testAttribute2.Objects); Assert.IsTrue(testAttribute2.Objects is object[]); - Assert.AreEqual(1, ((object[])testAttribute2.Objects).Length); + Assert.HasCount(1, (object[])testAttribute2.Objects); Assert.AreEqual("Test", ((object[])testAttribute2.Objects)[0]); CollectionAssert.AreEqual(testAttribute2.Names, new[] { "Bob", "Ross" }); object[]? nestedArray2 = (object[]?)testAttribute2.NestedArray; Assert.IsNotNull(nestedArray2); - Assert.AreEqual(4, nestedArray2!.Length); + Assert.HasCount(4, nestedArray2); Assert.AreEqual(1, nestedArray2[0]); Assert.AreEqual("Hello", nestedArray2[1]); Assert.AreEqual(42, nestedArray2[2]); diff --git a/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservableRecipientAttribute.cs b/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservableRecipientAttribute.cs index 3b2034ca..6c1f1538 100644 --- a/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservableRecipientAttribute.cs +++ b/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservableRecipientAttribute.cs @@ -32,19 +32,19 @@ public void Test_ObservableRecipientAttribute_Events() model.Name = "No"; Assert.IsTrue(model.HasErrors); - Assert.AreEqual(2, args.Count); + Assert.HasCount(2, args); Assert.AreEqual(nameof(Person.Name), args[0].PropertyName); Assert.AreEqual(nameof(INotifyDataErrorInfo.HasErrors), args[1].PropertyName); model.Name = "Valid"; Assert.IsFalse(model.HasErrors); - Assert.AreEqual(4, args.Count); + Assert.HasCount(4, args); Assert.AreEqual(nameof(Person.Name), args[2].PropertyName); Assert.AreEqual(nameof(INotifyDataErrorInfo.HasErrors), args[3].PropertyName); Assert.IsNotNull(typeof(Person).GetProperty("Messenger", BindingFlags.Instance | BindingFlags.NonPublic)); - Assert.AreEqual(0, typeof(Person).GetConstructors(BindingFlags.Instance | BindingFlags.NonPublic).Length); + Assert.IsEmpty(typeof(Person).GetConstructors(BindingFlags.Instance | BindingFlags.NonPublic)); } [ObservableRecipient] @@ -78,7 +78,7 @@ public void Test_ObservableRecipientAttribute_AbstractConstructors() { ConstructorInfo[]? ctors = typeof(AbstractPerson).GetConstructors(BindingFlags.Instance | BindingFlags.NonPublic); - Assert.AreEqual(2, ctors.Length); + Assert.HasCount(2, ctors); Assert.IsTrue(ctors.All(static ctor => ctor.IsFamily)); } @@ -92,7 +92,7 @@ public void Test_ObservableRecipientAttribute_NonAbstractConstructors() { ConstructorInfo[]? ctors = typeof(NonAbstractPerson).GetConstructors(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); - Assert.AreEqual(2, ctors.Length); + Assert.HasCount(2, ctors); Assert.IsTrue(ctors.All(static ctor => ctor.IsPublic)); } @@ -117,14 +117,14 @@ public void Test_ObservableRecipientAttribute_TrimmingAnnoations_IsActive() { Attribute[] attributes = isActivePropertySetter.GetCustomAttributes().ToArray(); - Assert.AreEqual(1, attributes.Length); + Assert.HasCount(1, attributes); Assert.AreEqual("System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute", attributes[0].GetType().ToString()); } else { Attribute[] attributes = isActivePropertySetter.GetCustomAttributes().ToArray(); - Assert.AreEqual(0, attributes.Length); + Assert.IsEmpty(attributes); } } diff --git a/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservableValidator.cs b/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservableValidator.cs index 464fdf91..cf41bb72 100644 --- a/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservableValidator.cs +++ b/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservableValidator.cs @@ -35,14 +35,14 @@ public void Test_ObservableValidator_HasErrors() // properties were broadcast as well (both the changed property and HasErrors). We need // this last one to raise notifications too so that users can bind to that in the UI. Assert.IsTrue(model.HasErrors); - Assert.AreEqual(2, args.Count); + Assert.HasCount(2, args); Assert.AreEqual(nameof(Person.Name), args[0].PropertyName); Assert.AreEqual(nameof(INotifyDataErrorInfo.HasErrors), args[1].PropertyName); model.Name = "Valid"; Assert.IsFalse(model.HasErrors); - Assert.AreEqual(4, args.Count); + Assert.HasCount(4, args); Assert.AreEqual(nameof(Person.Name), args[2].PropertyName); Assert.AreEqual(nameof(INotifyDataErrorInfo.HasErrors), args[3].PropertyName); } @@ -58,7 +58,7 @@ public void Test_ObservableValidator_ErrorsChanged() model.Name = "Foo"; - Assert.AreEqual(1, errors.Count); + Assert.HasCount(1, errors); Assert.AreSame(errors[0].Sender, model); Assert.AreEqual(nameof(Person.Name), errors[0].Args.PropertyName); @@ -66,7 +66,7 @@ public void Test_ObservableValidator_ErrorsChanged() model.Name = "Bar"; - Assert.AreEqual(1, errors.Count); + Assert.HasCount(1, errors); Assert.AreSame(errors[0].Sender, model); Assert.AreEqual(nameof(Person.Name), errors[0].Args.PropertyName); @@ -74,7 +74,7 @@ public void Test_ObservableValidator_ErrorsChanged() model.Name = "Valid"; - Assert.AreEqual(1, errors.Count); + Assert.HasCount(1, errors); Assert.AreSame(errors[0].Sender, model); Assert.AreEqual(nameof(Person.Name), errors[0].Args.PropertyName); @@ -82,7 +82,7 @@ public void Test_ObservableValidator_ErrorsChanged() model.Name = "This is fine"; - Assert.AreEqual(0, errors.Count); + Assert.IsEmpty(errors); } [TestMethod] @@ -99,26 +99,26 @@ public void Test_ObservableValidator_GetErrors() ValidationResult[]? errors = model.GetErrors(nameof(Person.Name)).ToArray(); - Assert.AreEqual(1, errors.Length); + Assert.HasCount(1, errors); Assert.AreEqual(nameof(Person.Name), errors[0].MemberNames.First()); Assert.AreEqual(0, model.GetErrors("ThereIsntAPropertyWithThisName").Count()); errors = model.GetErrors(null).ToArray(); - Assert.AreEqual(1, errors.Length); + Assert.HasCount(1, errors); Assert.AreEqual(nameof(Person.Name), errors[0].MemberNames.First()); errors = model.GetErrors(string.Empty).ToArray(); - Assert.AreEqual(1, errors.Length); + Assert.HasCount(1, errors); Assert.AreEqual(nameof(Person.Name), errors[0].MemberNames.First()); model.Age = -1; errors = model.GetErrors(null).ToArray(); - Assert.AreEqual(2, errors.Length); + Assert.HasCount(2, errors); Assert.IsTrue(errors.Any(e => e.MemberNames.First().Equals(nameof(Person.Name)))); Assert.IsTrue(errors.Any(e => e.MemberNames.First().Equals(nameof(Person.Age)))); @@ -126,7 +126,7 @@ public void Test_ObservableValidator_GetErrors() errors = model.GetErrors(null).ToArray(); - Assert.AreEqual(1, errors.Length); + Assert.HasCount(1, errors); Assert.IsTrue(errors.Any(e => e.MemberNames.First().Equals(nameof(Person.Name)))); Assert.IsFalse(errors.Any(e => e.MemberNames.First().Equals(nameof(Person.Age)))); } @@ -164,29 +164,29 @@ public void Test_ObservableValidator_TrySetProperty() // Set a correct value, this should update the property Assert.IsTrue(model.TrySetName("Hello", out IReadOnlyCollection? errors)); - Assert.IsTrue(errors.Count == 0); - Assert.IsTrue(events.Count == 0); + Assert.IsEmpty(errors); + Assert.IsEmpty(events); Assert.AreEqual("Hello", model.Name); Assert.IsFalse(model.HasErrors); // Invalid value #1, this should be ignored Assert.IsFalse(model.TrySetName(null, out errors)); - Assert.IsTrue(errors.Count > 0); - Assert.IsTrue(events.Count == 0); + Assert.IsNotEmpty(errors); + Assert.IsEmpty(events); Assert.AreEqual("Hello", model.Name); Assert.IsFalse(model.HasErrors); // Invalid value #2, same as above Assert.IsFalse(model.TrySetName("This string is too long for the target property in this model and should fail", out errors)); - Assert.IsTrue(errors.Count > 0); - Assert.IsTrue(events.Count == 0); + Assert.IsNotEmpty(errors); + Assert.IsEmpty(events); Assert.AreEqual("Hello", model.Name); Assert.IsFalse(model.HasErrors); // Correct value, this should update the property Assert.IsTrue(model.TrySetName("Hello world", out errors)); - Assert.IsTrue(errors.Count == 0); - Assert.IsTrue(events.Count == 0); + Assert.IsEmpty(errors); + Assert.IsEmpty(events); Assert.AreEqual("Hello world", model.Name); Assert.IsFalse(model.HasErrors); @@ -195,14 +195,14 @@ public void Test_ObservableValidator_TrySetProperty() // Errors should now be present Assert.IsTrue(model.HasErrors); - Assert.IsTrue(events.Count == 1); + Assert.AreEqual(1, events.Count); Assert.IsTrue(model.GetErrors(nameof(Person.Name)).Any()); Assert.IsTrue(model.HasErrors); // Trying to set a correct property should clear the errors Assert.IsTrue(model.TrySetName("This is fine", out errors)); - Assert.IsTrue(errors.Count == 0); - Assert.IsTrue(events.Count == 2); + Assert.IsEmpty(errors); + Assert.AreEqual(2, events.Count); Assert.IsFalse(model.HasErrors); Assert.AreEqual("This is fine", model.Name); } @@ -219,13 +219,13 @@ public void Test_ObservableValidator_ValidateProperty() model.A = 42; model.B = 30; - Assert.AreEqual(0, events.Count); + Assert.IsEmpty(events); Assert.IsFalse(model.HasErrors); // Make B greater than A, hence invalidating A model.B = 50; - Assert.AreEqual(1, events.Count); + Assert.HasCount(1, events); Assert.AreEqual(nameof(ComparableModel.A), events.Last().PropertyName); Assert.IsTrue(model.HasErrors); @@ -234,7 +234,7 @@ public void Test_ObservableValidator_ValidateProperty() // Make A greater than B, hence making it valid again model.A = 51; - Assert.AreEqual(1, events.Count); + Assert.HasCount(1, events); Assert.AreEqual(nameof(ComparableModel.A), events.Last().PropertyName); Assert.AreEqual(0, model.GetErrors(nameof(ComparableModel.A)).Count()); Assert.IsFalse(model.HasErrors); @@ -244,7 +244,7 @@ public void Test_ObservableValidator_ValidateProperty() // Make A smaller than B, hence invalidating it model.A = 49; - Assert.AreEqual(1, events.Count); + Assert.HasCount(1, events); Assert.AreEqual(nameof(ComparableModel.A), events.Last().PropertyName); Assert.AreEqual(1, model.GetErrors(nameof(ComparableModel.A)).Count()); Assert.IsTrue(model.HasErrors); @@ -254,7 +254,7 @@ public void Test_ObservableValidator_ValidateProperty() // Lower B, hence making A valid again model.B = 20; - Assert.AreEqual(1, events.Count); + Assert.HasCount(1, events); Assert.AreEqual(nameof(ComparableModel.A), events.Last().PropertyName); Assert.AreEqual(0, model.GetErrors(nameof(ComparableModel.A)).Count()); Assert.IsFalse(model.HasErrors); @@ -276,7 +276,7 @@ public void Test_ObservableValidator_ClearErrors() model.ClearErrors(nameof(Person.Age)); Assert.IsFalse(model.HasErrors); - Assert.IsTrue(events.Count == 2); + Assert.AreEqual(2, events.Count); model.Age = 200; model.Name = "Bo"; @@ -290,9 +290,9 @@ public void Test_ObservableValidator_ClearErrors() Assert.IsFalse(model.HasErrors); Assert.IsFalse(model.GetErrors(nameof(Person.Age)).Any()); Assert.IsFalse(model.GetErrors(nameof(Person.Name)).Any()); - Assert.IsTrue(events.Count == 2); - Assert.IsTrue(events[0].PropertyName == nameof(Person.Age)); - Assert.IsTrue(events[1].PropertyName == nameof(Person.Name)); + Assert.AreEqual(2, events.Count); + Assert.AreEqual(nameof(Person.Age), events[0].PropertyName); + Assert.AreEqual(nameof(Person.Name), events[1].PropertyName); } [TestMethod] @@ -306,7 +306,7 @@ public void Test_ObservableValidator_ValidateAllProperties() model.ValidateAllProperties(); Assert.IsTrue(model.HasErrors); - Assert.IsTrue(events.Count == 2); + Assert.AreEqual(2, events.Count); // Note: we can't use an index here because the order used to return properties // from reflection APIs is an implementation detail and might change at any time. @@ -321,7 +321,7 @@ public void Test_ObservableValidator_ValidateAllProperties() model.ValidateAllProperties(); Assert.IsFalse(model.HasErrors); - Assert.IsTrue(events.Count == 2); + Assert.AreEqual(2, events.Count); Assert.IsTrue(events.Any(e => e.PropertyName == nameof(Person.Name))); Assert.IsTrue(events.Any(e => e.PropertyName == nameof(Person.Age))); @@ -332,7 +332,7 @@ public void Test_ObservableValidator_ValidateAllProperties() model.ValidateAllProperties(); Assert.IsTrue(model.HasErrors); - Assert.IsTrue(events.Count == 1); + Assert.AreEqual(1, events.Count); Assert.IsTrue(events.Any(e => e.PropertyName == nameof(Person.Age))); } @@ -352,7 +352,7 @@ public void Test_ObservableValidator_ValidateAllProperties_WithFallback() validationAction(model); Assert.IsTrue(model.HasErrors); - Assert.IsTrue(events.Count == 2); + Assert.AreEqual(2, events.Count); // Note: we can't use an index here because the order used to return properties // from reflection APIs is an implementation detail and might change at any time. @@ -367,7 +367,7 @@ public void Test_ObservableValidator_ValidateAllProperties_WithFallback() validationAction(model); Assert.IsFalse(model.HasErrors); - Assert.IsTrue(events.Count == 2); + Assert.AreEqual(2, events.Count); Assert.IsTrue(events.Any(e => e.PropertyName == nameof(Person.Name))); Assert.IsTrue(events.Any(e => e.PropertyName == nameof(Person.Age))); @@ -378,7 +378,7 @@ public void Test_ObservableValidator_ValidateAllProperties_WithFallback() validationAction(model); Assert.IsTrue(model.HasErrors); - Assert.IsTrue(events.Count == 1); + Assert.AreEqual(1, events.Count); Assert.IsTrue(events.Any(e => e.PropertyName == nameof(Person.Age))); } @@ -394,7 +394,7 @@ public void Test_ObservableValidator_ValidateAllProperties_WithinPartialClassDec model.ValidateAllProperties(); Assert.IsTrue(model.HasErrors); - Assert.IsTrue(events.Count == 2); + Assert.AreEqual(2, events.Count); Assert.IsTrue(events.Any(e => e.PropertyName == nameof(PersonWithPartialDeclaration.Name))); Assert.IsTrue(events.Any(e => e.PropertyName == nameof(PersonWithPartialDeclaration.Number))); @@ -407,7 +407,7 @@ public void Test_ObservableValidator_ValidateAllProperties_WithinPartialClassDec model.ValidateAllProperties(); Assert.IsFalse(model.HasErrors); - Assert.IsTrue(events.Count == 2); + Assert.AreEqual(2, events.Count); Assert.IsTrue(events.Any(e => e.PropertyName == nameof(PersonWithPartialDeclaration.Name))); Assert.IsTrue(events.Any(e => e.PropertyName == nameof(PersonWithPartialDeclaration.Number))); } @@ -424,7 +424,7 @@ public void Test_ObservableValidator_CustomValidation() model.A = 10; Assert.IsFalse(model.HasErrors); - Assert.AreEqual(0, events.Count); + Assert.IsEmpty(events); } [TestMethod] @@ -438,28 +438,28 @@ public void Test_ObservableValidator_CustomValidationWithInjectedService() model.Name = "This is a valid name"; Assert.IsFalse(model.HasErrors); - Assert.AreEqual(0, events.Count); + Assert.IsEmpty(events); model.Name = "This is invalid238!!"; Assert.IsTrue(model.HasErrors); - Assert.AreEqual(1, events.Count); + Assert.HasCount(1, events); Assert.AreEqual(nameof(ValidationWithServiceModel.Name), events[0].PropertyName); - Assert.AreEqual(1, model.GetErrors(nameof(ValidationWithServiceModel.Name)).ToArray().Length); + Assert.HasCount(1, model.GetErrors(nameof(ValidationWithServiceModel.Name)).ToArray()); model.Name = "This is valid but it is too long so the validation will fail anyway"; Assert.IsTrue(model.HasErrors); - Assert.AreEqual(2, events.Count); + Assert.HasCount(2, events); Assert.AreEqual(nameof(ValidationWithServiceModel.Name), events[1].PropertyName); - Assert.AreEqual(1, model.GetErrors(nameof(ValidationWithServiceModel.Name)).ToArray().Length); + Assert.HasCount(1, model.GetErrors(nameof(ValidationWithServiceModel.Name)).ToArray()); model.Name = "This is both too long and it also contains invalid characters, a real disaster!"; Assert.IsTrue(model.HasErrors); - Assert.AreEqual(3, events.Count); + Assert.HasCount(3, events); Assert.AreEqual(nameof(ValidationWithServiceModel.Name), events[2].PropertyName); - Assert.AreEqual(2, model.GetErrors(nameof(ValidationWithServiceModel.Name)).ToArray().Length); + Assert.HasCount(2, model.GetErrors(nameof(ValidationWithServiceModel.Name)).ToArray()); } [TestMethod] @@ -472,7 +472,7 @@ public void Test_ObservableValidator_ValidationWithFormattedDisplayName() // We need to order because there is no guaranteed order on the members of a type ValidationResult[] allErrors = model.GetErrors().OrderBy(error => error.ErrorMessage).ToArray(); - Assert.AreEqual(2, allErrors.Length); + Assert.HasCount(2, allErrors); Assert.AreEqual(1, allErrors[0].MemberNames.Count()); Assert.AreEqual(nameof(ValidationWithDisplayName.StringMayNotBeEmpty), allErrors[0].MemberNames.Single()); @@ -554,7 +554,7 @@ public void Test_ObservableValidator_WithGenericTypeParameters() ValidationResult[] errors = model.GetErrors(nameof(model.Value)).ToArray(); Assert.IsNotNull(errors); - Assert.AreEqual(1, errors.Length); + Assert.HasCount(1, errors); CollectionAssert.AreEqual(errors[0].MemberNames.ToArray(), new[] { nameof(model.Value) }); @@ -577,7 +577,7 @@ public void Test_ObservableValidator_ValidateAllProperties_IncludeInheritedPrope model.ValidateAllProperties(); Assert.IsTrue(model.HasErrors); - Assert.IsTrue(events.Count == 2); + Assert.AreEqual(2, events.Count); Assert.IsTrue(events.Any(e => e.PropertyName == nameof(DerivedModelWithValidatableProperties.Name))); Assert.IsTrue(events.Any(e => e.PropertyName == nameof(DerivedModelWithValidatableProperties.Number))); @@ -589,7 +589,7 @@ public void Test_ObservableValidator_ValidateAllProperties_IncludeInheritedPrope model.ValidateAllProperties(); Assert.IsTrue(model.HasErrors); - Assert.IsTrue(events.Count == 2); + Assert.AreEqual(2, events.Count); Assert.IsTrue(events.Any(e => e.PropertyName == nameof(DerivedModelWithValidatableProperties.Name))); Assert.IsTrue(events.Any(e => e.PropertyName == nameof(DerivedModelWithValidatableProperties.Number))); @@ -605,7 +605,7 @@ public void Test_ObservableValidator_ValidateAllProperties_IncludeInheritedPrope model.ValidateAllProperties(); Assert.IsFalse(model.HasErrors); - Assert.IsTrue(events.Count == 1); + Assert.AreEqual(1, events.Count); Assert.IsTrue(events.Any(e => e.PropertyName == nameof(DerivedModelWithValidatableProperties.Name))); } diff --git a/tests/CommunityToolkit.Mvvm.UnitTests/Test_RelayCommandAttribute.cs b/tests/CommunityToolkit.Mvvm.UnitTests/Test_RelayCommandAttribute.cs index bc567c1d..b927a490 100644 --- a/tests/CommunityToolkit.Mvvm.UnitTests/Test_RelayCommandAttribute.cs +++ b/tests/CommunityToolkit.Mvvm.UnitTests/Test_RelayCommandAttribute.cs @@ -81,7 +81,7 @@ public async Task Test_RelayCommandAttribute_RelayCommand() await Task.WhenAll(tasks); - Assert.AreEqual(1, tasks.Count); + Assert.HasCount(1, tasks); // Only the first item should have been added CollectionAssert.AreEqual(model.Values, new[] { 0 }); @@ -100,7 +100,7 @@ public async Task Test_RelayCommandAttribute_RelayCommand() await Task.WhenAll(tasks); - Assert.AreEqual(10, tasks.Count); + Assert.HasCount(10, tasks); CollectionAssert.AreEqual(model.Values, Enumerable.Range(0, 10).ToArray()); @@ -115,7 +115,7 @@ public async Task Test_RelayCommandAttribute_RelayCommand() } } - Assert.AreEqual(1, tasks.Count); + Assert.HasCount(1, tasks); // Same as above, only the first one is added CollectionAssert.AreEqual(model.Values, new[] { 0 }); @@ -129,7 +129,7 @@ public async Task Test_RelayCommandAttribute_RelayCommand() tasks.Add(model.AddValueToListAndDelayWithDefaultConcurrencyAsync_WithCancelCommandCommand.ExecuteAsync(i)); } - Assert.AreEqual(10, tasks.Count); + Assert.HasCount(10, tasks); CollectionAssert.AreEqual(model.Values, Enumerable.Range(0, 10).ToArray()); } @@ -602,14 +602,14 @@ static void ValidateTestAttribute(TestValidationAttribute testAttribute) Assert.IsNotNull(testAttribute); Assert.IsNull(testAttribute.O); Assert.AreEqual(typeof(MyViewModelWithExplicitFieldAndPropertyAttributes), testAttribute.T); - Assert.AreEqual(true, testAttribute.Flag); + Assert.IsTrue(testAttribute.Flag); Assert.AreEqual(6.28, testAttribute.D); CollectionAssert.AreEqual(testAttribute.Names, new[] { "Bob", "Ross" }); object[]? nestedArray = (object[]?)testAttribute.NestedArray; Assert.IsNotNull(nestedArray); - Assert.AreEqual(3, nestedArray!.Length); + Assert.HasCount(3, nestedArray); Assert.AreEqual(1, nestedArray[0]); Assert.AreEqual("Hello", nestedArray[1]); Assert.IsTrue(nestedArray[2] is int[]); @@ -639,18 +639,18 @@ static void ValidateTestAttribute(TestValidationAttribute testAttribute) Assert.IsNotNull(testAttribute2); Assert.IsNull(testAttribute2.O); Assert.AreEqual(typeof(MyViewModelWithExplicitFieldAndPropertyAttributes), testAttribute2.T); - Assert.AreEqual(true, testAttribute2.Flag); + Assert.IsTrue(testAttribute2.Flag); Assert.AreEqual(6.28, testAttribute2.D); Assert.IsNotNull(testAttribute2.Objects); Assert.IsTrue(testAttribute2.Objects is object[]); - Assert.AreEqual(1, ((object[])testAttribute2.Objects).Length); + Assert.HasCount(1, (object[])testAttribute2.Objects); Assert.AreEqual("Test", ((object[])testAttribute2.Objects)[0]); CollectionAssert.AreEqual(testAttribute2.Names, new[] { "Bob", "Ross" }); object[]? nestedArray2 = (object[]?)testAttribute2.NestedArray; Assert.IsNotNull(nestedArray2); - Assert.AreEqual(4, nestedArray2!.Length); + Assert.HasCount(4, nestedArray2); Assert.AreEqual(1, nestedArray2[0]); Assert.AreEqual("Hello", nestedArray2[1]); Assert.AreEqual(42, nestedArray2[2]); diff --git a/tests/CommunityToolkit.Mvvm.UnitTests/Test_RelayCommand{T}.cs b/tests/CommunityToolkit.Mvvm.UnitTests/Test_RelayCommand{T}.cs index d5531f04..63ae8451 100644 --- a/tests/CommunityToolkit.Mvvm.UnitTests/Test_RelayCommand{T}.cs +++ b/tests/CommunityToolkit.Mvvm.UnitTests/Test_RelayCommand{T}.cs @@ -43,7 +43,7 @@ public void Test_RelayCommandOfT_AlwaysEnabled() command.Execute(null); - Assert.AreEqual(null, text); + Assert.IsNull(text); } [TestMethod] From d8d3d07c88a512424bd2a03257e6b883388c868a Mon Sep 17 00:00:00 2001 From: Sergio Pedri Date: Sun, 9 Nov 2025 18:36:55 -0800 Subject: [PATCH 4/9] Cast stream.Position to int in Assert.HasCount calls Updated all usages of Assert.HasCount to explicitly cast stream.Position to int. This ensures type consistency and prevents potential issues when stream.Position is a long. --- .../Streams/Test_MemoryStream.cs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/tests/CommunityToolkit.HighPerformance.UnitTests/Streams/Test_MemoryStream.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Streams/Test_MemoryStream.cs index 7790da07..be9ce0de 100644 --- a/tests/CommunityToolkit.HighPerformance.UnitTests/Streams/Test_MemoryStream.cs +++ b/tests/CommunityToolkit.HighPerformance.UnitTests/Streams/Test_MemoryStream.cs @@ -91,20 +91,20 @@ public void Test_MemoryStream_WriteToEndAndRefreshPosition() Assert.AreEqual(stream.Position, i + 1); } - Assert.HasCount(stream.Position, array); + Assert.HasCount((int)stream.Position, array); // These should not throw, seeking to the end is valid stream.Position = stream.Position; - Assert.HasCount(stream.Position, array); + Assert.HasCount((int)stream.Position, array); _ = stream.Seek(array.Length, SeekOrigin.Begin); - Assert.HasCount(stream.Position, array); + Assert.HasCount((int)stream.Position, array); _ = stream.Seek(0, SeekOrigin.Current); - Assert.HasCount(stream.Position, array); + Assert.HasCount((int)stream.Position, array); _ = stream.Seek(0, SeekOrigin.End); - Assert.HasCount(stream.Position, array); + Assert.HasCount((int)stream.Position, array); } [TestMethod] @@ -116,7 +116,7 @@ public void Test_MemoryStream_ReadWrite_Array() stream.Write(data, 0, data.Length); - Assert.HasCount(stream.Position, data); + Assert.HasCount((int)stream.Position, data); stream.Position = 0; @@ -125,7 +125,7 @@ public void Test_MemoryStream_ReadWrite_Array() int bytesRead = stream.Read(result, 0, result.Length); Assert.HasCount(bytesRead, result); - Assert.HasCount(stream.Position, data); + Assert.HasCount((int)stream.Position, data); Assert.IsTrue(data.AsSpan().SequenceEqual(result)); _ = Assert.ThrowsExactly(() => stream.Write(null!, 0, 10)); @@ -148,7 +148,7 @@ public async Task Test_MemoryStream_ReadWriteAsync_Array() await stream.WriteAsync(data, 0, data.Length); - Assert.HasCount(stream.Position, data); + Assert.HasCount((int)stream.Position, data); stream.Position = 0; @@ -157,7 +157,7 @@ public async Task Test_MemoryStream_ReadWriteAsync_Array() int bytesRead = await stream.ReadAsync(result, 0, result.Length); Assert.HasCount(bytesRead, result); - Assert.HasCount(stream.Position, data); + Assert.HasCount((int)stream.Position, data); Assert.IsTrue(data.AsSpan().SequenceEqual(result)); _ = await Assert.ThrowsExactlyAsync(() => stream.WriteAsync(null!, 0, 10)); From 4cc23d45682ba362a079573dd47705908349f900 Mon Sep 17 00:00:00 2001 From: Sergio Pedri Date: Sun, 9 Nov 2025 18:37:22 -0800 Subject: [PATCH 5/9] Replace Assert.AreEqual with Assert.HasCount in tests Updated unit tests in Test_ObservableValidator.cs to use Assert.HasCount instead of Assert.AreEqual for collection count assertions. This improves clarity and consistency in test assertions. --- .../Test_ObservableValidator.cs | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservableValidator.cs b/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservableValidator.cs index cf41bb72..949ccbc3 100644 --- a/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservableValidator.cs +++ b/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservableValidator.cs @@ -195,14 +195,14 @@ public void Test_ObservableValidator_TrySetProperty() // Errors should now be present Assert.IsTrue(model.HasErrors); - Assert.AreEqual(1, events.Count); + Assert.HasCount(1, events); Assert.IsTrue(model.GetErrors(nameof(Person.Name)).Any()); Assert.IsTrue(model.HasErrors); // Trying to set a correct property should clear the errors Assert.IsTrue(model.TrySetName("This is fine", out errors)); Assert.IsEmpty(errors); - Assert.AreEqual(2, events.Count); + Assert.HasCount(2, events); Assert.IsFalse(model.HasErrors); Assert.AreEqual("This is fine", model.Name); } @@ -276,7 +276,7 @@ public void Test_ObservableValidator_ClearErrors() model.ClearErrors(nameof(Person.Age)); Assert.IsFalse(model.HasErrors); - Assert.AreEqual(2, events.Count); + Assert.HasCount(2, events); model.Age = 200; model.Name = "Bo"; @@ -290,7 +290,7 @@ public void Test_ObservableValidator_ClearErrors() Assert.IsFalse(model.HasErrors); Assert.IsFalse(model.GetErrors(nameof(Person.Age)).Any()); Assert.IsFalse(model.GetErrors(nameof(Person.Name)).Any()); - Assert.AreEqual(2, events.Count); + Assert.HasCount(2, events); Assert.AreEqual(nameof(Person.Age), events[0].PropertyName); Assert.AreEqual(nameof(Person.Name), events[1].PropertyName); } @@ -306,7 +306,7 @@ public void Test_ObservableValidator_ValidateAllProperties() model.ValidateAllProperties(); Assert.IsTrue(model.HasErrors); - Assert.AreEqual(2, events.Count); + Assert.HasCount(2, events); // Note: we can't use an index here because the order used to return properties // from reflection APIs is an implementation detail and might change at any time. @@ -321,7 +321,7 @@ public void Test_ObservableValidator_ValidateAllProperties() model.ValidateAllProperties(); Assert.IsFalse(model.HasErrors); - Assert.AreEqual(2, events.Count); + Assert.HasCount(2, events); Assert.IsTrue(events.Any(e => e.PropertyName == nameof(Person.Name))); Assert.IsTrue(events.Any(e => e.PropertyName == nameof(Person.Age))); @@ -332,7 +332,7 @@ public void Test_ObservableValidator_ValidateAllProperties() model.ValidateAllProperties(); Assert.IsTrue(model.HasErrors); - Assert.AreEqual(1, events.Count); + Assert.HasCount(1, events); Assert.IsTrue(events.Any(e => e.PropertyName == nameof(Person.Age))); } @@ -352,7 +352,7 @@ public void Test_ObservableValidator_ValidateAllProperties_WithFallback() validationAction(model); Assert.IsTrue(model.HasErrors); - Assert.AreEqual(2, events.Count); + Assert.HasCount(2, events); // Note: we can't use an index here because the order used to return properties // from reflection APIs is an implementation detail and might change at any time. @@ -367,7 +367,7 @@ public void Test_ObservableValidator_ValidateAllProperties_WithFallback() validationAction(model); Assert.IsFalse(model.HasErrors); - Assert.AreEqual(2, events.Count); + Assert.HasCount(2, events); Assert.IsTrue(events.Any(e => e.PropertyName == nameof(Person.Name))); Assert.IsTrue(events.Any(e => e.PropertyName == nameof(Person.Age))); @@ -378,7 +378,7 @@ public void Test_ObservableValidator_ValidateAllProperties_WithFallback() validationAction(model); Assert.IsTrue(model.HasErrors); - Assert.AreEqual(1, events.Count); + Assert.HasCount(1, events); Assert.IsTrue(events.Any(e => e.PropertyName == nameof(Person.Age))); } @@ -394,7 +394,7 @@ public void Test_ObservableValidator_ValidateAllProperties_WithinPartialClassDec model.ValidateAllProperties(); Assert.IsTrue(model.HasErrors); - Assert.AreEqual(2, events.Count); + Assert.HasCount(2, events); Assert.IsTrue(events.Any(e => e.PropertyName == nameof(PersonWithPartialDeclaration.Name))); Assert.IsTrue(events.Any(e => e.PropertyName == nameof(PersonWithPartialDeclaration.Number))); @@ -407,7 +407,7 @@ public void Test_ObservableValidator_ValidateAllProperties_WithinPartialClassDec model.ValidateAllProperties(); Assert.IsFalse(model.HasErrors); - Assert.AreEqual(2, events.Count); + Assert.HasCount(2, events); Assert.IsTrue(events.Any(e => e.PropertyName == nameof(PersonWithPartialDeclaration.Name))); Assert.IsTrue(events.Any(e => e.PropertyName == nameof(PersonWithPartialDeclaration.Number))); } @@ -577,7 +577,7 @@ public void Test_ObservableValidator_ValidateAllProperties_IncludeInheritedPrope model.ValidateAllProperties(); Assert.IsTrue(model.HasErrors); - Assert.AreEqual(2, events.Count); + Assert.HasCount(2, events); Assert.IsTrue(events.Any(e => e.PropertyName == nameof(DerivedModelWithValidatableProperties.Name))); Assert.IsTrue(events.Any(e => e.PropertyName == nameof(DerivedModelWithValidatableProperties.Number))); @@ -589,7 +589,7 @@ public void Test_ObservableValidator_ValidateAllProperties_IncludeInheritedPrope model.ValidateAllProperties(); Assert.IsTrue(model.HasErrors); - Assert.AreEqual(2, events.Count); + Assert.HasCount(2, events); Assert.IsTrue(events.Any(e => e.PropertyName == nameof(DerivedModelWithValidatableProperties.Name))); Assert.IsTrue(events.Any(e => e.PropertyName == nameof(DerivedModelWithValidatableProperties.Number))); @@ -605,7 +605,7 @@ public void Test_ObservableValidator_ValidateAllProperties_IncludeInheritedPrope model.ValidateAllProperties(); Assert.IsFalse(model.HasErrors); - Assert.AreEqual(1, events.Count); + Assert.HasCount(1, events); Assert.IsTrue(events.Any(e => e.PropertyName == nameof(DerivedModelWithValidatableProperties.Name))); } From c75df26eeab4d647bd6161442b30229eec567173 Mon Sep 17 00:00:00 2001 From: Sergio Pedri Date: Sun, 9 Nov 2025 18:37:55 -0800 Subject: [PATCH 6/9] Assign Assert results to discard in unit test Updated assertions in Test_RelayCommandAttribute_WithPartialCommandMethodDefinitions to assign results to the discard variable, improving code clarity and suppressing possible warnings about unused return values. --- .../Test_RelayCommandAttribute.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/CommunityToolkit.Mvvm.UnitTests/Test_RelayCommandAttribute.cs b/tests/CommunityToolkit.Mvvm.UnitTests/Test_RelayCommandAttribute.cs index b927a490..24293805 100644 --- a/tests/CommunityToolkit.Mvvm.UnitTests/Test_RelayCommandAttribute.cs +++ b/tests/CommunityToolkit.Mvvm.UnitTests/Test_RelayCommandAttribute.cs @@ -665,10 +665,10 @@ public void Test_RelayCommandAttribute_WithPartialCommandMethodDefinitions() { ModelWithPartialCommandMethods model = new(); - Assert.IsInstanceOfType(model.FooCommand); - Assert.IsInstanceOfType>(model.BarCommand); - Assert.IsInstanceOfType(model.BazCommand); - Assert.IsInstanceOfType(model.FooBarCommand); + _ = Assert.IsInstanceOfType(model.FooCommand); + _ = Assert.IsInstanceOfType>(model.BarCommand); + _ = Assert.IsInstanceOfType(model.BazCommand); + _ = Assert.IsInstanceOfType(model.FooBarCommand); FieldInfo bazField = typeof(ModelWithPartialCommandMethods).GetField("bazCommand", BindingFlags.Instance | BindingFlags.NonPublic)!; From 8ef70099d8b94a4212e50fb075d122dbf39a31c6 Mon Sep 17 00:00:00 2001 From: Sergio Pedri Date: Sun, 9 Nov 2025 18:41:43 -0800 Subject: [PATCH 7/9] Refactor assertion in ObservableValidator test Replaces Assert.IsTrue(!...) with Assert.IsFalse(...) for clarity in the Test_ObservableValidator_ValidateReturn test. --- .../CommunityToolkit.Mvvm.UnitTests/Test_ObservableValidator.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservableValidator.cs b/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservableValidator.cs index 949ccbc3..559746e2 100644 --- a/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservableValidator.cs +++ b/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservableValidator.cs @@ -146,7 +146,7 @@ public void Test_ObservableValidator_ValidateReturn(string value, bool isValid) if (isValid) { - Assert.IsTrue(!model.GetErrors(nameof(Person.Name)).Any()); + Assert.IsFalse(model.GetErrors(nameof(Person.Name)).Any()); } else { From d2ceba9b1409f8835fa98abc0637c5de8eafe571 Mon Sep 17 00:00:00 2001 From: Sergio Pedri Date: Sun, 9 Nov 2025 18:46:37 -0800 Subject: [PATCH 8/9] Enable parallel test execution in MSTest projects Added the Microsoft.VisualStudio.TestTools.UnitTesting.ParallelizeAttribute to all MSTest-based unit test project files to enable parallel test execution. This change should improve test run performance by allowing tests to run concurrently. --- .../CommunityToolkit.Common.UnitTests.csproj | 4 ++++ .../CommunityToolkit.Diagnostics.UnitTests.csproj | 4 ++++ .../CommunityToolkit.HighPerformance.UnitTests.csproj | 4 ++++ ...olkit.Mvvm.DisableINotifyPropertyChanging.UnitTests.csproj | 4 ++++ .../CommunityToolkit.Mvvm.Internals.UnitTests.csproj | 4 ++++ .../CommunityToolkit.Mvvm.Roslyn4001.UnitTests.csproj | 4 ++++ .../CommunityToolkit.Mvvm.Roslyn4031.UnitTests.csproj | 4 ++++ .../CommunityToolkit.Mvvm.Roslyn4120.UnitTests.csproj | 4 ++++ ...yToolkit.Mvvm.SourceGenerators.Roslyn4001.UnitTests.csproj | 4 ++++ ...yToolkit.Mvvm.SourceGenerators.Roslyn4031.UnitTests.csproj | 4 ++++ ...yToolkit.Mvvm.SourceGenerators.Roslyn4120.UnitTests.csproj | 4 ++++ 11 files changed, 44 insertions(+) diff --git a/tests/CommunityToolkit.Common.UnitTests/CommunityToolkit.Common.UnitTests.csproj b/tests/CommunityToolkit.Common.UnitTests/CommunityToolkit.Common.UnitTests.csproj index 5e782c0b..1ef4d570 100644 --- a/tests/CommunityToolkit.Common.UnitTests/CommunityToolkit.Common.UnitTests.csproj +++ b/tests/CommunityToolkit.Common.UnitTests/CommunityToolkit.Common.UnitTests.csproj @@ -10,6 +10,10 @@ + + + + diff --git a/tests/CommunityToolkit.Diagnostics.UnitTests/CommunityToolkit.Diagnostics.UnitTests.csproj b/tests/CommunityToolkit.Diagnostics.UnitTests/CommunityToolkit.Diagnostics.UnitTests.csproj index 9b9a7d83..b9dd89e8 100644 --- a/tests/CommunityToolkit.Diagnostics.UnitTests/CommunityToolkit.Diagnostics.UnitTests.csproj +++ b/tests/CommunityToolkit.Diagnostics.UnitTests/CommunityToolkit.Diagnostics.UnitTests.csproj @@ -10,6 +10,10 @@ + + + + diff --git a/tests/CommunityToolkit.HighPerformance.UnitTests/CommunityToolkit.HighPerformance.UnitTests.csproj b/tests/CommunityToolkit.HighPerformance.UnitTests/CommunityToolkit.HighPerformance.UnitTests.csproj index a4fc36d6..8a663b55 100644 --- a/tests/CommunityToolkit.HighPerformance.UnitTests/CommunityToolkit.HighPerformance.UnitTests.csproj +++ b/tests/CommunityToolkit.HighPerformance.UnitTests/CommunityToolkit.HighPerformance.UnitTests.csproj @@ -10,6 +10,10 @@ + + + + diff --git a/tests/CommunityToolkit.Mvvm.DisableINotifyPropertyChanging.UnitTests/CommunityToolkit.Mvvm.DisableINotifyPropertyChanging.UnitTests.csproj b/tests/CommunityToolkit.Mvvm.DisableINotifyPropertyChanging.UnitTests/CommunityToolkit.Mvvm.DisableINotifyPropertyChanging.UnitTests.csproj index e2db37d2..baf721ac 100644 --- a/tests/CommunityToolkit.Mvvm.DisableINotifyPropertyChanging.UnitTests/CommunityToolkit.Mvvm.DisableINotifyPropertyChanging.UnitTests.csproj +++ b/tests/CommunityToolkit.Mvvm.DisableINotifyPropertyChanging.UnitTests/CommunityToolkit.Mvvm.DisableINotifyPropertyChanging.UnitTests.csproj @@ -10,6 +10,10 @@ + + + + diff --git a/tests/CommunityToolkit.Mvvm.Internals.UnitTests/CommunityToolkit.Mvvm.Internals.UnitTests.csproj b/tests/CommunityToolkit.Mvvm.Internals.UnitTests/CommunityToolkit.Mvvm.Internals.UnitTests.csproj index f801d27a..52bad96c 100644 --- a/tests/CommunityToolkit.Mvvm.Internals.UnitTests/CommunityToolkit.Mvvm.Internals.UnitTests.csproj +++ b/tests/CommunityToolkit.Mvvm.Internals.UnitTests/CommunityToolkit.Mvvm.Internals.UnitTests.csproj @@ -10,6 +10,10 @@ + + + + diff --git a/tests/CommunityToolkit.Mvvm.Roslyn4001.UnitTests/CommunityToolkit.Mvvm.Roslyn4001.UnitTests.csproj b/tests/CommunityToolkit.Mvvm.Roslyn4001.UnitTests/CommunityToolkit.Mvvm.Roslyn4001.UnitTests.csproj index 25ca3023..7f3968ba 100644 --- a/tests/CommunityToolkit.Mvvm.Roslyn4001.UnitTests/CommunityToolkit.Mvvm.Roslyn4001.UnitTests.csproj +++ b/tests/CommunityToolkit.Mvvm.Roslyn4001.UnitTests/CommunityToolkit.Mvvm.Roslyn4001.UnitTests.csproj @@ -14,6 +14,10 @@ + + + + diff --git a/tests/CommunityToolkit.Mvvm.Roslyn4031.UnitTests/CommunityToolkit.Mvvm.Roslyn4031.UnitTests.csproj b/tests/CommunityToolkit.Mvvm.Roslyn4031.UnitTests/CommunityToolkit.Mvvm.Roslyn4031.UnitTests.csproj index be4c167e..bb3b18dc 100644 --- a/tests/CommunityToolkit.Mvvm.Roslyn4031.UnitTests/CommunityToolkit.Mvvm.Roslyn4031.UnitTests.csproj +++ b/tests/CommunityToolkit.Mvvm.Roslyn4031.UnitTests/CommunityToolkit.Mvvm.Roslyn4031.UnitTests.csproj @@ -14,6 +14,10 @@ + + + + diff --git a/tests/CommunityToolkit.Mvvm.Roslyn4120.UnitTests/CommunityToolkit.Mvvm.Roslyn4120.UnitTests.csproj b/tests/CommunityToolkit.Mvvm.Roslyn4120.UnitTests/CommunityToolkit.Mvvm.Roslyn4120.UnitTests.csproj index 3e20e320..79166fa1 100644 --- a/tests/CommunityToolkit.Mvvm.Roslyn4120.UnitTests/CommunityToolkit.Mvvm.Roslyn4120.UnitTests.csproj +++ b/tests/CommunityToolkit.Mvvm.Roslyn4120.UnitTests/CommunityToolkit.Mvvm.Roslyn4120.UnitTests.csproj @@ -19,6 +19,10 @@ + + + + diff --git a/tests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4001.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4001.UnitTests.csproj b/tests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4001.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4001.UnitTests.csproj index ba721a87..c1e10d68 100644 --- a/tests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4001.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4001.UnitTests.csproj +++ b/tests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4001.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4001.UnitTests.csproj @@ -13,6 +13,10 @@ + + + + diff --git a/tests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4031.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4031.UnitTests.csproj b/tests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4031.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4031.UnitTests.csproj index 6fda8dbf..1f3dfa98 100644 --- a/tests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4031.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4031.UnitTests.csproj +++ b/tests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4031.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4031.UnitTests.csproj @@ -18,6 +18,10 @@ + + + + diff --git a/tests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4120.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4120.UnitTests.csproj b/tests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4120.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4120.UnitTests.csproj index ce510886..2de04342 100644 --- a/tests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4120.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4120.UnitTests.csproj +++ b/tests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4120.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4120.UnitTests.csproj @@ -14,6 +14,10 @@ + + + + From 6e83642f07e6debead5d5dcfb45f8e0059c9bf33 Mon Sep 17 00:00:00 2001 From: Sergio Pedri Date: Sun, 9 Nov 2025 18:48:08 -0800 Subject: [PATCH 9/9] Enable parallel test execution via shared target Moved the ParallelizeAttribute configuration from individual test project files to the shared Community.Toolkit.Common.targets file. This centralizes the configuration and ensures all test projects run tests in parallel by default. --- build/Community.Toolkit.Common.targets | 5 +++++ .../CommunityToolkit.Common.UnitTests.csproj | 4 ---- .../CommunityToolkit.Diagnostics.UnitTests.csproj | 4 ---- .../CommunityToolkit.HighPerformance.UnitTests.csproj | 4 ---- ...lkit.Mvvm.DisableINotifyPropertyChanging.UnitTests.csproj | 4 ---- .../CommunityToolkit.Mvvm.Internals.UnitTests.csproj | 4 ---- .../CommunityToolkit.Mvvm.Roslyn4001.UnitTests.csproj | 4 ---- .../CommunityToolkit.Mvvm.Roslyn4031.UnitTests.csproj | 4 ---- .../CommunityToolkit.Mvvm.Roslyn4120.UnitTests.csproj | 4 ---- ...Toolkit.Mvvm.SourceGenerators.Roslyn4001.UnitTests.csproj | 4 ---- ...Toolkit.Mvvm.SourceGenerators.Roslyn4031.UnitTests.csproj | 4 ---- ...Toolkit.Mvvm.SourceGenerators.Roslyn4120.UnitTests.csproj | 4 ---- 12 files changed, 5 insertions(+), 44 deletions(-) diff --git a/build/Community.Toolkit.Common.targets b/build/Community.Toolkit.Common.targets index e04f18d0..f16aa5ac 100644 --- a/build/Community.Toolkit.Common.targets +++ b/build/Community.Toolkit.Common.targets @@ -16,4 +16,9 @@ + + + + + \ No newline at end of file diff --git a/tests/CommunityToolkit.Common.UnitTests/CommunityToolkit.Common.UnitTests.csproj b/tests/CommunityToolkit.Common.UnitTests/CommunityToolkit.Common.UnitTests.csproj index 1ef4d570..5e782c0b 100644 --- a/tests/CommunityToolkit.Common.UnitTests/CommunityToolkit.Common.UnitTests.csproj +++ b/tests/CommunityToolkit.Common.UnitTests/CommunityToolkit.Common.UnitTests.csproj @@ -10,10 +10,6 @@ - - - - diff --git a/tests/CommunityToolkit.Diagnostics.UnitTests/CommunityToolkit.Diagnostics.UnitTests.csproj b/tests/CommunityToolkit.Diagnostics.UnitTests/CommunityToolkit.Diagnostics.UnitTests.csproj index b9dd89e8..9b9a7d83 100644 --- a/tests/CommunityToolkit.Diagnostics.UnitTests/CommunityToolkit.Diagnostics.UnitTests.csproj +++ b/tests/CommunityToolkit.Diagnostics.UnitTests/CommunityToolkit.Diagnostics.UnitTests.csproj @@ -10,10 +10,6 @@ - - - - diff --git a/tests/CommunityToolkit.HighPerformance.UnitTests/CommunityToolkit.HighPerformance.UnitTests.csproj b/tests/CommunityToolkit.HighPerformance.UnitTests/CommunityToolkit.HighPerformance.UnitTests.csproj index 8a663b55..a4fc36d6 100644 --- a/tests/CommunityToolkit.HighPerformance.UnitTests/CommunityToolkit.HighPerformance.UnitTests.csproj +++ b/tests/CommunityToolkit.HighPerformance.UnitTests/CommunityToolkit.HighPerformance.UnitTests.csproj @@ -10,10 +10,6 @@ - - - - diff --git a/tests/CommunityToolkit.Mvvm.DisableINotifyPropertyChanging.UnitTests/CommunityToolkit.Mvvm.DisableINotifyPropertyChanging.UnitTests.csproj b/tests/CommunityToolkit.Mvvm.DisableINotifyPropertyChanging.UnitTests/CommunityToolkit.Mvvm.DisableINotifyPropertyChanging.UnitTests.csproj index baf721ac..e2db37d2 100644 --- a/tests/CommunityToolkit.Mvvm.DisableINotifyPropertyChanging.UnitTests/CommunityToolkit.Mvvm.DisableINotifyPropertyChanging.UnitTests.csproj +++ b/tests/CommunityToolkit.Mvvm.DisableINotifyPropertyChanging.UnitTests/CommunityToolkit.Mvvm.DisableINotifyPropertyChanging.UnitTests.csproj @@ -10,10 +10,6 @@ - - - - diff --git a/tests/CommunityToolkit.Mvvm.Internals.UnitTests/CommunityToolkit.Mvvm.Internals.UnitTests.csproj b/tests/CommunityToolkit.Mvvm.Internals.UnitTests/CommunityToolkit.Mvvm.Internals.UnitTests.csproj index 52bad96c..f801d27a 100644 --- a/tests/CommunityToolkit.Mvvm.Internals.UnitTests/CommunityToolkit.Mvvm.Internals.UnitTests.csproj +++ b/tests/CommunityToolkit.Mvvm.Internals.UnitTests/CommunityToolkit.Mvvm.Internals.UnitTests.csproj @@ -10,10 +10,6 @@ - - - - diff --git a/tests/CommunityToolkit.Mvvm.Roslyn4001.UnitTests/CommunityToolkit.Mvvm.Roslyn4001.UnitTests.csproj b/tests/CommunityToolkit.Mvvm.Roslyn4001.UnitTests/CommunityToolkit.Mvvm.Roslyn4001.UnitTests.csproj index 7f3968ba..25ca3023 100644 --- a/tests/CommunityToolkit.Mvvm.Roslyn4001.UnitTests/CommunityToolkit.Mvvm.Roslyn4001.UnitTests.csproj +++ b/tests/CommunityToolkit.Mvvm.Roslyn4001.UnitTests/CommunityToolkit.Mvvm.Roslyn4001.UnitTests.csproj @@ -14,10 +14,6 @@ - - - - diff --git a/tests/CommunityToolkit.Mvvm.Roslyn4031.UnitTests/CommunityToolkit.Mvvm.Roslyn4031.UnitTests.csproj b/tests/CommunityToolkit.Mvvm.Roslyn4031.UnitTests/CommunityToolkit.Mvvm.Roslyn4031.UnitTests.csproj index bb3b18dc..be4c167e 100644 --- a/tests/CommunityToolkit.Mvvm.Roslyn4031.UnitTests/CommunityToolkit.Mvvm.Roslyn4031.UnitTests.csproj +++ b/tests/CommunityToolkit.Mvvm.Roslyn4031.UnitTests/CommunityToolkit.Mvvm.Roslyn4031.UnitTests.csproj @@ -14,10 +14,6 @@ - - - - diff --git a/tests/CommunityToolkit.Mvvm.Roslyn4120.UnitTests/CommunityToolkit.Mvvm.Roslyn4120.UnitTests.csproj b/tests/CommunityToolkit.Mvvm.Roslyn4120.UnitTests/CommunityToolkit.Mvvm.Roslyn4120.UnitTests.csproj index 79166fa1..3e20e320 100644 --- a/tests/CommunityToolkit.Mvvm.Roslyn4120.UnitTests/CommunityToolkit.Mvvm.Roslyn4120.UnitTests.csproj +++ b/tests/CommunityToolkit.Mvvm.Roslyn4120.UnitTests/CommunityToolkit.Mvvm.Roslyn4120.UnitTests.csproj @@ -19,10 +19,6 @@ - - - - diff --git a/tests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4001.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4001.UnitTests.csproj b/tests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4001.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4001.UnitTests.csproj index c1e10d68..ba721a87 100644 --- a/tests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4001.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4001.UnitTests.csproj +++ b/tests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4001.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4001.UnitTests.csproj @@ -13,10 +13,6 @@ - - - - diff --git a/tests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4031.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4031.UnitTests.csproj b/tests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4031.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4031.UnitTests.csproj index 1f3dfa98..6fda8dbf 100644 --- a/tests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4031.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4031.UnitTests.csproj +++ b/tests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4031.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4031.UnitTests.csproj @@ -18,10 +18,6 @@ - - - - diff --git a/tests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4120.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4120.UnitTests.csproj b/tests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4120.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4120.UnitTests.csproj index 2de04342..ce510886 100644 --- a/tests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4120.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4120.UnitTests.csproj +++ b/tests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4120.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4120.UnitTests.csproj @@ -14,10 +14,6 @@ - - - -