31 lines
1.0 KiB
C#
31 lines
1.0 KiB
C#
using JSMR.Application.Scanning.Contracts;
|
|
using JSMR.Application.Scanning.Ports;
|
|
using JSMR.Infrastructure.Common.Time;
|
|
using JSMR.Infrastructure.Data;
|
|
using JSMR.Infrastructure.Ingestion;
|
|
using JSMR.Tests.Fixtures;
|
|
using NSubstitute;
|
|
|
|
namespace JSMR.Tests.Ingestion.Japanese;
|
|
|
|
public abstract class IngestionTestsBase(MariaDbContainerFixture container)
|
|
{
|
|
protected async Task<AppDbContext> GetAppDbContextAsync()
|
|
{
|
|
return await MariaTestDb.CreateIsolatedAsync(
|
|
container.RootConnectionString,
|
|
seed: VoiceWorkIngestionSeedData.SeedAsync);
|
|
}
|
|
|
|
protected static async Task<VoiceWorkUpsertResult[]> UpsertAsync(AppDbContext dbContext, DateTime dateTime, VoiceWorkIngest[] ingests)
|
|
{
|
|
IClock clock = Substitute.For<IClock>();
|
|
clock.UtcNow.Returns(new DateTimeOffset(dateTime));
|
|
|
|
TokyoTimeProvider timeProvider = new(clock);
|
|
|
|
VoiceWorkUpdater updater = new(dbContext, timeProvider);
|
|
|
|
return await updater.UpsertAsync(ingests, TestContext.Current.CancellationToken);
|
|
}
|
|
} |