Skip to content

Commit e0f8323

Browse files
committed
refactor: change ClockAdvanceAmount to UtcNowAdvanceAmount
1 parent b87c3c5 commit e0f8323

File tree

6 files changed

+18
-18
lines changed

6 files changed

+18
-18
lines changed

CHANGELOG.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1717

1818
Overriding `CreateManualTimer` makes it possible to intercept a `TimerCallback` and perform actions before and after the timer callback has been invoked.
1919

20-
- Replace `AutoAdvanceAmount` property with the `AutoAdvanceBehavior` property on `ManualTimeProvider`, and introduced the `AutoAdvanceBehavior` type.
20+
- Replace `AutoAdvanceAmount` property with the `AutoAdvanceBehavior` property on `ManualTimeProvider`, and introduced the `AutoAdvanceBehavior` type. To automatically advance time when `GetUtcNow()` or `GetLocalNow()` is called, set `AutoAdvanceBehavior.UtcNowAdvanceAmount` to a time span larger than zero.
2121

22-
- Enable auto advance feature for `GetTimestamp()` and `GetElapsedTime(long)`.
22+
- Enable auto advance feature for `GetTimestamp()` and `GetElapsedTime(long)`. To automatically advance time when `GetTimestamp()` or `GetElapsedTime(long)` is called, set `AutoAdvanceBehavior.TimestampAdvanceAmount` to a time span larger than zero.
2323

2424
## [1.0.0-rc.1]
2525

src/TimeProviderExtensions/AutoAdvanceBehavior.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public sealed record class AutoAdvanceBehavior
1818
/// Set to <see cref="TimeSpan.Zero"/> to disable auto advance. The default value is <see cref="TimeSpan.Zero"/>.
1919
/// </remarks>
2020
/// <exception cref="ArgumentOutOfRangeException">Thrown when set to a value less than <see cref="TimeSpan.Zero"/>.</exception>
21-
public TimeSpan ClockAdvanceAmount { get => clockAdvanceAmount; set { ThrowIfLessThanZero(value); clockAdvanceAmount = value; } }
21+
public TimeSpan UtcNowAdvanceAmount { get => clockAdvanceAmount; set { ThrowIfLessThanZero(value); clockAdvanceAmount = value; } }
2222

2323
/// <summary>
2424
/// Gets or sets the amount of time by which time advances whenever the a timestamp is read via <see cref="TimeProvider.GetTimestamp"/>

src/TimeProviderExtensions/ManualTimeProvider.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -124,8 +124,8 @@ public override long GetTimestamp()
124124
/// all according to this <see cref="ManualTimeProvider"/>'s notion of time.
125125
/// </summary>
126126
/// <remarks>
127-
/// If <see cref="AutoAdvanceBehavior.ClockAdvanceAmount"/> is greater than <see cref="TimeSpan.Zero"/>, calling this
128-
/// method will move time forward by the amount specified by <see cref="AutoAdvanceBehavior.ClockAdvanceAmount"/>.
127+
/// If <see cref="AutoAdvanceBehavior.UtcNowAdvanceAmount"/> is greater than <see cref="TimeSpan.Zero"/>, calling this
128+
/// method will move time forward by the amount specified by <see cref="AutoAdvanceBehavior.UtcNowAdvanceAmount"/>.
129129
/// The <see cref="DateTimeOffset"/> returned from this method will reflect the time before
130130
/// the auto advance was applied, if any.
131131
/// </remarks>
@@ -136,7 +136,7 @@ public override DateTimeOffset GetUtcNow()
136136
lock (callbacks)
137137
{
138138
result = utcNow;
139-
Advance(AutoAdvanceBehavior.ClockAdvanceAmount);
139+
Advance(AutoAdvanceBehavior.UtcNowAdvanceAmount);
140140
}
141141

142142
return result;
@@ -248,7 +248,7 @@ public void SetLocalTimeZone(TimeZoneInfo localTimeZone)
248248
/// <em>3 seconds</em>, <em>3 seconds</em>, and <em>3 seconds</em>, use <see cref="Jump(DateTimeOffset)"/> or <see cref="Jump(TimeSpan)"/> instead.
249249
/// </para>
250250
/// <para>
251-
/// Learn more about this behavior at <seealso href="https://github.com/egil/TimeProviderExtensions/#difference-between-manualtimeprovider-and-faketimeprovider"/>.
251+
/// Learn more about this behavior at <see href="https://github.com/egil/TimeProviderExtensions/#difference-between-manualtimeprovider-and-faketimeprovider"/>.
252252
/// </para>
253253
/// </remarks>
254254
/// <exception cref="ArgumentOutOfRangeException">Thrown if <paramref name="delta"/> is negative. Going back in time is not supported.</exception>
@@ -306,7 +306,7 @@ public void Advance(TimeSpan delta)
306306
/// <em>3 seconds</em>, <em>3 seconds</em>, and <em>3 seconds</em>, use <see cref="Jump(DateTimeOffset)"/> or <see cref="Jump(TimeSpan)"/> instead.
307307
/// </para>
308308
/// <para>
309-
/// Learn more about this behavior at <seealso href="https://github.com/egil/TimeProviderExtensions/#difference-between-manualtimeprovider-and-faketimeprovider"/>.
309+
/// Learn more about this behavior at <see href="https://github.com/egil/TimeProviderExtensions/#difference-between-manualtimeprovider-and-faketimeprovider"/>.
310310
/// </para>
311311
/// </remarks>
312312
/// <exception cref="ArgumentOutOfRangeException">Thrown if <paramref name="value"/> is less than the value returned by <see cref="GetUtcNow()"/>. Going back in time is not supported.</exception>
@@ -389,7 +389,7 @@ public void SetUtcNow(DateTimeOffset value)
389389
/// use <see cref="Advance(TimeSpan)"/> or <see cref="SetUtcNow(DateTimeOffset)"/> instead.
390390
/// </para>
391391
/// <para>
392-
/// Learn more about this behavior at <seealso href="https://github.com/egil/TimeProviderExtensions/#difference-between-manualtimeprovider-and-faketimeprovider"/>.
392+
/// Learn more about this behavior at <see href="https://github.com/egil/TimeProviderExtensions/#difference-between-manualtimeprovider-and-faketimeprovider"/>.
393393
/// </para>
394394
/// </remarks>
395395
/// <exception cref="ArgumentOutOfRangeException">Thrown if <paramref name="delta"/> is negative. Going back in time is not supported.</exception>
@@ -446,7 +446,7 @@ public void Jump(TimeSpan delta)
446446
/// use <see cref="Advance(TimeSpan)"/> or <see cref="SetUtcNow(DateTimeOffset)"/> instead.
447447
/// </para>
448448
/// <para>
449-
/// Learn more about this behavior at <seealso href="https://github.com/egil/TimeProviderExtensions/#difference-between-manualtimeprovider-and-faketimeprovider"/>.
449+
/// Learn more about this behavior at <see href="https://github.com/egil/TimeProviderExtensions/#difference-between-manualtimeprovider-and-faketimeprovider"/>.
450450
/// </para>
451451
/// </remarks>
452452
/// <exception cref="ArgumentOutOfRangeException">Thrown if <paramref name="value"/> is less than the value returned by <see cref="GetUtcNow()"/>. Going back in time is not supported.</exception>

test/TimeProviderExtensions.Tests/AutoAdvanceBehaviorTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ public void ClockAdvanceAmount_throws_when_lt_zero()
77
{
88
var sut = new AutoAdvanceBehavior();
99

10-
var throws = () => sut.ClockAdvanceAmount = TimeSpan.FromTicks(-1);
10+
var throws = () => sut.UtcNowAdvanceAmount = TimeSpan.FromTicks(-1);
1111

1212
throws.Should().Throw<ArgumentOutOfRangeException>()
13-
.And.ParamName.Should().Be(nameof(AutoAdvanceBehavior.ClockAdvanceAmount));
13+
.And.ParamName.Should().Be(nameof(AutoAdvanceBehavior.UtcNowAdvanceAmount));
1414
}
1515

1616
[Fact]

test/TimeProviderExtensions.Tests/ManualTimeProviderTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ async Task AsyncCallbacks(PeriodicTimer periodicTimer)
150150
public void Timer_callback_GetUtcNow_AutoAdvance()
151151
{
152152
var oneSecond = TimeSpan.FromSeconds(1);
153-
var sut = new ManualTimeProvider() { AutoAdvanceBehavior = { ClockAdvanceAmount = oneSecond } };
153+
var sut = new ManualTimeProvider() { AutoAdvanceBehavior = { UtcNowAdvanceAmount = oneSecond } };
154154

155155
using var t1 = sut.CreateTimer(_ =>
156156
{
@@ -163,7 +163,7 @@ public void Timer_callback_GetUtcNow_AutoAdvance()
163163
[Fact]
164164
public void GetUtcNow_with_ClockAdvanceAmount_gt_zero()
165165
{
166-
var sut = new ManualTimeProvider() { AutoAdvanceBehavior = { ClockAdvanceAmount = 1.Seconds() } };
166+
var sut = new ManualTimeProvider() { AutoAdvanceBehavior = { UtcNowAdvanceAmount = 1.Seconds() } };
167167

168168
var result = sut.GetUtcNow();
169169

@@ -174,7 +174,7 @@ public void GetUtcNow_with_ClockAdvanceAmount_gt_zero()
174174
[Fact]
175175
public void GetLocalNow_with_ClockAdvanceAmount_gt_zero()
176176
{
177-
var sut = new ManualTimeProvider() { AutoAdvanceBehavior = { ClockAdvanceAmount = 1.Seconds() } };
177+
var sut = new ManualTimeProvider() { AutoAdvanceBehavior = { UtcNowAdvanceAmount = 1.Seconds() } };
178178

179179
var result = sut.GetLocalNow();
180180

test/TimeProviderExtensions.Tests/Microsoft.Extensions.Time.Testing.Test/FakeTimeProviderTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,7 @@ public async Task WaitAsync_Cancel()
306306
[Fact]
307307
public void AutoAdvance()
308308
{
309-
var timeProvider = new FakeTimeProvider { AutoAdvanceBehavior = { ClockAdvanceAmount = TimeSpan.FromSeconds(1) } };
309+
var timeProvider = new FakeTimeProvider { AutoAdvanceBehavior = { UtcNowAdvanceAmount = TimeSpan.FromSeconds(1) } };
310310

311311
var first = timeProvider.GetUtcNow();
312312
var second = timeProvider.GetUtcNow();
@@ -330,11 +330,11 @@ public void ToString_AutoAdvance_off()
330330
[Fact]
331331
public void ToString_AutoAdvance_on()
332332
{
333-
var timeProvider = new FakeTimeProvider { AutoAdvanceBehavior = { ClockAdvanceAmount = TimeSpan.FromSeconds(1) } };
333+
var timeProvider = new FakeTimeProvider { AutoAdvanceBehavior = { UtcNowAdvanceAmount = TimeSpan.FromSeconds(1) } };
334334

335335
_ = timeProvider.ToString();
336336

337-
timeProvider.AutoAdvanceBehavior.ClockAdvanceAmount = TimeSpan.Zero;
337+
timeProvider.AutoAdvanceBehavior.UtcNowAdvanceAmount = TimeSpan.Zero;
338338
Assert.Equal(timeProvider.Start, timeProvider.GetUtcNow());
339339
}
340340
}

0 commit comments

Comments
 (0)