Kavita/API.Tests/FakeHybridCacheWithTracking.cs
Joe Milazzo 9f29fa593d
Progress Overhaul + Profile Page and a LOT more! (#4262)
Co-authored-by: Amelia <77553571+Fesaa@users.noreply.github.com>
Co-authored-by: Robbie Davis <robbie@therobbiedavis.com>
2025-12-09 10:00:11 -07:00

37 lines
1.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.Caching.Hybrid;
namespace API.Tests;
public class FakeHybridCacheWithTracking : FakeHybridCache
{
public IList<(string Key, object State, CancellationToken CancellationToken)> GetOrCreateAsyncCalls { get; } = [];
public IList<(string Key, CancellationToken CancellationToken)> SetAsyncCalls { get; } = [];
public override async ValueTask<T> GetOrCreateAsync<TState, T>(
string key,
TState state,
Func<TState, CancellationToken, ValueTask<T>> factory,
HybridCacheEntryOptions? options = null,
IEnumerable<string>? tags = null,
CancellationToken cancellationToken = default)
{
GetOrCreateAsyncCalls.Add((key, state!, cancellationToken));
return await base.GetOrCreateAsync(key, state, factory, options, tags, cancellationToken);
}
public override ValueTask SetAsync<T>(
string key,
T value,
HybridCacheEntryOptions? options = null,
IEnumerable<string>? tags = null,
CancellationToken cancellationToken = default)
{
SetAsyncCalls.Add((key, cancellationToken));
return base.SetAsync(key, value, options, tags, cancellationToken);
}
}