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]