using VendingMachine.Application.Services; namespace VendingMachine.Tests; /// /// 内存版 Redis 存储,用于集成测试 /// public class InMemoryRedisStore : IRedisStore { private readonly Dictionary _store = new(); public Task SetAsync(string key, string value, TimeSpan expiry) { _store[key] = (value, DateTime.UtcNow.Add(expiry)); return Task.CompletedTask; } public Task GetAsync(string key) { if (_store.TryGetValue(key, out var entry)) { // 检查是否过期 if (entry.ExpiresAt.HasValue && DateTime.UtcNow > entry.ExpiresAt.Value) { _store.Remove(key); return Task.FromResult(null); } return Task.FromResult(entry.Value); } return Task.FromResult(null); } public Task DeleteAsync(string key) { return Task.FromResult(_store.Remove(key)); } }