0
0
mirror of https://github.com/alex289/CleanArchitecture.git synced 2025-06-30 02:31:08 +00:00

feat: Reset redis keys too

This commit is contained in:
alex289 2024-04-25 20:12:46 +02:00
parent 4a8c102d00
commit 2d415d3f55
No known key found for this signature in database
GPG Key ID: 573F77CD2D87F863
2 changed files with 26 additions and 3 deletions

View File

@ -98,8 +98,11 @@ public sealed class CleanArchitectureWebApplicationFactory : WebApplicationFacto
public async Task RespawnDatabaseAsync()
{
var accessor = DatabaseAccessor.GetOrCreateAsync(_instanceDatabaseName);
await accessor.RespawnDatabaseAsync();
var dbAccessor = DatabaseAccessor.GetOrCreateAsync(_instanceDatabaseName);
await dbAccessor.RespawnDatabaseAsync();
var redisAccessor = RedisAccessor.GetOrCreateAsync();
redisAccessor.ResetRedis();
}
public override async ValueTask DisposeAsync()

View File

@ -1,10 +1,10 @@
using System;
using System.Collections.Concurrent;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.Extensions.Caching.Distributed;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using StackExchange.Redis;
using Testcontainers.Redis;
namespace CleanArchitecture.IntegrationTests.Infrastructure;
@ -48,6 +48,26 @@ public sealed class RedisAccessor
options.InstanceName = "clean-architecture";
});
}
public void ResetRedis()
{
var redis = ConnectionMultiplexer.Connect(GetConnectionString());
var db = redis.GetDatabase();
var endpoints = redis.GetEndPoints();
foreach (var endpoint in endpoints)
{
var server = redis.GetServer(endpoint);
var keys = server.Keys();
foreach (var key in keys)
{
db.KeyDelete(key);
}
}
redis.Close();
}
public static RedisAccessor GetOrCreateAsync()
{