Migrate DataArea, DiskArea, and Part to property-driven

This commit is contained in:
Matt Nadareski
2026-04-04 11:40:48 -04:00
parent 872fdc2a10
commit eb2f5babd9
20 changed files with 545 additions and 293 deletions

View File

@@ -142,9 +142,9 @@ namespace SabreTools.Metadata.DatFiles.Test
// All other fields are tested separately
Rom? partRom = Array.Find(datItems, item => item is Rom rom && rom.DataAreaSpecified && rom.PartSpecified) as Rom;
Assert.NotNull(partRom);
DataArea? romDataArea = partRom.Read<DataArea>(Rom.DataAreaKey);
DataArea? romDataArea = partRom.DataArea;
ValidateDataArea(romDataArea);
Part? romPart = partRom.Read<Part>(Rom.PartKey);
Part? romPart = partRom.Part;
ValidatePart(romPart);
Port? port = Array.Find(datItems, item => item is Port) as Port;
@@ -539,7 +539,7 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Endianness = Data.Models.Metadata.Endianness.Big,
Name = "name",
[Data.Models.Metadata.DataArea.RomKey] = new Data.Models.Metadata.Rom[] { [] },
Rom = [[]],
Size = 12345,
Width = Data.Models.Metadata.Width.Long,
};
@@ -565,7 +565,7 @@ namespace SabreTools.Metadata.DatFiles.Test
{
return new Data.Models.Metadata.DiskArea
{
[Data.Models.Metadata.DiskArea.DiskKey] = new Data.Models.Metadata.Disk[] { [] },
Disk = [[]],
Name = "name",
};
}
@@ -704,10 +704,10 @@ namespace SabreTools.Metadata.DatFiles.Test
{
return new Data.Models.Metadata.Part
{
[Data.Models.Metadata.Part.DataAreaKey] = new Data.Models.Metadata.DataArea[] { CreateMetadataDataArea() },
[Data.Models.Metadata.Part.DiskAreaKey] = new Data.Models.Metadata.DiskArea[] { CreateMetadataDiskArea() },
[Data.Models.Metadata.Part.DipSwitchKey] = new Data.Models.Metadata.DipSwitch[] { [] },
[Data.Models.Metadata.Part.FeatureKey] = new Data.Models.Metadata.Feature[] { CreateMetadataFeature() },
DataArea = [CreateMetadataDataArea()],
DiskArea = [CreateMetadataDiskArea()],
DipSwitch = [[]],
Feature = [CreateMetadataFeature()],
Interface = "interface",
Name = "name",
};
@@ -1432,7 +1432,7 @@ namespace SabreTools.Metadata.DatFiles.Test
Assert.Equal(Data.Models.Metadata.FeatureType.Protection, partFeature.FeatureType);
Assert.Equal("value", partFeature.Value);
Part? part = partFeature.Read<Part>(PartFeature.PartKey);
Part? part = partFeature.Part;
ValidatePart(part);
}

View File

@@ -261,7 +261,7 @@ namespace SabreTools.Metadata.DatFiles.Test
{
PartFeature item = new PartFeature(CreateMetadataFeature());
item.CopyMachineInformation(machine);
item.Write(PartFeature.PartKey, CreatePart(machine));
item.Part = CreatePart(machine);
return item;
}
@@ -298,8 +298,8 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Rom item = new Rom(CreateMetadataRom());
item.CopyMachineInformation(machine);
item.Write(Rom.DataAreaKey, CreateDataArea(machine));
item.Write(Rom.PartKey, CreatePart(machine));
item.DataArea = CreateDataArea(machine);
item.Part = CreatePart(machine);
return item;
}
@@ -761,7 +761,7 @@ namespace SabreTools.Metadata.DatFiles.Test
Assert.Equal(12345, dataArea.Size);
Assert.Equal(Data.Models.Metadata.Width.Long, dataArea.Width);
Data.Models.Metadata.Rom[]? roms = dataArea.ReadArray<Data.Models.Metadata.Rom>(Data.Models.Metadata.DataArea.RomKey);
Data.Models.Metadata.Rom[]? roms = dataArea.Rom;
Assert.NotNull(roms);
Data.Models.Metadata.Rom? rom = Assert.Single(roms);
ValidateMetadataRom(rom);
@@ -853,7 +853,7 @@ namespace SabreTools.Metadata.DatFiles.Test
Assert.NotNull(diskArea);
Assert.Equal("name", diskArea.Name);
Data.Models.Metadata.Disk[]? disks = diskArea.ReadArray<Data.Models.Metadata.Disk>(Data.Models.Metadata.DiskArea.DiskKey);
Data.Models.Metadata.Disk[]? disks = diskArea.Disk;
Assert.NotNull(disks);
Data.Models.Metadata.Disk? disk = Assert.Single(disks);
ValidateMetadataDisk(disk);
@@ -959,22 +959,22 @@ namespace SabreTools.Metadata.DatFiles.Test
Assert.Equal("interface", part.Interface);
Assert.Equal("name", part.Name);
Data.Models.Metadata.DataArea[]? dataAreas = part.ReadArray<Data.Models.Metadata.DataArea>(Data.Models.Metadata.Part.DataAreaKey);
Data.Models.Metadata.DataArea[]? dataAreas = part.DataArea;
Assert.NotNull(dataAreas);
Data.Models.Metadata.DataArea? dataArea = Assert.Single(dataAreas);
ValidateMetadataDataArea(dataArea);
Data.Models.Metadata.DiskArea[]? diskAreas = part.ReadArray<Data.Models.Metadata.DiskArea>(Data.Models.Metadata.Part.DiskAreaKey);
Data.Models.Metadata.DiskArea[]? diskAreas = part.DiskArea;
Assert.NotNull(diskAreas);
Data.Models.Metadata.DiskArea? diskArea = Assert.Single(diskAreas);
ValidateMetadataDiskArea(diskArea);
Data.Models.Metadata.DipSwitch[]? dipSwitches = part.ReadArray<Data.Models.Metadata.DipSwitch>(Data.Models.Metadata.Part.DipSwitchKey);
Data.Models.Metadata.DipSwitch[]? dipSwitches = part.DipSwitch;
Assert.NotNull(dipSwitches);
Data.Models.Metadata.DipSwitch? dipSwitch = Assert.Single(dipSwitches);
ValidateMetadataDipSwitch(dipSwitch);
Data.Models.Metadata.Feature[]? features = part.ReadArray<Data.Models.Metadata.Feature>(Data.Models.Metadata.Part.FeatureKey);
Data.Models.Metadata.Feature[]? features = part.Feature;
Assert.NotNull(features);
Data.Models.Metadata.Feature? feature = Assert.Single(features);
ValidateMetadataFeature(feature);