diff --git a/tests/FixedPointNano.Tests/FixedPointNano.Tests.csproj b/tests/FixedPointNano.Tests/FixedPointNano.Tests.csproj index b4f0081..5f90314 100644 --- a/tests/FixedPointNano.Tests/FixedPointNano.Tests.csproj +++ b/tests/FixedPointNano.Tests/FixedPointNano.Tests.csproj @@ -11,7 +11,6 @@ all - diff --git a/tests/FixedPointNano.Tests/FixedPointNanoTests.cs b/tests/FixedPointNano.Tests/FixedPointNanoTests.cs index 2795000..7ca3d00 100644 --- a/tests/FixedPointNano.Tests/FixedPointNanoTests.cs +++ b/tests/FixedPointNano.Tests/FixedPointNanoTests.cs @@ -1,7 +1,6 @@ using System; using System.Globalization; using System.Numerics; -using Moq; using Seerstone; namespace Seerstone.Tests; @@ -231,18 +230,17 @@ public void ToStringAndTryFormatShouldUseProvidedFormatProvider() numberFormat.NumberDecimalSeparator = "_"; numberFormat.NumberGroupSeparator = " "; - var provider = new Mock(MockBehavior.Strict); - provider.Setup(x => x.GetFormat(typeof(NumberFormatInfo))).Returns(numberFormat); + var provider = new TrackingFormatProvider(numberFormat); var value = FixedPointNano.FromDecimal(1234.5m); Span buffer = stackalloc char[32]; - Assert.That(value.ToString(provider.Object), Is.EqualTo("1234_5")); - Assert.That(value.ToString("N2", provider.Object), Is.EqualTo("1 234_50")); - Assert.That(value.TryFormat(buffer, out var charsWritten, "F3", provider.Object), Is.True); + Assert.That(value.ToString(provider), Is.EqualTo("1234_5")); + Assert.That(value.ToString("N2", provider), Is.EqualTo("1 234_50")); + Assert.That(value.TryFormat(buffer, out var charsWritten, "F3", provider), Is.True); Assert.That(new string(buffer[..charsWritten]), Is.EqualTo("1234_500")); - provider.Verify(x => x.GetFormat(typeof(NumberFormatInfo)), Times.AtLeastOnce); + Assert.That(provider.GetFormatCallCount, Is.GreaterThan(0)); } [Test] @@ -432,6 +430,24 @@ public void Dispose() } } + private sealed class TrackingFormatProvider : IFormatProvider + { + private readonly NumberFormatInfo _numberFormat; + + public int GetFormatCallCount { get; private set; } + + public TrackingFormatProvider(NumberFormatInfo numberFormat) + { + _numberFormat = numberFormat; + } + + public object? GetFormat(Type? formatType) + { + GetFormatCallCount++; + return formatType == typeof(NumberFormatInfo) ? _numberFormat : null; + } + } + [Test] public void UnaryPlusOperatorShouldReturnSameValue() {