Files
jsmr/JSMR.Tests/Fixtures/CreatorSearchProviderFixture.cs

61 lines
1.6 KiB
C#

using JSMR.Infrastructure.Data;
using Microsoft.EntityFrameworkCore;
namespace JSMR.Tests.Fixtures;
public class CreatorSearchProviderFixture : MariaDbFixture
{
protected override async Task OnInitializedAsync(AppDbContext context)
{
await SeedAsync(context);
}
private static async Task SeedAsync(AppDbContext context)
{
if (await context.Tags.AnyAsync())
return;
context.Creators.AddRange(
new() { CreatorId = 1, Name = "John Smith" },
new() { CreatorId = 2, Name = "John Doe", Favorite = true },
new() { CreatorId = 3, Name = "Jane Doe", Blacklisted = true }
);
await context.SaveChangesAsync();
}
}
public sealed class CreatorSearchProviderFixture2(MariaDbContainerFixture container) : IAsyncLifetime
{
public AppDbContext? DbContext { get; private set; }
public async ValueTask InitializeAsync()
{
DbContext = await MariaTestDb.CreateIsolatedAsync(
container.RootConnectionString,
seed: SeedAsync);
}
private static async Task SeedAsync(AppDbContext context)
{
if (await context.Tags.AnyAsync())
return;
context.Creators.AddRange(
new() { CreatorId = 1, Name = "John Smith" },
new() { CreatorId = 2, Name = "John Doe", Favorite = true },
new() { CreatorId = 3, Name = "Jane Doe", Blacklisted = true }
);
await context.SaveChangesAsync();
}
public async ValueTask DisposeAsync()
{
if (DbContext is not null)
{
await DbContext.DisposeAsync();
}
}
}