diff --git a/build/Community.Toolkit.Common.targets b/build/Community.Toolkit.Common.targets index e04f18d08..f16aa5aca 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 3899341d0..5e782c0b3 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.Common.UnitTests/Extensions/Test_TaskExtensions.cs b/tests/CommunityToolkit.Common.UnitTests/Extensions/Test_TaskExtensions.cs index 86d6ec2aa..740a75a9c 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] @@ -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] @@ -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/CommunityToolkit.Diagnostics.UnitTests.csproj b/tests/CommunityToolkit.Diagnostics.UnitTests/CommunityToolkit.Diagnostics.UnitTests.csproj index 97eca8abe..9b9a7d83e 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.Diagnostics.UnitTests/Extensions/Test_ValueTypeExtensions.cs b/tests/CommunityToolkit.Diagnostics.UnitTests/Extensions/Test_ValueTypeExtensions.cs index 972dfff33..d9c6855e0 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 7cbe156a9..4d4347d75 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; } @@ -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 7c4e40015..8126c834f 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.HasCount(expected, array); } [TestMethod] @@ -60,23 +60,23 @@ 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); Span span = writer.GetSpan(43); - Assert.IsTrue(span.Length >= 43); + Assert.IsGreaterThanOrEqualTo(43, span.Length); 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,25 +99,25 @@ public void Test_ArrayPoolBufferWriterOfT_AllocateFromCustomPoolAndGetMemoryAndS using (ArrayPoolBufferWriter? writer = new(pool)) { - Assert.AreEqual(pool.RentedArrays.Count, 1); + Assert.HasCount(1, pool.RentedArrays); - 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); Span span = writer.GetSpan(43); - Assert.IsTrue(span.Length >= 43); + Assert.IsGreaterThanOrEqualTo(43, span.Length); 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.IsEmpty(pool.RentedArrays); } [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]; @@ -230,8 +230,8 @@ public void Test_ArrayPoolBufferWriterOfT_AllocateAndGetArray() ArraySegment segment = bufferWriter.DangerousGetArray(); Assert.IsNotNull(segment.Array); - Assert.IsTrue(segment.Array.Length >= bufferWriter.WrittenSpan.Length); - Assert.AreEqual(segment.Offset, 0); + Assert.IsGreaterThanOrEqualTo(bufferWriter.WrittenSpan.Length, segment.Array.Length); + 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 bc0eb6740..6f78ab823 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 f256557e5..91216120d 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(pool.RentedArrays.Count, 1); + 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(pool.RentedArrays.Count, 0); + Assert.IsEmpty(pool.RentedArrays); } [TestMethod] @@ -127,8 +127,8 @@ public void Test_MemoryOwnerOfT_AllocateAndGetArray() ArraySegment segment = buffer.DangerousGetArray(); Assert.IsNotNull(segment.Array); - Assert.IsTrue(segment.Array.Length >= buffer.Length); - Assert.AreEqual(segment.Offset, 0); + Assert.IsGreaterThanOrEqualTo(buffer.Length, segment.Array.Length); + Assert.AreEqual(0, segment.Offset); Assert.AreEqual(segment.Count, buffer.Length); MemoryOwner? second = buffer.Slice(10, 80); @@ -142,8 +142,8 @@ 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.IsGreaterThanOrEqualTo(second.Length, segment.Array.Length); + 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 3ba918805..a8ff3cb8b 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(pool.RentedArrays.Count, 1); + 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(pool.RentedArrays.Count, 0); + Assert.IsEmpty(pool.RentedArrays); } [TestMethod] @@ -86,8 +86,8 @@ 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.AreEqual(segment.Offset, 0); + 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 08a3715a8..c9140c49d 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/CommunityToolkit.HighPerformance.UnitTests.csproj b/tests/CommunityToolkit.HighPerformance.UnitTests/CommunityToolkit.HighPerformance.UnitTests.csproj index 6614792ac..a4fc36d66 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.HighPerformance.UnitTests/Extensions/Test_ArrayExtensions.2D.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Extensions/Test_ArrayExtensions.2D.cs index d6d5bf8e3..8a2102cdb 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 c31fe6817..14b0815fd 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_IMemoryOwnerExtensions.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Extensions/Test_IMemoryOwnerExtensions.cs index 42db952ca..d6673ae3b 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 849bde106..3e19995f7 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,8 +149,8 @@ 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(segment.Count, data.Length); + Assert.AreEqual(0, segment.Offset); + Assert.HasCount(segment.Count, data); 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.HasCount(128, segment); 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 346e801f9..e43417745 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 50b5d288a..8838e8bc6 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 3664d49c3..30580d08b 100644 --- a/tests/CommunityToolkit.HighPerformance.UnitTests/Extensions/Test_StreamExtensions.cs +++ b/tests/CommunityToolkit.HighPerformance.UnitTests/Extensions/Test_StreamExtensions.cs @@ -23,13 +23,13 @@ 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)); 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/Helpers/Test_BitHelper.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Helpers/Test_BitHelper.cs index 3df976c4e..25b8a52ee 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 924bdc6bb..89e344406 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 4c393c210..f9755a8a8 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 734377225..bf7d798fe 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 399556c2d..d1ed6cdad 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] @@ -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,8 +348,8 @@ public void Test_Memory2DT_TryGetMemory_2() bool success = memory2d.TryGetMemory(out Memory memory); Assert.IsTrue(success); - Assert.AreEqual(memory.Length, array.Length); - Assert.AreEqual(memory.Span[2], 3); + Assert.HasCount(memory.Length, array); + 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 d5cfd04be..0942e81e5 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] @@ -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,8 +312,8 @@ public void Test_ReadOnlyMemory2DT_TryGetReadOnlyMemory_2() bool success = memory2d.TryGetMemory(out ReadOnlyMemory memory); Assert.IsTrue(success); - Assert.AreEqual(memory.Length, array.Length); - Assert.AreEqual(memory.Span[2], 3); + Assert.HasCount(memory.Length, array); + 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 c46c78e51..97092c06a 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 89f5cc412..48d6832fc 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_IBufferWriterStream.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Streams/Test_IBufferWriterStream.cs index 978d64f1b..ae9d37a77 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_IMemoryOwnerStream.cs b/tests/CommunityToolkit.HighPerformance.UnitTests/Streams/Test_IMemoryOwnerStream.cs index e8d2674c7..bddfc13f0 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 6025c590c..18204fdec 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 f5fc501b1..be9ce0de0 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,24 +87,24 @@ 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); } - Assert.AreEqual(stream.Position, array.Length); + Assert.HasCount((int)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((int)stream.Position, array); _ = stream.Seek(array.Length, SeekOrigin.Begin); - Assert.AreEqual(stream.Position, array.Length); + Assert.HasCount((int)stream.Position, array); _ = stream.Seek(0, SeekOrigin.Current); - Assert.AreEqual(stream.Position, array.Length); + Assert.HasCount((int)stream.Position, array); _ = stream.Seek(0, SeekOrigin.End); - Assert.AreEqual(stream.Position, array.Length); + Assert.HasCount((int)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((int)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((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.AreEqual(stream.Position, data.Length); + Assert.HasCount((int)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((int)stream.Position, data); Assert.IsTrue(data.AsSpan().SequenceEqual(result)); _ = await Assert.ThrowsExactlyAsync(() => stream.WriteAsync(null!, 0, 10)); @@ -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 3690b49fb..dec87e290 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] @@ -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)); @@ -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 222914fba..9a8a0fed4 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 a9fc450b6..a8ee161a4 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/CommunityToolkit.Mvvm.DisableINotifyPropertyChanging.UnitTests.csproj b/tests/CommunityToolkit.Mvvm.DisableINotifyPropertyChanging.UnitTests/CommunityToolkit.Mvvm.DisableINotifyPropertyChanging.UnitTests.csproj index dfd6f49bf..e2db37d24 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.DisableINotifyPropertyChanging.UnitTests/Test_DisableINotifyPropertyChanging.cs b/tests/CommunityToolkit.Mvvm.DisableINotifyPropertyChanging.UnitTests/Test_DisableINotifyPropertyChanging.cs index d2a215455..74d5c83e6 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/CommunityToolkit.Mvvm.Internals.UnitTests.csproj b/tests/CommunityToolkit.Mvvm.Internals.UnitTests/CommunityToolkit.Mvvm.Internals.UnitTests.csproj index cb840a906..f801d27a0 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.Internals.UnitTests/Test_Messenger.cs b/tests/CommunityToolkit.Mvvm.Internals.UnitTests/Test_Messenger.cs index 70f5408c2..bd8322dd8 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.Roslyn4001.UnitTests/CommunityToolkit.Mvvm.Roslyn4001.UnitTests.csproj b/tests/CommunityToolkit.Mvvm.Roslyn4001.UnitTests/CommunityToolkit.Mvvm.Roslyn4001.UnitTests.csproj index 0a0010d8c..25ca3023f 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 d5111588e..be4c167ea 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 3252a1f5a..3e20e320a 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.Roslyn4120.UnitTests/Test_ObservablePropertyAttribute_PartialProperties.cs b/tests/CommunityToolkit.Mvvm.Roslyn4120.UnitTests/Test_ObservablePropertyAttribute_PartialProperties.cs index ddeb5ebbf..fe1249a9c 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.IsNull(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.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(nestedArray!.Length, 3); - Assert.AreEqual(nestedArray[0], 1); - Assert.AreEqual(nestedArray[1], "Hello"); + Assert.HasCount(3, nestedArray); + 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.HasCount(1, errors); + 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.HasCount(2, errors); + 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.HasCount(1, errors); + 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.HasCount(2, errors); + 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.HasCount(1, errors); + 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.HasCount(2, errors); + 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.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(messages.Count, 0); + 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,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.IsTrue(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.HasCount(3, uiHintAttribute.ControlParameters); 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.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(nestedArray!.Length, 3); - Assert.AreEqual(nestedArray[0], 1); - Assert.AreEqual(nestedArray[1], "Hello"); + Assert.HasCount(3, nestedArray); + 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.IsTrue(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.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(nestedArray2!.Length, 4); - Assert.AreEqual(nestedArray2[0], 1); - Assert.AreEqual(nestedArray2[1], "Hello"); - Assert.AreEqual(nestedArray2[2], 42); + Assert.HasCount(4, nestedArray2); + 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.SourceGenerators.Roslyn4001.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4001.UnitTests.csproj b/tests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4001.UnitTests/CommunityToolkit.Mvvm.SourceGenerators.Roslyn4001.UnitTests.csproj index 00f117384..ba721a879 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 f570d3cab..6fda8dbf1 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 87225d036..ce5108861 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 @@ - - + + diff --git a/tests/CommunityToolkit.Mvvm.SourceGenerators.UnitTests/Test_SourceGeneratorsDiagnostics.cs b/tests/CommunityToolkit.Mvvm.SourceGenerators.UnitTests/Test_SourceGeneratorsDiagnostics.cs index f18ff7dfd..69da07125 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 947f14f14..a5e53b7f4 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.IsEmpty(group); } [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.IsEmpty(group); 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 fb2ad16aa..b106a824e 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.IsEmpty(groupCollection); } [TestMethod] @@ -31,12 +31,12 @@ public void Test_ObservableGroupedCollection_Ctor_WithGroups_ShouldHaveExpectedV }; ObservableGroupedCollection groupCollection = new(groups); - Assert.AreEqual(groupCollection.Count, 2); + Assert.HasCount(2, groupCollection); - 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 c76b91421..c0a5d81c1 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.HasCount(3, groupedCollection); - 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.HasCount(4, groupedCollection); - 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 }); } @@ -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,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.HasCount(1, groupedCollection); + 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.HasCount(1, groupedCollection); + 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.HasCount(2, groupedCollection); - 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.HasCount(2, groupedCollection); - 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.HasCount(2, groupedCollection); - 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.HasCount(2, groupedCollection); - 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.IsEmpty(groupedCollection[1]); } } } diff --git a/tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ReadOnlyObservableGroup.cs b/tests/CommunityToolkit.Mvvm.UnitTests/Collections/Test_ReadOnlyObservableGroup.cs index ed4334922..27a80ce32 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 3621c6b19..10e4260c5 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.IsEmpty(readOnlyGroup); 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.HasCount(2, readOnlyGroup); - 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.HasCount(2, readOnlyGroup); - 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.HasCount(2, list); 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.HasCount(expectedReadOnlyGroupCount, readOnlyGroup); 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.HasCount(3, readOnlyGroup); 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.HasCount(1, readOnlyGroup); - 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); @@ -312,9 +312,9 @@ public void Test_ReadOnlyObservableGroupedCollection_MoveGroupInSource_ShoudMove source.Move(oldIndex, newIndex); - Assert.AreEqual(groups.Count, readOnlyGroup.Count); + Assert.HasCount(groups.Count, readOnlyGroup); - 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.IsEmpty(readOnlyGroup); 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.HasCount(2, readOnlyGroup); - 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 addc9661b..bb69acbfa 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.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); + 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.HasCount(6, args); + Assert.AreEqual(nameof(IAsyncRelayCommand.CanBeCanceled), args[4].PropertyName); + Assert.AreEqual(nameof(IAsyncRelayCommand.IsCancellationRequested), args[5].PropertyName); Assert.IsTrue(command.IsCancellationRequested); @@ -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 df24b6aa6..4c105d538 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.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); + 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.HasCount(6, args); + Assert.AreEqual(nameof(IAsyncRelayCommand.CanBeCanceled), args[4].PropertyName); + Assert.AreEqual(nameof(IAsyncRelayCommand.IsCancellationRequested), args[5].PropertyName); Assert.IsTrue(command.IsCancellationRequested); @@ -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 d4992254e..9acc5be01 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.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(types.Length, 0); + Assert.IsEmpty(types); } [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.HasCount(2, eventArgs); + 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.HasCount(2, eventArgs); + 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.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 47a322200..ec0f02115 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.IsEmpty(results); 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.IsEmpty(results); GC.KeepAlive(recipient); } diff --git a/tests/CommunityToolkit.Mvvm.UnitTests/Test_Messenger.cs b/tests/CommunityToolkit.Mvvm.UnitTests/Test_Messenger.cs index f64bf3e94..1642a735b 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()) @@ -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_ObservableObject.cs b/tests/CommunityToolkit.Mvvm.UnitTests/Test_ObservableObject.cs index e5da66f5e..c73c412fa 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 78ed9320d..0d30c3d36 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 65ab55fe9..646058a7a 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.IsNull(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.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(nestedArray!.Length, 3); - Assert.AreEqual(nestedArray[0], 1); - Assert.AreEqual(nestedArray[1], "Hello"); + Assert.HasCount(3, nestedArray); + 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.HasCount(1, errors); + 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.HasCount(2, errors); + 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.HasCount(1, errors); + 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.HasCount(2, errors); + 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.HasCount(1, errors); + 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.HasCount(2, errors); + 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.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(messages.Count, 0); + 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,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.IsTrue(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.HasCount(3, uiHintAttribute.ControlParameters); 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.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(nestedArray!.Length, 3); - Assert.AreEqual(nestedArray[0], 1); - Assert.AreEqual(nestedArray[1], "Hello"); + Assert.HasCount(3, nestedArray); + 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.IsTrue(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.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(nestedArray2!.Length, 4); - Assert.AreEqual(nestedArray2[0], 1); - Assert.AreEqual(nestedArray2[1], "Hello"); - Assert.AreEqual(nestedArray2[2], 42); + Assert.HasCount(4, nestedArray2); + 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 9149ddcc9..28135603c 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 9e2ee3dd7..6c1f1538a 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.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(args.Count, 4); - Assert.AreEqual(args[2].PropertyName, nameof(Person.Name)); - Assert.AreEqual(args[3].PropertyName, nameof(INotifyDataErrorInfo.HasErrors)); + 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(typeof(Person).GetConstructors(BindingFlags.Instance | BindingFlags.NonPublic).Length, 0); + 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(ctors.Length, 2); + 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(ctors.Length, 2); + 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 7b09d1073..559746e2e 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.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(args.Count, 4); - Assert.AreEqual(args[2].PropertyName, nameof(Person.Name)); - Assert.AreEqual(args[3].PropertyName, nameof(INotifyDataErrorInfo.HasErrors)); + Assert.HasCount(4, args); + 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.HasCount(1, errors); 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.HasCount(1, errors); 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.HasCount(1, errors); 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.IsEmpty(errors); } [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.HasCount(1, errors); + 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.HasCount(1, errors); + 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.HasCount(1, errors); + Assert.AreEqual(nameof(Person.Name), errors[0].MemberNames.First()); model.Age = -1; errors = model.GetErrors(null).ToArray(); - Assert.AreEqual(errors.Length, 2); + 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(errors.Length, 1); + 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)))); } @@ -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 { @@ -164,30 +164,30 @@ 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.AreEqual(model.Name, "Hello"); + 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.AreEqual(model.Name, "Hello"); + 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.AreEqual(model.Name, "Hello"); + 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.AreEqual(model.Name, "Hello world"); + Assert.IsEmpty(errors); + Assert.IsEmpty(events); + Assert.AreEqual("Hello world", model.Name); Assert.IsFalse(model.HasErrors); // Actually set an invalid value to show some errors @@ -195,16 +195,16 @@ public void Test_ObservableValidator_TrySetProperty() // Errors should now be present Assert.IsTrue(model.HasErrors); - Assert.IsTrue(events.Count == 1); + 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.IsTrue(errors.Count == 0); - Assert.IsTrue(events.Count == 2); + Assert.IsEmpty(errors); + Assert.HasCount(2, events); 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.IsEmpty(events); 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.HasCount(1, events); + 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.HasCount(1, events); + 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.HasCount(1, events); + 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.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.HasCount(2, events); 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.HasCount(2, events); + 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.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.IsTrue(events.Count == 2); + 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.IsTrue(events.Count == 1); + 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.IsTrue(events.Count == 2); + 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.IsTrue(events.Count == 2); + 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.IsTrue(events.Count == 1); + 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.IsTrue(events.Count == 2); + 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.IsTrue(events.Count == 2); + Assert.HasCount(2, events); 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(events.Count, 0); + 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(events.Count, 0); + Assert.IsEmpty(events); 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.HasCount(1, events); + Assert.AreEqual(nameof(ValidationWithServiceModel.Name), events[0].PropertyName); + 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(events.Count, 2); - Assert.AreEqual(events[1].PropertyName, nameof(ValidationWithServiceModel.Name)); - Assert.AreEqual(model.GetErrors(nameof(ValidationWithServiceModel.Name)).ToArray().Length, 1); + Assert.HasCount(2, events); + Assert.AreEqual(nameof(ValidationWithServiceModel.Name), events[1].PropertyName); + 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(events.Count, 3); - Assert.AreEqual(events[2].PropertyName, nameof(ValidationWithServiceModel.Name)); - Assert.AreEqual(model.GetErrors(nameof(ValidationWithServiceModel.Name)).ToArray().Length, 2); + Assert.HasCount(3, events); + Assert.AreEqual(nameof(ValidationWithServiceModel.Name), events[2].PropertyName); + Assert.HasCount(2, model.GetErrors(nameof(ValidationWithServiceModel.Name)).ToArray()); } [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.HasCount(2, allErrors); - 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.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.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.IsTrue(events.Count == 2); + 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.IsTrue(events.Count == 1); + Assert.HasCount(1, events); Assert.IsTrue(events.Any(e => e.PropertyName == nameof(DerivedModelWithValidatableProperties.Name))); } @@ -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 f7c388699..d77a7f775 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 ecf4ff05d..24293805a 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(); @@ -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()); } @@ -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.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(nestedArray!.Length, 3); - Assert.AreEqual(nestedArray[0], 1); - Assert.AreEqual(nestedArray[1], "Hello"); + Assert.HasCount(3, nestedArray); + 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.IsTrue(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.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(nestedArray2!.Length, 4); - Assert.AreEqual(nestedArray2[0], 1); - Assert.AreEqual(nestedArray2[1], "Hello"); - Assert.AreEqual(nestedArray2[2], 42); + Assert.HasCount(4, nestedArray2); + 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 @@ -665,33 +665,33 @@ 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)!; 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 e4064bc40..63ae8451d 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.IsNull(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);