using JSMR.Application.Integrations.DLSite.Models; using JSMR.Application.Scanning.Contracts; using JSMR.Infrastructure.Common.Time; using JSMR.Infrastructure.Data; using JSMR.Infrastructure.Data.Repositories.VoiceWorks; using JSMR.Tests.Fixtures; using NSubstitute; using Shouldly; namespace JSMR.Tests.Integration; public class VoiceWorkUpsertTests(VoiceWorkUpsertFixture fixture) : IClassFixture { [Fact] public async Task Filter_None() { await using AppDbContext context = fixture.CreateDbContext(); ITimeProvider timeProvider = Substitute.For(); timeProvider.Now().Returns(new DateTimeOffset(2025, 10, 1, 0, 0, 0, 0, TimeSpan.FromSeconds(0))); DLSiteWork work1 = new() { ProductId = "001", ProductName = "fdsfs", MakerId = "RG00001", Maker = "", ImageUrl = "", SmallImageUrl = "" }; VoiceWorkDetails details1 = new() { AgeRating = Application.Common.AgeRating.R18, }; VoiceWorkIngest[] ingests = [ new(work1, details1) ]; VoiceWorkWriter writer = new(context, timeProvider); await writer.UpsertAsync(ingests, CancellationToken.None); context.VoiceWorks.Count().ShouldBe(2); } }