63 lines
2.4 KiB
C#
63 lines
2.4 KiB
C#
using JSMR.Application.Scanning.Contracts;
|
|
using JSMR.Domain.Entities;
|
|
using JSMR.Domain.ValueObjects;
|
|
using JSMR.Infrastructure.Data;
|
|
using JSMR.Tests.Fixtures;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using Shouldly;
|
|
|
|
namespace JSMR.Tests.Ingestion.Japanese;
|
|
|
|
public class Update_Supported_Langauge_Tests(MariaDbContainerFixture container) : JapaneseIngestionTestsBase(container)
|
|
{
|
|
[Fact]
|
|
public async Task Update_Supported_Langauge()
|
|
{
|
|
VoiceWorkIngest ingest = new()
|
|
{
|
|
MakerId = "RG1",
|
|
MakerName = "The Maker",
|
|
ProductId = "RJ1",
|
|
Title = "Title",
|
|
Description = "Description",
|
|
SupportedLanguages = [SupportedLanguage.Japanese]
|
|
};
|
|
|
|
await using AppDbContext dbContext = await GetAppDbContextAsync();
|
|
DateTime currentDateTime = TokyoLocalToUtc(2025, 01, 05, 10, 0, 0);
|
|
|
|
await UpsertAndVerify(dbContext, TokyoLocalToUtc(2025, 01, 05, 10, 0, 0), ingest, [SupportedLanguage.Japanese]);
|
|
|
|
// Add English
|
|
VoiceWorkIngest addSupportedLanguageIngest = ingest with
|
|
{
|
|
SupportedLanguages = [SupportedLanguage.Japanese, SupportedLanguage.English]
|
|
};
|
|
|
|
await UpsertAndVerify(dbContext, TokyoLocalToUtc(2025, 01, 05, 10, 0, 0), addSupportedLanguageIngest, [SupportedLanguage.Japanese, SupportedLanguage.English]);
|
|
|
|
// Remove Japanese
|
|
VoiceWorkIngest removeSupportedLanguageIngest = ingest with
|
|
{
|
|
SupportedLanguages = [SupportedLanguage.English]
|
|
};
|
|
|
|
await UpsertAndVerify(dbContext, TokyoLocalToUtc(2025, 01, 05, 10, 0, 0), removeSupportedLanguageIngest, [SupportedLanguage.English]);
|
|
}
|
|
|
|
private static async Task UpsertAndVerify(AppDbContext dbContext, DateTime dateTime, VoiceWorkIngest ingest, SupportedLanguage[] expectedSupportedLanguages)
|
|
{
|
|
await UpsertAsync(dbContext, dateTime, [ingest]);
|
|
|
|
VoiceWork? voiceWork = await dbContext.VoiceWorks
|
|
.Include(x => x.SupportedLanguages)
|
|
.SingleAsync(v => v.ProductId == ingest.ProductId, TestContext.Current.CancellationToken);
|
|
|
|
voiceWork.ShouldNotBeNull();
|
|
|
|
string[] languageCodes = [.. voiceWork.SupportedLanguages.Select(x => x.Language).OrderBy(x => x)];
|
|
string[] expectedLanguageCode = [.. expectedSupportedLanguages.Select(x => x.Code).OrderBy(x => x)];
|
|
|
|
languageCodes.ShouldBe(expectedLanguageCode);
|
|
}
|
|
} |