Skip to content

Commit f1a362e

Browse files
committed
[test] perf(tests): inject IScheduler into TimeTrackingComputer and rewrite tests with TestScheduler
1 parent 3b81bc6 commit f1a362e

2 files changed

Lines changed: 182 additions & 238 deletions

File tree

src/ByteSync.Client/Services/TimeTracking/TimeTrackingComputer.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using System.Reactive.Linq;
1+
using System.Reactive.Concurrency;
2+
using System.Reactive.Linq;
23
using System.Reactive.Subjects;
34
using ByteSync.Business.Misc;
45
using ByteSync.Interfaces.Controls.TimeTracking;
@@ -11,10 +12,12 @@ public class TimeTrackingComputer : ITimeTrackingComputer
1112
private readonly BehaviorSubject<bool> _isStarted;
1213

1314
private readonly IDataTrackingStrategy _dataTrackingStrategy;
15+
private readonly IScheduler _scheduler;
1416

15-
public TimeTrackingComputer(IDataTrackingStrategy dataTrackingStrategy)
17+
public TimeTrackingComputer(IDataTrackingStrategy dataTrackingStrategy, IScheduler? scheduler = null)
1618
{
1719
_dataTrackingStrategy = dataTrackingStrategy;
20+
_scheduler = scheduler ?? Scheduler.Default;
1821

1922
_timeTrack = new BehaviorSubject<TimeTrack>(new TimeTrack());
2023
_isStarted = new BehaviorSubject<bool>(false);
@@ -49,7 +52,7 @@ public IObservable<TimeTrack> RemainingTime
4952
{
5053
if (isStarted)
5154
{
52-
return Observable.Interval(TimeSpan.FromSeconds(1));
55+
return Observable.Interval(TimeSpan.FromSeconds(1), _scheduler);
5356
}
5457
else
5558
{

0 commit comments

Comments
 (0)