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()
{