From c2e7f76272e3e18a881336f64cdee24fe62f3919 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Valentin=20Breu=C3=9F?= Date: Thu, 30 Apr 2026 21:56:19 +0200 Subject: [PATCH] coverage: add missing tests for `It.*` --- .../Mockolate.Tests/ItTests.IsNotNullTests.cs | 9 +++++++ Tests/Mockolate.Tests/ItTests.IsNullTests.cs | 9 +++++++ .../ItTests.SequenceEqualsTests.cs | 27 +++++++++++++++++++ 3 files changed, 45 insertions(+) diff --git a/Tests/Mockolate.Tests/ItTests.IsNotNullTests.cs b/Tests/Mockolate.Tests/ItTests.IsNotNullTests.cs index 55ace76a..c63fed6b 100644 --- a/Tests/Mockolate.Tests/ItTests.IsNotNullTests.cs +++ b/Tests/Mockolate.Tests/ItTests.IsNotNullTests.cs @@ -30,6 +30,15 @@ public async Task NotNull_ShouldMatchWhenNotNull(int? value, int expectedCount) await That(sut.Mock.Verify.DoSomething(It.IsNotNull(), It.Is(true))).Exactly(expectedCount); } + [Fact] + public async Task ShouldReturnSharedInstance_WhenToStringIsOmitted() + { + IParameter first = It.IsNotNull(); + IParameter second = It.IsNotNull(); + + await That(first).IsSameAs(second); + } + [Fact] public async Task ToString_ShouldReturnExpectedValue() { diff --git a/Tests/Mockolate.Tests/ItTests.IsNullTests.cs b/Tests/Mockolate.Tests/ItTests.IsNullTests.cs index 03e1a9f5..14402436 100644 --- a/Tests/Mockolate.Tests/ItTests.IsNullTests.cs +++ b/Tests/Mockolate.Tests/ItTests.IsNullTests.cs @@ -30,6 +30,15 @@ public async Task Null_ShouldMatchWhenNull(int? value, int expectedCount) await That(sut.Mock.Verify.DoSomething(null, It.Is(true))).Exactly(expectedCount); } + [Fact] + public async Task ShouldReturnSharedInstance_WhenToStringIsOmitted() + { + IParameter first = It.IsNull(); + IParameter second = It.IsNull(); + + await That(first).IsSameAs(second); + } + [Fact] public async Task ToString_ShouldReturnExpectedValue() { diff --git a/Tests/Mockolate.Tests/ItTests.SequenceEqualsTests.cs b/Tests/Mockolate.Tests/ItTests.SequenceEqualsTests.cs index c5e6eb73..dd93a30f 100644 --- a/Tests/Mockolate.Tests/ItTests.SequenceEqualsTests.cs +++ b/Tests/Mockolate.Tests/ItTests.SequenceEqualsTests.cs @@ -161,6 +161,17 @@ public async Task ToString_Using_ShouldReturnExpectedValue() await That(result).IsEqualTo(expectedValue); } + [Fact] + public async Task ToString_WithNullElement_ShouldRenderNullToken() + { + IParameter sut = It.SequenceEquals("foo", null, 3); + string expectedValue = "It.SequenceEquals(\"foo\", null, 3)"; + + string? result = sut.ToString(); + + await That(result).IsEqualTo(expectedValue); + } + [Fact] public async Task ToString_WithStringValues_ShouldReturnExpectedValue() { @@ -184,6 +195,22 @@ public async Task WithComparer_ShouldUseComparer() public sealed class DoTests { + [Fact] + public async Task Do_MultipleRegistrations_ShouldAllInvoke() + { + It.ISequenceEqualsParameter sut = It.SequenceEquals(1, 2, 3); + int firstCount = 0; + int secondCount = 0; + ((IParameterWithCallback)sut).Do(_ => firstCount++); + ((IParameterWithCallback)sut).Do(_ => secondCount++); + + int[] source = [1, 2, 3,]; + ((IParameterMatch)sut).InvokeCallbacks(source); + + await That(firstCount).IsEqualTo(1); + await That(secondCount).IsEqualTo(1); + } + [Fact] public async Task Do_RegistersCallbackForArray() {