Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Tharga.Cache.Tests/FetchDataThrottleTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ public async Task ManyParallelCallsAreQueued(int fetchCount, int maxConcurrentFe
monitorGetEventCount.Should().Be(fetchCount);
monitorDropEventCount.Should().Be(0);
stopwatch.Elapsed.TotalMilliseconds.Should().BeGreaterThan(minTime);
stopwatch.Elapsed.TotalMilliseconds.Should().BeLessThan(maxTime + 200);
stopwatch.Elapsed.TotalMilliseconds.Should().BeLessThan(maxTime + 400);
}

[Theory]
Expand Down
9 changes: 5 additions & 4 deletions Tharga.Cache.Tests/InvalidateTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,13 @@ public async Task GetAfterInvalidate(Type type, EvictionPolicy? evictionPolicy,
var item = await sut.GetAsync("Key", () => Task.FromResult(value));

//Assert
_dataSetEventCount.Should().Be(staleWhileRevalidate ? 0 : 1);
// With staleWhileRevalidate, background refresh may or may not complete before assertions
_dataSetEventCount.Should().BeInRange(staleWhileRevalidate ? 0 : 1, 1);
_dataGetEventCount.Should().Be(1);
_dataDropEventCount.Should().Be(staleWhileRevalidate ? 0 : 1);
_monitorSetEventCount.Should().Be(staleWhileRevalidate ? 0 : 1);
_dataDropEventCount.Should().BeInRange(staleWhileRevalidate ? 0 : 1, 1);
_monitorSetEventCount.Should().BeInRange(staleWhileRevalidate ? 0 : 1, 1);
_monitorGetEventCount.Should().Be(1);
_monitorDropEventCount.Should().Be(staleWhileRevalidate ? 0 : 1);
_monitorDropEventCount.Should().BeInRange(staleWhileRevalidate ? 0 : 1, 1);
item.Should().Be(value);
result.Monitor.GetInfos().SelectMany(x => x.Items).Sum(x => x.Value.Size).Should().BeGreaterThan(0);
}
Expand Down
14 changes: 7 additions & 7 deletions Tharga.Cache.Tests/TimeToIdleCacheTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -40,13 +40,13 @@ public async Task KeepIfUsed(bool keep)
_cacheMonitor.DataDropEvent += (_, _) => { monitorDropEventCount++; };

//Act
_ = await sut.GetAsync("a", () => Task.FromResult("a1"), TimeSpan.FromMilliseconds(200));
await Task.Delay(100);
_ = await sut.GetAsync("a", () => Task.FromResult("a2"), TimeSpan.FromMilliseconds(200));
await Task.Delay(100);
if (keep) _ = await sut.GetAsync("a", () => Task.FromResult("a3"), TimeSpan.FromMilliseconds(200));
await Task.Delay(100);
var result = await sut.GetAsync("a", () => Task.FromResult("a4"), TimeSpan.FromMilliseconds(200));
_ = await sut.GetAsync("a", () => Task.FromResult("a1"), TimeSpan.FromMilliseconds(400));
await Task.Delay(200);
_ = await sut.GetAsync("a", () => Task.FromResult("a2"), TimeSpan.FromMilliseconds(400));
await Task.Delay(200);
if (keep) _ = await sut.GetAsync("a", () => Task.FromResult("a3"), TimeSpan.FromMilliseconds(400));
await Task.Delay(250);
var result = await sut.GetAsync("a", () => Task.FromResult("a4"), TimeSpan.FromMilliseconds(400));

//Assert
result.Should().Be(keep ? "a1" : "a4");
Expand Down
14 changes: 7 additions & 7 deletions Tharga.Cache.Tests/TimeToLiveCacheTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -40,13 +40,13 @@ public async Task DropEvenIfUsed(bool keep)
_cacheMonitor.DataDropEvent += (_, _) => { monitorDropEventCount++; };

//Act
_ = await sut.GetAsync("a", () => Task.FromResult("a1"), TimeSpan.FromMilliseconds(200));
await Task.Delay(100);
_ = await sut.GetAsync("a", () => Task.FromResult("a2"), TimeSpan.FromMilliseconds(200));
await Task.Delay(100);
if (keep) _ = await sut.GetAsync("a", () => Task.FromResult("a3"), TimeSpan.FromMilliseconds(200));
await Task.Delay(100);
var result = await sut.GetAsync("a", () => Task.FromResult("a4"), TimeSpan.FromMilliseconds(200));
_ = await sut.GetAsync("a", () => Task.FromResult("a1"), TimeSpan.FromMilliseconds(400));
await Task.Delay(200);
_ = await sut.GetAsync("a", () => Task.FromResult("a2"), TimeSpan.FromMilliseconds(400));
await Task.Delay(200);
if (keep) _ = await sut.GetAsync("a", () => Task.FromResult("a3"), TimeSpan.FromMilliseconds(400));
await Task.Delay(250);
var result = await sut.GetAsync("a", () => Task.FromResult("a4"), TimeSpan.FromMilliseconds(400));

//Assert
result.Should().Be(keep ? "a3" : "a4");
Expand Down
Loading