Convert Disk fully over to properties

This commit is contained in:
Matt Nadareski
2026-04-04 01:15:40 -04:00
parent e5e279a48d
commit 9ffa2a5e23
55 changed files with 487 additions and 433 deletions

View File

@@ -133,10 +133,8 @@ namespace SabreTools.Metadata.DatFiles.Test
// All other fields are tested separately
Disk? partDisk = Array.Find(datItems, item => item is Disk disk && disk.DiskAreaSpecified && disk.PartSpecified) as Disk;
Assert.NotNull(partDisk);
DiskArea? diskDiskArea = partDisk.Read<DiskArea>(Disk.DiskAreaKey);
ValidateDiskArea(diskDiskArea);
Part? diskPart = partDisk.Read<Part>(Disk.PartKey);
ValidatePart(diskPart);
ValidateDiskArea(partDisk.DiskArea);
ValidatePart(partDisk.Part);
PartFeature? partFeature = Array.Find(datItems, item => item is PartFeature) as PartFeature;
ValidatePartFeature(partFeature);
@@ -551,14 +549,14 @@ namespace SabreTools.Metadata.DatFiles.Test
{
return new Data.Models.Metadata.Disk
{
[Data.Models.Metadata.Disk.FlagsKey] = "flags",
[Data.Models.Metadata.Disk.IndexKey] = "index",
[Data.Models.Metadata.Disk.MD5Key] = HashType.MD5.ZeroString,
[Data.Models.Metadata.Disk.MergeKey] = "merge",
Flags = "flags",
Index = 12345,
MD5 = HashType.MD5.ZeroString,
Merge = "merge",
Name = "name",
Optional = true,
[Data.Models.Metadata.Disk.RegionKey] = "region",
[Data.Models.Metadata.Disk.SHA1Key] = HashType.SHA1.ZeroString,
Region = "region",
SHA1 = HashType.SHA1.ZeroString,
Writable = true,
};
}
@@ -1307,14 +1305,14 @@ namespace SabreTools.Metadata.DatFiles.Test
private static void ValidateDisk(Disk? disk)
{
Assert.NotNull(disk);
Assert.Equal("flags", disk.ReadString(Data.Models.Metadata.Disk.FlagsKey));
Assert.Equal("index", disk.ReadString(Data.Models.Metadata.Disk.IndexKey));
Assert.Equal(HashType.MD5.ZeroString, disk.ReadString(Data.Models.Metadata.Disk.MD5Key));
Assert.Equal("merge", disk.ReadString(Data.Models.Metadata.Disk.MergeKey));
Assert.Equal("flags", disk.Flags);
Assert.Equal(12345, disk.Index);
Assert.Equal(HashType.MD5.ZeroString, disk.MD5);
Assert.Equal("merge", disk.Merge);
Assert.Equal("name", disk.Name);
Assert.True(disk.Optional);
Assert.Equal("region", disk.ReadString(Data.Models.Metadata.Disk.RegionKey));
Assert.Equal(HashType.SHA1.ZeroString, disk.ReadString(Data.Models.Metadata.Disk.SHA1Key));
Assert.Equal("region", disk.Region);
Assert.Equal(HashType.SHA1.ZeroString, disk.SHA1);
Assert.True(disk.Writable);
}

View File

@@ -196,8 +196,8 @@ namespace SabreTools.Metadata.DatFiles.Test
{
Disk item = new Disk(CreateMetadataDisk());
item.CopyMachineInformation(machine);
item.Write(Disk.DiskAreaKey, CreateDiskArea(machine));
item.Write(Disk.PartKey, CreatePart(machine));
item.DiskArea = CreateDiskArea(machine);
item.Part = CreatePart(machine);
return item;
}
@@ -837,14 +837,14 @@ namespace SabreTools.Metadata.DatFiles.Test
private static void ValidateMetadataDisk(Data.Models.Metadata.Disk? disk)
{
Assert.NotNull(disk);
Assert.Equal("flags", disk.ReadString(Data.Models.Metadata.Disk.FlagsKey));
Assert.Equal("index", disk.ReadString(Data.Models.Metadata.Disk.IndexKey));
Assert.Equal(HashType.MD5.ZeroString, disk.ReadString(Data.Models.Metadata.Disk.MD5Key));
Assert.Equal("merge", disk.ReadString(Data.Models.Metadata.Disk.MergeKey));
Assert.Equal("flags", disk.Flags);
Assert.Equal(12345, disk.Index);
Assert.Equal(HashType.MD5.ZeroString, disk.MD5);
Assert.Equal("merge", disk.Merge);
Assert.Equal("name", disk.Name);
Assert.True(disk.Optional);
Assert.Equal("region", disk.ReadString(Data.Models.Metadata.Disk.RegionKey));
Assert.Equal(HashType.SHA1.ZeroString, disk.ReadString(Data.Models.Metadata.Disk.SHA1Key));
Assert.Equal("region", disk.Region);
Assert.Equal(HashType.SHA1.ZeroString, disk.SHA1);
Assert.True(disk.Writable);
}

View File

@@ -1404,9 +1404,12 @@ namespace SabreTools.Metadata.DatFiles.Test
};
machine.Write(Data.Models.Metadata.Machine.CategoryKey, "category");
DatItem item = new Disk { Name = "name" };
item.Write(Data.Models.Metadata.Disk.MD5Key, "md5");
item.Write(Data.Models.Metadata.Disk.SHA1Key, "sha1");
DatItem item = new Disk
{
Name = "name",
MD5 = "md5",
SHA1 = "sha1",
};
string actual = DatFile.FormatPrefixPostfix(item, machine, fix);
Assert.Equal(expected, actual);
@@ -1670,8 +1673,7 @@ namespace SabreTools.Metadata.DatFiles.Test
public void GetDuplicateSuffix_Disk_MD5()
{
string hash = "XXXXXX";
DatItem datItem = new Disk();
datItem.Write(Data.Models.Metadata.Disk.MD5Key, hash);
DatItem datItem = new Disk { MD5 = hash };
string actual = DatFile.GetDuplicateSuffix(datItem);
Assert.Equal($"_{hash}", actual);
@@ -1681,8 +1683,7 @@ namespace SabreTools.Metadata.DatFiles.Test
public void GetDuplicateSuffix_Disk_SHA1()
{
string hash = "XXXXXX";
DatItem datItem = new Disk();
datItem.Write(Data.Models.Metadata.Disk.SHA1Key, hash);
DatItem datItem = new Disk { SHA1 = hash };
string actual = DatFile.GetDuplicateSuffix(datItem);
Assert.Equal($"_{hash}", actual);

View File

@@ -251,9 +251,12 @@ namespace SabreTools.Metadata.DatFiles.Test
/// </summary>
private static Disk CreateDisk()
{
var disk = new Disk { Status = ItemStatus.Good };
disk.Write<string?>(Data.Models.Metadata.Disk.MD5Key, HashType.MD5.ZeroString);
disk.Write<string?>(Data.Models.Metadata.Disk.SHA1Key, HashType.SHA1.ZeroString);
var disk = new Disk
{
Status = ItemStatus.Good,
MD5 = HashType.MD5.ZeroString,
SHA1 = HashType.SHA1.ZeroString,
};
return disk;
}

View File

@@ -143,7 +143,7 @@ namespace SabreTools.Metadata.DatFiles.Test
Assert.NotNull(actual);
Assert.True(actual.SequenceEqual([
nameof(Data.Models.Metadata.Disk.Name),
Data.Models.Metadata.Disk.SHA1Key,
nameof(Data.Models.Metadata.Disk.SHA1),
]));
}
@@ -427,7 +427,7 @@ namespace SabreTools.Metadata.DatFiles.Test
Assert.NotNull(actual);
Assert.True(actual.SequenceEqual([
nameof(Data.Models.Metadata.Disk.Name),
Data.Models.Metadata.Disk.MD5Key,
nameof(Data.Models.Metadata.Disk.MD5),
]));
}
@@ -534,7 +534,7 @@ namespace SabreTools.Metadata.DatFiles.Test
Assert.NotNull(actual);
Assert.True(actual.SequenceEqual([
nameof(Data.Models.Metadata.Disk.Name),
Data.Models.Metadata.Disk.SHA1Key,
nameof(Data.Models.Metadata.Disk.SHA1),
]));
}
@@ -726,7 +726,7 @@ namespace SabreTools.Metadata.DatFiles.Test
Assert.NotNull(actual);
Assert.True(actual.SequenceEqual([
nameof(Data.Models.Metadata.Disk.Name),
Data.Models.Metadata.Disk.SHA1Key,
nameof(Data.Models.Metadata.Disk.SHA1),
]));
}
@@ -822,7 +822,7 @@ namespace SabreTools.Metadata.DatFiles.Test
Assert.NotNull(actual);
Assert.True(actual.SequenceEqual([
nameof(Data.Models.Metadata.Disk.Name),
Data.Models.Metadata.Disk.SHA1Key,
nameof(Data.Models.Metadata.Disk.SHA1),
]));
}
@@ -1139,7 +1139,7 @@ namespace SabreTools.Metadata.DatFiles.Test
Assert.NotNull(actual);
Assert.True(actual.SequenceEqual([
nameof(Data.Models.Metadata.Disk.Name),
Data.Models.Metadata.Disk.SHA1Key,
nameof(Data.Models.Metadata.Disk.SHA1),
]));
}
@@ -1391,7 +1391,7 @@ namespace SabreTools.Metadata.DatFiles.Test
Assert.NotNull(actual);
Assert.True(actual.SequenceEqual([
nameof(Data.Models.Metadata.Disk.Name),
Data.Models.Metadata.Disk.SHA1Key,
nameof(Data.Models.Metadata.Disk.SHA1),
]));
}
@@ -1449,7 +1449,7 @@ namespace SabreTools.Metadata.DatFiles.Test
Assert.NotNull(actual);
Assert.True(actual.SequenceEqual([
nameof(Data.Models.Metadata.Disk.Name),
Data.Models.Metadata.Disk.SHA1Key,
nameof(Data.Models.Metadata.Disk.SHA1),
]));
}
@@ -1507,7 +1507,7 @@ namespace SabreTools.Metadata.DatFiles.Test
Assert.NotNull(actual);
Assert.True(actual.SequenceEqual([
nameof(Data.Models.Metadata.Disk.Name),
Data.Models.Metadata.Disk.SHA1Key,
nameof(Data.Models.Metadata.Disk.SHA1),
]));
}

View File

@@ -16,8 +16,11 @@ namespace SabreTools.Metadata.DatFiles.Test
Source source = new Source(0, source: null);
Machine machine = new Machine();
DatItem disk = new Disk { Name = "item" };
disk.Write<string?>(Data.Models.Metadata.Disk.SHA1Key, "deadbeef");
DatItem disk = new Disk
{
Name = "item",
SHA1 = "deadbeef",
};
var dict = new ItemDictionaryDB();
long sourceIndex = dict.AddSource(source);

View File

@@ -16,10 +16,13 @@ namespace SabreTools.Metadata.DatFiles.Test
Source source = new Source(0, source: null);
Machine machine = new Machine();
DatItem disk = new Disk { Name = "item" };
disk.Write<string?>(Data.Models.Metadata.Disk.SHA1Key, "deadbeef");
disk.Source = source;
disk.Machine = machine;
DatItem disk = new Disk
{
Name = "item",
SHA1 = "deadbeef",
Source = source,
Machine = machine,
};
var dict = new ItemDictionary();
_ = dict.AddItem(disk, statsOnly: false);