Fix longstanding TODOs around Software items

This commit is contained in:
Matt Nadareski
2026-04-03 16:02:44 -04:00
parent fb711001e9
commit e3927ca3e6
26 changed files with 307 additions and 49 deletions

View File

@@ -1190,13 +1190,43 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Assert.NotNull(softwareList);
Assert.Equal("description", softwareList.Description);
Assert.Equal("filter", softwareList.ReadString(Data.Models.Metadata.SoftwareList.FilterKey));
Assert.Equal("filter", softwareList.Filter);
Assert.Equal("name", softwareList.Name);
Assert.Equal("notes", softwareList.ReadString(Data.Models.Metadata.SoftwareList.NotesKey));
Assert.Equal("notes", softwareList.Notes);
Assert.Equal(Data.Models.Metadata.SoftwareListStatus.Original, softwareList.Status);
Assert.Equal("tag", softwareList.Tag);
// TODO: Figure out why Data.Models.Metadata.SoftwareList.SoftwareKey doesn't get processed
Data.Models.Metadata.Software[]? softwares = softwareList.ReadArray<Data.Models.Metadata.Software>(Data.Models.Metadata.SoftwareList.SoftwareKey);
Assert.NotNull(softwares);
Data.Models.Metadata.Software? software = Assert.Single(softwares);
ValidateMetadataSoftware(software);
}
private static void ValidateMetadataSoftware(Data.Models.Metadata.Software? software)
{
Assert.NotNull(software);
Assert.Equal("cloneof", software.ReadString(Data.Models.Metadata.Software.CloneOfKey));
Assert.Equal("description", software.Description);
Assert.Equal("name", software.Name);
Assert.Equal("notes", software.ReadString(Data.Models.Metadata.Software.NotesKey));
Assert.Equal("publisher", software.ReadString(Data.Models.Metadata.Software.PublisherKey));
Assert.Equal(Data.Models.Metadata.Supported.Yes, software.Supported);
Assert.Equal("year", software.ReadString(Data.Models.Metadata.Software.YearKey));
Data.Models.Metadata.Info[]? infos = software.Read<Data.Models.Metadata.Info[]>(Data.Models.Metadata.Software.InfoKey);
Assert.NotNull(infos);
Data.Models.Metadata.Info? info = Assert.Single(infos);
ValidateMetadataInfo(info);
Data.Models.Metadata.Part[]? parts = software.Read<Data.Models.Metadata.Part[]>(Data.Models.Metadata.Software.PartKey);
Assert.NotNull(parts);
Data.Models.Metadata.Part? part = Assert.Single(parts);
ValidateMetadataPart(part);
Data.Models.Metadata.SharedFeat[]? sharedFeats = software.Read<Data.Models.Metadata.SharedFeat[]>(Data.Models.Metadata.Software.SharedFeatKey);
Assert.NotNull(sharedFeats);
Data.Models.Metadata.SharedFeat? sharedFeat = Assert.Single(sharedFeats);
ValidateMetadataSharedFeat(sharedFeat);
}
private static void ValidateMetadataSound(Data.Models.Metadata.Sound? sound)