61 lines
1.6 KiB
C#
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();
|
|
}
|
|
}
|
|
} |