Get rid of Software metadata item

Apparently this was a mistake that has proliferated over a very long time. The Software item that was being modeled was actually the game/machine equivilent from SoftwareList. But because there's both an item called SoftwareList and a DAT type called SoftwareList, some wire got crossed and they were mentally combined. Undoing this allows for a more proper internal model, including a couple of extraneous keys that were included originally.
This commit is contained in:
Matt Nadareski
2026-04-03 17:25:09 -04:00
parent 154be08a53
commit e01537c2f4
13 changed files with 49 additions and 356 deletions

View File

@@ -928,32 +928,12 @@ namespace SabreTools.Metadata.DatFiles.Test
};
}
private static Data.Models.Metadata.Software CreateMetadataSoftware()
{
return new Data.Models.Metadata.Software
{
[Data.Models.Metadata.Software.CloneOfKey] = "cloneof",
Description = "description",
[Data.Models.Metadata.Software.InfoKey] = new Data.Models.Metadata.Info[] { CreateMetadataInfo() },
Name = "name",
[Data.Models.Metadata.Software.NotesKey] = "notes",
[Data.Models.Metadata.Software.PartKey] = new Data.Models.Metadata.Part[] { CreateMetadataPart() },
[Data.Models.Metadata.Software.PublisherKey] = "publisher",
[Data.Models.Metadata.Software.SharedFeatKey] = new Data.Models.Metadata.SharedFeat[] { CreateMetadataSharedFeat() },
Supported = Data.Models.Metadata.Supported.Yes,
[Data.Models.Metadata.Software.YearKey] = "year",
};
}
private static Data.Models.Metadata.SoftwareList CreateMetadataSoftwareList()
{
return new Data.Models.Metadata.SoftwareList
{
Description = "description",
Filter = "filter",
Name = "name",
Notes = "notes",
[Data.Models.Metadata.SoftwareList.SoftwareKey] = new Data.Models.Metadata.Software[] { CreateMetadataSoftware() },
Status = Data.Models.Metadata.SoftwareListStatus.Original,
Tag = "tag",
};
@@ -1627,44 +1607,10 @@ namespace SabreTools.Metadata.DatFiles.Test
private static void ValidateSoftwareList(SoftwareList? softwareList)
{
Assert.NotNull(softwareList);
Assert.Equal("description", softwareList.Description);
Assert.Equal("filter", softwareList.Filter);
Assert.Equal("name", softwareList.Name);
Assert.Equal("notes", softwareList.Notes);
Assert.Equal(Data.Models.Metadata.SoftwareListStatus.Original, softwareList.Status);
Assert.Equal("tag", softwareList.Tag);
Software[]? softwares = softwareList.Read<Software[]>(Data.Models.Metadata.SoftwareList.SoftwareKey);
Assert.NotNull(softwares);
Software? software = Assert.Single(softwares);
ValidateSoftware(software);
}
private static void ValidateSoftware(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));
Info[]? infos = software.Read<Info[]>(Data.Models.Metadata.Software.InfoKey);
Assert.NotNull(infos);
Info? info = Assert.Single(infos);
ValidateInfo(info);
Part[]? parts = software.Read<Part[]>(Data.Models.Metadata.Software.PartKey);
Assert.NotNull(parts);
Part? part = Assert.Single(parts);
ValidatePart(part);
SharedFeat[]? sharedFeats = software.Read<SharedFeat[]>(Data.Models.Metadata.Software.SharedFeatKey);
Assert.NotNull(sharedFeats);
SharedFeat? sharedFeat = Assert.Single(sharedFeats);
ValidateSharedFeat(sharedFeat);
}
private static void ValidateSound(Sound? sound)

View File

@@ -1189,46 +1189,10 @@ namespace SabreTools.Metadata.DatFiles.Test
private static void ValidateMetadataSoftwareList(Data.Models.Metadata.SoftwareList? softwareList)
{
Assert.NotNull(softwareList);
Assert.Equal("description", softwareList.Description);
Assert.Equal("filter", softwareList.Filter);
Assert.Equal("name", softwareList.Name);
Assert.Equal("notes", softwareList.Notes);
Assert.Equal(Data.Models.Metadata.SoftwareListStatus.Original, softwareList.Status);
Assert.Equal("tag", softwareList.Tag);
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);
// TODO: Reenable when the mess that is the Software tree can be fixed
// 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)