diff --git a/Directory.Packages.props b/Directory.Packages.props
index 02b16a9a7..88924194b 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -47,8 +47,8 @@
-
-
+
+
diff --git a/Pipeline/Build.cs b/Pipeline/Build.cs
index f5452a744..65bdc27a7 100644
--- a/Pipeline/Build.cs
+++ b/Pipeline/Build.cs
@@ -20,7 +20,7 @@ partial class Build : NukeBuild
///
/// Afterward, you can update the package reference in `Directory.Packages.props` and reset this flag.
///
- readonly BuildScope BuildScope = BuildScope.CoreOnly;
+ readonly BuildScope BuildScope = BuildScope.Default;
[Parameter("Configuration to build - Default is 'Debug' (local) or 'Release' (server)")]
readonly Configuration Configuration = IsLocalBuild ? Configuration.Debug : Configuration.Release;
diff --git a/Source/Testably.Abstractions.AccessControl/Testably.Abstractions.AccessControl.csproj b/Source/Testably.Abstractions.AccessControl/Testably.Abstractions.AccessControl.csproj
index 8e63c0dfc..3b82ecf6f 100644
--- a/Source/Testably.Abstractions.AccessControl/Testably.Abstractions.AccessControl.csproj
+++ b/Source/Testably.Abstractions.AccessControl/Testably.Abstractions.AccessControl.csproj
@@ -16,14 +16,10 @@
-
+
-
-
-
-
<_Parameter1>true
diff --git a/Source/Testably.Abstractions.Compression/Testably.Abstractions.Compression.csproj b/Source/Testably.Abstractions.Compression/Testably.Abstractions.Compression.csproj
index d39f6951b..a5c676a9f 100644
--- a/Source/Testably.Abstractions.Compression/Testably.Abstractions.Compression.csproj
+++ b/Source/Testably.Abstractions.Compression/Testably.Abstractions.Compression.csproj
@@ -12,14 +12,10 @@
Link="Docs\Compression.md" />
-
+
-
-
-
-
diff --git a/Source/Testably.Abstractions.Testing/Testably.Abstractions.Testing.csproj b/Source/Testably.Abstractions.Testing/Testably.Abstractions.Testing.csproj
index 78ab9aca9..1c3d8c96b 100644
--- a/Source/Testably.Abstractions.Testing/Testably.Abstractions.Testing.csproj
+++ b/Source/Testably.Abstractions.Testing/Testably.Abstractions.Testing.csproj
@@ -9,14 +9,10 @@
-
+
-
-
-
-
<_Parameter1>true
diff --git a/Source/Testably.Abstractions.Testing/TimeSystem/StopwatchFactoryMock.cs b/Source/Testably.Abstractions.Testing/TimeSystem/StopwatchFactoryMock.cs
index 78155c810..7f44af0fc 100644
--- a/Source/Testably.Abstractions.Testing/TimeSystem/StopwatchFactoryMock.cs
+++ b/Source/Testably.Abstractions.Testing/TimeSystem/StopwatchFactoryMock.cs
@@ -9,6 +9,7 @@ namespace Testably.Abstractions.Testing.TimeSystem;
internal sealed class StopwatchFactoryMock : IStopwatchFactory
{
private readonly MockTimeSystem _mockTimeSystem;
+ private readonly long _tickPeriod = 10;
internal StopwatchFactoryMock(MockTimeSystem timeSystem)
{
@@ -18,7 +19,7 @@ internal StopwatchFactoryMock(MockTimeSystem timeSystem)
#region IStopwatchFactory Members
///
- public long Frequency => TimeSpan.TicksPerSecond;
+ public long Frequency => TimeSpan.TicksPerSecond * _tickPeriod;
///
public bool IsHighResolution => true;
@@ -36,7 +37,7 @@ public TimeSpan GetElapsedTime(long startingTimestamp)
#if FEATURE_STOPWATCH_GETELAPSEDTIME
///
public TimeSpan GetElapsedTime(long startingTimestamp, long endingTimestamp)
- => TimeSpan.FromTicks(endingTimestamp - startingTimestamp);
+ => TimeSpan.FromTicks((endingTimestamp - startingTimestamp) / _tickPeriod);
#endif
///
@@ -46,7 +47,7 @@ public long GetTimestamp()
///
public IStopwatch New()
{
- StopwatchMock stopwatchMock = new(_mockTimeSystem);
+ StopwatchMock stopwatchMock = new(_mockTimeSystem, _tickPeriod);
return stopwatchMock;
}
diff --git a/Source/Testably.Abstractions.Testing/TimeSystem/StopwatchMock.cs b/Source/Testably.Abstractions.Testing/TimeSystem/StopwatchMock.cs
index f043d4b73..29909133d 100644
--- a/Source/Testably.Abstractions.Testing/TimeSystem/StopwatchMock.cs
+++ b/Source/Testably.Abstractions.Testing/TimeSystem/StopwatchMock.cs
@@ -8,21 +8,23 @@ internal sealed class StopwatchMock : IStopwatch
private long _elapsedTicks;
private readonly MockTimeSystem _mockTimeSystem;
private DateTime? _start;
+ private readonly long _tickPeriod;
- internal StopwatchMock(MockTimeSystem timeSystem)
+ internal StopwatchMock(MockTimeSystem timeSystem, long tickPeriod)
{
_mockTimeSystem = timeSystem;
+ _tickPeriod = tickPeriod;
}
#region IStopwatch Members
///
public TimeSpan Elapsed
- => new(ElapsedTicks);
+ => TimeSpan.FromTicks(ElapsedTicks / _tickPeriod);
///
public long ElapsedMilliseconds
- => ElapsedTicks / TimeSpan.TicksPerMillisecond;
+ => ElapsedTicks / _tickPeriod / TimeSpan.TicksPerMillisecond;
///
public long ElapsedTicks
@@ -34,7 +36,8 @@ public long ElapsedTicks
// If the Stopwatch is running, add elapsed time since the Stopwatch is started last time.
if (_start is not null)
{
- timeElapsed += (_mockTimeSystem.TimeProvider.Read() - _start.Value).Ticks;
+ timeElapsed += (_mockTimeSystem.TimeProvider.Read() - _start.Value).Ticks
+ * _tickPeriod;
}
return timeElapsed;
@@ -76,7 +79,8 @@ public void Stop()
{
if (_start.HasValue)
{
- _elapsedTicks += (_mockTimeSystem.TimeProvider.Read() - _start.Value).Ticks;
+ _elapsedTicks += (_mockTimeSystem.TimeProvider.Read() - _start.Value).Ticks *
+ _tickPeriod;
_start = null;
}
}
diff --git a/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_net10.0.txt b/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_net10.0.txt
index b95e0ef5e..8219bb8e5 100644
--- a/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_net10.0.txt
+++ b/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_net10.0.txt
@@ -104,6 +104,7 @@ namespace Testably.Abstractions.Testing
public MockTimeSystem(Testably.Abstractions.Testing.TimeSystem.ITimeProvider timeProvider) { }
public Testably.Abstractions.TimeSystem.IDateTime DateTime { get; }
public Testably.Abstractions.Testing.TimeSystem.INotificationHandler On { get; }
+ public Testably.Abstractions.TimeSystem.IStopwatchFactory Stopwatch { get; }
public Testably.Abstractions.TimeSystem.ITask Task { get; }
public Testably.Abstractions.TimeSystem.IThread Thread { get; }
public Testably.Abstractions.Testing.TimeSystem.ITimeProvider TimeProvider { get; }
diff --git a/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_net6.0.txt b/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_net6.0.txt
index 5fe7bb85e..e9819ffe9 100644
--- a/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_net6.0.txt
+++ b/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_net6.0.txt
@@ -103,6 +103,7 @@ namespace Testably.Abstractions.Testing
public MockTimeSystem(Testably.Abstractions.Testing.TimeSystem.ITimeProvider timeProvider) { }
public Testably.Abstractions.TimeSystem.IDateTime DateTime { get; }
public Testably.Abstractions.Testing.TimeSystem.INotificationHandler On { get; }
+ public Testably.Abstractions.TimeSystem.IStopwatchFactory Stopwatch { get; }
public Testably.Abstractions.TimeSystem.ITask Task { get; }
public Testably.Abstractions.TimeSystem.IThread Thread { get; }
public Testably.Abstractions.Testing.TimeSystem.ITimeProvider TimeProvider { get; }
diff --git a/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_net8.0.txt b/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_net8.0.txt
index e311aeb0c..a8ed98732 100644
--- a/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_net8.0.txt
+++ b/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_net8.0.txt
@@ -104,6 +104,7 @@ namespace Testably.Abstractions.Testing
public MockTimeSystem(Testably.Abstractions.Testing.TimeSystem.ITimeProvider timeProvider) { }
public Testably.Abstractions.TimeSystem.IDateTime DateTime { get; }
public Testably.Abstractions.Testing.TimeSystem.INotificationHandler On { get; }
+ public Testably.Abstractions.TimeSystem.IStopwatchFactory Stopwatch { get; }
public Testably.Abstractions.TimeSystem.ITask Task { get; }
public Testably.Abstractions.TimeSystem.IThread Thread { get; }
public Testably.Abstractions.Testing.TimeSystem.ITimeProvider TimeProvider { get; }
diff --git a/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_net9.0.txt b/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_net9.0.txt
index d57e60d7e..94c965e15 100644
--- a/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_net9.0.txt
+++ b/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_net9.0.txt
@@ -104,6 +104,7 @@ namespace Testably.Abstractions.Testing
public MockTimeSystem(Testably.Abstractions.Testing.TimeSystem.ITimeProvider timeProvider) { }
public Testably.Abstractions.TimeSystem.IDateTime DateTime { get; }
public Testably.Abstractions.Testing.TimeSystem.INotificationHandler On { get; }
+ public Testably.Abstractions.TimeSystem.IStopwatchFactory Stopwatch { get; }
public Testably.Abstractions.TimeSystem.ITask Task { get; }
public Testably.Abstractions.TimeSystem.IThread Thread { get; }
public Testably.Abstractions.Testing.TimeSystem.ITimeProvider TimeProvider { get; }
diff --git a/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_netstandard2.0.txt b/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_netstandard2.0.txt
index 87ad3515b..1a67f362d 100644
--- a/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_netstandard2.0.txt
+++ b/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_netstandard2.0.txt
@@ -98,6 +98,7 @@ namespace Testably.Abstractions.Testing
public MockTimeSystem(Testably.Abstractions.Testing.TimeSystem.ITimeProvider timeProvider) { }
public Testably.Abstractions.TimeSystem.IDateTime DateTime { get; }
public Testably.Abstractions.Testing.TimeSystem.INotificationHandler On { get; }
+ public Testably.Abstractions.TimeSystem.IStopwatchFactory Stopwatch { get; }
public Testably.Abstractions.TimeSystem.ITask Task { get; }
public Testably.Abstractions.TimeSystem.IThread Thread { get; }
public Testably.Abstractions.Testing.TimeSystem.ITimeProvider TimeProvider { get; }
diff --git a/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_netstandard2.1.txt b/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_netstandard2.1.txt
index 9bf2c0691..95c397d7f 100644
--- a/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_netstandard2.1.txt
+++ b/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions.Testing_netstandard2.1.txt
@@ -98,6 +98,7 @@ namespace Testably.Abstractions.Testing
public MockTimeSystem(Testably.Abstractions.Testing.TimeSystem.ITimeProvider timeProvider) { }
public Testably.Abstractions.TimeSystem.IDateTime DateTime { get; }
public Testably.Abstractions.Testing.TimeSystem.INotificationHandler On { get; }
+ public Testably.Abstractions.TimeSystem.IStopwatchFactory Stopwatch { get; }
public Testably.Abstractions.TimeSystem.ITask Task { get; }
public Testably.Abstractions.TimeSystem.IThread Thread { get; }
public Testably.Abstractions.Testing.TimeSystem.ITimeProvider TimeProvider { get; }
diff --git a/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions_net10.0.txt b/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions_net10.0.txt
index b6839ae06..61b9410e2 100644
--- a/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions_net10.0.txt
+++ b/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions_net10.0.txt
@@ -27,6 +27,7 @@ namespace Testably.Abstractions
{
public RealTimeSystem() { }
public Testably.Abstractions.TimeSystem.IDateTime DateTime { get; }
+ public Testably.Abstractions.TimeSystem.IStopwatchFactory Stopwatch { get; }
public Testably.Abstractions.TimeSystem.ITask Task { get; }
public Testably.Abstractions.TimeSystem.IThread Thread { get; }
public Testably.Abstractions.TimeSystem.ITimerFactory Timer { get; }
diff --git a/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions_net6.0.txt b/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions_net6.0.txt
index 515bf2131..d407ba63d 100644
--- a/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions_net6.0.txt
+++ b/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions_net6.0.txt
@@ -27,6 +27,7 @@ namespace Testably.Abstractions
{
public RealTimeSystem() { }
public Testably.Abstractions.TimeSystem.IDateTime DateTime { get; }
+ public Testably.Abstractions.TimeSystem.IStopwatchFactory Stopwatch { get; }
public Testably.Abstractions.TimeSystem.ITask Task { get; }
public Testably.Abstractions.TimeSystem.IThread Thread { get; }
public Testably.Abstractions.TimeSystem.ITimerFactory Timer { get; }
diff --git a/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions_net8.0.txt b/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions_net8.0.txt
index 52584784f..525e93476 100644
--- a/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions_net8.0.txt
+++ b/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions_net8.0.txt
@@ -27,6 +27,7 @@ namespace Testably.Abstractions
{
public RealTimeSystem() { }
public Testably.Abstractions.TimeSystem.IDateTime DateTime { get; }
+ public Testably.Abstractions.TimeSystem.IStopwatchFactory Stopwatch { get; }
public Testably.Abstractions.TimeSystem.ITask Task { get; }
public Testably.Abstractions.TimeSystem.IThread Thread { get; }
public Testably.Abstractions.TimeSystem.ITimerFactory Timer { get; }
diff --git a/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions_net9.0.txt b/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions_net9.0.txt
index a132b5397..3b58557cb 100644
--- a/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions_net9.0.txt
+++ b/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions_net9.0.txt
@@ -27,6 +27,7 @@ namespace Testably.Abstractions
{
public RealTimeSystem() { }
public Testably.Abstractions.TimeSystem.IDateTime DateTime { get; }
+ public Testably.Abstractions.TimeSystem.IStopwatchFactory Stopwatch { get; }
public Testably.Abstractions.TimeSystem.ITask Task { get; }
public Testably.Abstractions.TimeSystem.IThread Thread { get; }
public Testably.Abstractions.TimeSystem.ITimerFactory Timer { get; }
diff --git a/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions_netstandard2.0.txt b/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions_netstandard2.0.txt
index 21c0c5a62..54f67894e 100644
--- a/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions_netstandard2.0.txt
+++ b/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions_netstandard2.0.txt
@@ -27,6 +27,7 @@ namespace Testably.Abstractions
{
public RealTimeSystem() { }
public Testably.Abstractions.TimeSystem.IDateTime DateTime { get; }
+ public Testably.Abstractions.TimeSystem.IStopwatchFactory Stopwatch { get; }
public Testably.Abstractions.TimeSystem.ITask Task { get; }
public Testably.Abstractions.TimeSystem.IThread Thread { get; }
public Testably.Abstractions.TimeSystem.ITimerFactory Timer { get; }
diff --git a/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions_netstandard2.1.txt b/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions_netstandard2.1.txt
index 188ad4d20..9a2eac8ad 100644
--- a/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions_netstandard2.1.txt
+++ b/Tests/Api/Testably.Abstractions.Api.Tests/Expected/Testably.Abstractions_netstandard2.1.txt
@@ -27,6 +27,7 @@ namespace Testably.Abstractions
{
public RealTimeSystem() { }
public Testably.Abstractions.TimeSystem.IDateTime DateTime { get; }
+ public Testably.Abstractions.TimeSystem.IStopwatchFactory Stopwatch { get; }
public Testably.Abstractions.TimeSystem.ITask Task { get; }
public Testably.Abstractions.TimeSystem.IThread Thread { get; }
public Testably.Abstractions.TimeSystem.ITimerFactory Timer { get; }
diff --git a/Tests/Helpers/Testably.Abstractions.TestHelpers/Testably.Abstractions.TestHelpers.csproj b/Tests/Helpers/Testably.Abstractions.TestHelpers/Testably.Abstractions.TestHelpers.csproj
index 1aaeba546..5b12efed4 100644
--- a/Tests/Helpers/Testably.Abstractions.TestHelpers/Testably.Abstractions.TestHelpers.csproj
+++ b/Tests/Helpers/Testably.Abstractions.TestHelpers/Testably.Abstractions.TestHelpers.csproj
@@ -7,17 +7,10 @@
-
-
-
-
+
-
-
-
-
diff --git a/Tests/Testably.Abstractions.Parity.Tests/Testably.Abstractions.Parity.Tests.csproj b/Tests/Testably.Abstractions.Parity.Tests/Testably.Abstractions.Parity.Tests.csproj
index a38cf0b0d..6c3d3c8a7 100644
--- a/Tests/Testably.Abstractions.Parity.Tests/Testably.Abstractions.Parity.Tests.csproj
+++ b/Tests/Testably.Abstractions.Parity.Tests/Testably.Abstractions.Parity.Tests.csproj
@@ -2,14 +2,11 @@
+
-
-
-
-
diff --git a/Tests/Testably.Abstractions.Testing.Tests/Helpers/RandomSystemExtensionsTests.cs b/Tests/Testably.Abstractions.Testing.Tests/Helpers/RandomSystemExtensionsTests.cs
index 55fa61711..1eecebfcf 100644
--- a/Tests/Testably.Abstractions.Testing.Tests/Helpers/RandomSystemExtensionsTests.cs
+++ b/Tests/Testably.Abstractions.Testing.Tests/Helpers/RandomSystemExtensionsTests.cs
@@ -1,5 +1,4 @@
-using System;
-using System.Collections.Generic;
+using System.Collections.Generic;
using System.Linq;
using Testably.Abstractions.Testing.Helpers;
diff --git a/Tests/Testably.Abstractions.Testing.Tests/Testably.Abstractions.Testing.Tests.csproj b/Tests/Testably.Abstractions.Testing.Tests/Testably.Abstractions.Testing.Tests.csproj
index d0780630e..70b2b5912 100644
--- a/Tests/Testably.Abstractions.Testing.Tests/Testably.Abstractions.Testing.Tests.csproj
+++ b/Tests/Testably.Abstractions.Testing.Tests/Testably.Abstractions.Testing.Tests.csproj
@@ -13,19 +13,11 @@
+
-
-
-
-
-
-
-
-
-
True
diff --git a/Tests/Testably.Abstractions.Testing.Tests/TimeSystem/StopwatchMockTests.cs b/Tests/Testably.Abstractions.Testing.Tests/TimeSystem/StopwatchMockTests.cs
index 63c28b341..df76f68fc 100644
--- a/Tests/Testably.Abstractions.Testing.Tests/TimeSystem/StopwatchMockTests.cs
+++ b/Tests/Testably.Abstractions.Testing.Tests/TimeSystem/StopwatchMockTests.cs
@@ -8,7 +8,7 @@ public class StopwatchMockTests
[InlineData(0)]
[InlineData(1)]
[InlineData(15)]
- [InlineData(123456789000)]
+ [InlineData(1234567890)]
public async Task ShouldSupportTicksPrecision(long delayTicks)
{
MockTimeSystem timeSystem = new();
@@ -18,6 +18,7 @@ await timeSystem.Task.Delay(TimeSpan.FromTicks(delayTicks),
long elapsedTicks = stopwatch.ElapsedTicks;
- await That(elapsedTicks).IsEqualTo(delayTicks);
+ long actualStopwatchTicks = elapsedTicks * TimeSpan.TicksPerSecond / timeSystem.Stopwatch.Frequency;
+ await That(actualStopwatchTicks).IsEqualTo(delayTicks);
}
}
diff --git a/Tests/Testably.Abstractions.Tests/Testably.Abstractions.Tests.csproj b/Tests/Testably.Abstractions.Tests/Testably.Abstractions.Tests.csproj
index f5c5913fd..62b18b4d6 100644
--- a/Tests/Testably.Abstractions.Tests/Testably.Abstractions.Tests.csproj
+++ b/Tests/Testably.Abstractions.Tests/Testably.Abstractions.Tests.csproj
@@ -1,20 +1,12 @@
-
+
-
-
-
-
-
-
-
-
true
Generated
diff --git a/Tests/Testably.Abstractions.Tests/TimeSystem/StopwatchFactoryTests.cs b/Tests/Testably.Abstractions.Tests/TimeSystem/StopwatchFactoryTests.cs
index bb462ebe6..0c5c66e9c 100644
--- a/Tests/Testably.Abstractions.Tests/TimeSystem/StopwatchFactoryTests.cs
+++ b/Tests/Testably.Abstractions.Tests/TimeSystem/StopwatchFactoryTests.cs
@@ -1,9 +1,10 @@
using System.Diagnostics;
+using Testably.Abstractions.TimeSystem;
namespace Testably.Abstractions.Tests.TimeSystem;
[TimeSystemTests]
-public class StopwatchFactoryTests
+public partial class StopwatchFactoryTests
{
[Fact]
public async Task Frequency_ShouldReturnValueOfAtLeastTicksPerSecond()
@@ -18,22 +19,22 @@ public async Task Frequency_ShouldReturnValueOfAtLeastTicksPerSecond()
#if FEATURE_STOPWATCH_GETELAPSEDTIME
[Theory]
- [InlineData(50L, 80L, 30L)]
- [InlineData(80L, 50L, -30L)]
- [InlineData(40L, 40L, 0L)]
+ [InlineData(5000L, 8000L, 3000L)]
+ [InlineData(8000L, 5000L, -3000L)]
+ [InlineData(4000L, 4000L, 0L)]
public async Task GetElapsedTime_WithStartingAndEndingTimestamp_ShouldReturnValue(
long startingTimestamp, long endingTimestamp, long expectedTicks)
{
TimeSpan timestamp =
TimeSystem.Stopwatch.GetElapsedTime(startingTimestamp, endingTimestamp);
- await That(timestamp.Ticks).IsEqualTo(expectedTicks);
+ long actualStopwatchTicks = timestamp.Ticks * TimeSystem.Stopwatch.Frequency / TimeSpan.TicksPerSecond;
+ await That(actualStopwatchTicks).IsEqualTo(expectedTicks);
}
#endif
#if FEATURE_STOPWATCH_GETELAPSEDTIME
[Theory]
- [InlineData(10L)]
[InlineData(1000L)]
[InlineData(100000L)]
public async Task GetElapsedTime_WithStartingTimestamp_ShouldReturnValue(long expectedTicks)
@@ -43,7 +44,8 @@ public async Task GetElapsedTime_WithStartingTimestamp_ShouldReturnValue(long ex
TimeSpan timestamp =
TimeSystem.Stopwatch.GetElapsedTime(startingTimestamp);
- await That(timestamp.Ticks).IsGreaterThanOrEqualTo(expectedTicks);
+ long actualStopwatchTicks = timestamp.Ticks * TimeSystem.Stopwatch.Frequency / TimeSpan.TicksPerSecond;
+ await That(actualStopwatchTicks).IsGreaterThanOrEqualTo(expectedTicks);
}
#endif
diff --git a/Tests/Testably.Abstractions.Tests/TimeSystem/StopwatchTests.cs b/Tests/Testably.Abstractions.Tests/TimeSystem/StopwatchTests.cs
index 2a457ee1c..7addd0724 100644
--- a/Tests/Testably.Abstractions.Tests/TimeSystem/StopwatchTests.cs
+++ b/Tests/Testably.Abstractions.Tests/TimeSystem/StopwatchTests.cs
@@ -25,7 +25,8 @@ public async Task Elapsed_WhenRunning_ShouldIncreaseValue()
await TimeSystem.Task.Delay(delay, TestContext.Current.CancellationToken);
TimeSpan elapsedAfter = stopwatch.Elapsed;
- await That(elapsedAfter).IsGreaterThanOrEqualTo(elapsedBefore + delay);
+ await That(elapsedAfter).IsGreaterThanOrEqualTo(elapsedBefore + delay)
+ .Within(TimeSpan.FromMilliseconds(1));
}
[Fact]
@@ -54,7 +55,7 @@ public async Task ElapsedMilliseconds_ShouldBeEqualToElapsed()
TimeSpan elapsed = stopwatch.Elapsed;
long elapsedMilliseconds = stopwatch.ElapsedMilliseconds;
- await That(elapsedMilliseconds).IsEqualTo(elapsed.TotalMilliseconds);
+ await That(elapsedMilliseconds).IsEqualTo((long)elapsed.TotalMilliseconds).Within(1L);
}
[Fact]
@@ -68,7 +69,9 @@ public async Task ElapsedTicks_ShouldBeEqualToElapsed()
TimeSpan elapsed = stopwatch.Elapsed;
long elapsedTicks = stopwatch.ElapsedTicks;
- await That(elapsedTicks).IsEqualTo(elapsed.Ticks);
+ long elapsedTicksAsTimeSpanTicks =
+ elapsedTicks * TimeSpan.TicksPerSecond / TimeSystem.Stopwatch.Frequency;
+ await That(elapsedTicksAsTimeSpanTicks).IsEqualTo(elapsed.Ticks);
}
[Fact]