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

@@ -10,39 +10,36 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
[Fact]
public void ConvertToRomTest()
{
DiskArea diskArea = new DiskArea
{
Name = "name"
};
DiskArea diskArea = new DiskArea { Name = "name" };
Machine machine = new Machine { Name = "name" };
Part part = new Part
Part part = new Part { Name = "name" };
Source source = new Source(0, "source");
Disk disk = new Disk
{
Name = "name"
Name = "name",
DiskArea = diskArea,
Merge = "merge",
Region = "region",
Status = Data.Models.Metadata.ItemStatus.Good,
Optional = true,
MD5 = HashType.MD5.ZeroString,
SHA1 = HashType.SHA1.ZeroString,
DupeType = DupeType.All | DupeType.External,
Machine = machine,
Part = part,
RemoveFlag = false,
Source = source,
};
Source source = new Source(0, "XXXXXX");
Disk disk = new Disk { Name = "name" };
disk.Write(Disk.DiskAreaKey, diskArea);
disk.Write(Data.Models.Metadata.Disk.MergeKey, "XXXXXX");
disk.Write(Data.Models.Metadata.Disk.RegionKey, "XXXXXX");
disk.Status = Data.Models.Metadata.ItemStatus.Good;
disk.Optional = true;
disk.Write(Data.Models.Metadata.Disk.MD5Key, HashType.MD5.ZeroString);
disk.Write(Data.Models.Metadata.Disk.SHA1Key, HashType.SHA1.ZeroString);
disk.DupeType = DupeType.All | DupeType.External;
disk.Machine = machine;
disk.Write(Disk.PartKey, part);
disk.RemoveFlag = false;
disk.Source = source;
Rom actual = disk.ConvertToRom();
Assert.Equal("name.chd", actual.Name);
Assert.Equal("XXXXXX", actual.ReadString(Data.Models.Metadata.Rom.MergeKey));
Assert.Equal("XXXXXX", actual.ReadString(Data.Models.Metadata.Rom.RegionKey));
Assert.Equal("merge", actual.ReadString(Data.Models.Metadata.Rom.MergeKey));
Assert.Equal("region", actual.ReadString(Data.Models.Metadata.Rom.RegionKey));
Assert.Equal(Data.Models.Metadata.ItemStatus.Good, actual.Status);
Assert.Equal(true, actual.Optional);
Assert.Equal(HashType.MD5.ZeroString, actual.ReadString(Data.Models.Metadata.Rom.MD5Key));
@@ -66,7 +63,7 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
Source? actualSource = actual.Source;
Assert.NotNull(actualSource);
Assert.Equal(0, actualSource.Index);
Assert.Equal("XXXXXX", actualSource.Name);
Assert.Equal("source", actualSource.Name);
}
#endregion
@@ -81,8 +78,8 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
self.FillMissingInformation(other);
Assert.Null(self.ReadString(Data.Models.Metadata.Disk.MD5Key));
Assert.Null(self.ReadString(Data.Models.Metadata.Disk.SHA1Key));
Assert.Null(self.MD5);
Assert.Null(self.SHA1);
}
[Fact]
@@ -90,14 +87,16 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
{
Disk self = new Disk();
Disk other = new Disk();
other.Write(Data.Models.Metadata.Disk.MD5Key, "XXXXXX");
other.Write(Data.Models.Metadata.Disk.SHA1Key, "XXXXXX");
Disk other = new Disk
{
MD5 = "md5",
SHA1 = "sha1",
};
self.FillMissingInformation(other);
Assert.Equal("XXXXXX", self.ReadString(Data.Models.Metadata.Disk.MD5Key));
Assert.Equal("XXXXXX", self.ReadString(Data.Models.Metadata.Disk.SHA1Key));
Assert.Equal("md5", self.MD5);
Assert.Equal("sha1", self.SHA1);
}
#endregion
@@ -115,9 +114,11 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
[Fact]
public void HasHashes_MD5_True()
{
Disk self = new Disk();
self.Write(Data.Models.Metadata.Disk.MD5Key, "XXXXXX");
self.Write(Data.Models.Metadata.Disk.SHA1Key, string.Empty);
Disk self = new Disk
{
MD5 = "md5",
SHA1 = string.Empty,
};
bool actual = self.HasHashes();
Assert.True(actual);
@@ -126,9 +127,11 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
[Fact]
public void HasHashes_SHA1_True()
{
Disk self = new Disk();
self.Write(Data.Models.Metadata.Disk.MD5Key, string.Empty);
self.Write(Data.Models.Metadata.Disk.SHA1Key, "XXXXXX");
Disk self = new Disk
{
MD5 = string.Empty,
SHA1 = "sha1",
};
bool actual = self.HasHashes();
Assert.True(actual);
@@ -137,9 +140,11 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
[Fact]
public void HasHashes_All_True()
{
Disk self = new Disk();
self.Write(Data.Models.Metadata.Disk.MD5Key, "XXXXXX");
self.Write(Data.Models.Metadata.Disk.SHA1Key, "XXXXXX");
Disk self = new Disk
{
MD5 = "md5",
SHA1 = "sha1",
};
bool actual = self.HasHashes();
Assert.True(actual);
@@ -160,9 +165,11 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
[Fact]
public void HasZeroHash_NonZeroHash_False()
{
Disk self = new Disk();
self.Write(Data.Models.Metadata.Disk.MD5Key, "DEADBEEF");
self.Write(Data.Models.Metadata.Disk.SHA1Key, "DEADBEEF");
Disk self = new Disk
{
MD5 = "DEADBEEF",
SHA1 = "DEADBEEF",
};
bool actual = self.HasZeroHash();
Assert.False(actual);
@@ -171,9 +178,11 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
[Fact]
public void HasZeroHash_ZeroMD5_True()
{
Disk self = new Disk();
self.Write(Data.Models.Metadata.Disk.MD5Key, HashType.MD5.ZeroString);
self.Write(Data.Models.Metadata.Disk.SHA1Key, string.Empty);
Disk self = new Disk
{
MD5 = HashType.MD5.ZeroString,
SHA1 = string.Empty,
};
bool actual = self.HasZeroHash();
Assert.True(actual);
@@ -182,9 +191,11 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
[Fact]
public void HasZeroHash_ZeroSHA1_True()
{
Disk self = new Disk();
self.Write(Data.Models.Metadata.Disk.MD5Key, string.Empty);
self.Write(Data.Models.Metadata.Disk.SHA1Key, HashType.SHA1.ZeroString);
Disk self = new Disk
{
MD5 = string.Empty,
SHA1 = HashType.SHA1.ZeroString,
};
bool actual = self.HasZeroHash();
Assert.True(actual);
@@ -193,9 +204,11 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
[Fact]
public void HasZeroHash_ZeroAll_True()
{
Disk self = new Disk();
self.Write(Data.Models.Metadata.Disk.MD5Key, HashType.MD5.ZeroString);
self.Write(Data.Models.Metadata.Disk.SHA1Key, HashType.SHA1.ZeroString);
Disk self = new Disk
{
MD5 = HashType.MD5.ZeroString,
SHA1 = HashType.SHA1.ZeroString,
};
bool actual = self.HasZeroHash();
Assert.True(actual);
@@ -257,9 +270,11 @@ namespace SabreTools.Metadata.DatItems.Formats.Test
Machine machine = new Machine { Name = "Machine" };
DatItem datItem = new Disk();
datItem.Write(Data.Models.Metadata.Disk.MD5Key, "DEADBEEF");
datItem.Write(Data.Models.Metadata.Disk.SHA1Key, "DEADBEEF");
DatItem datItem = new Disk
{
MD5 = "DEADBEEF",
SHA1 = "DEADBEEF",
};
string actual = datItem.GetKey(bucketedBy, machine, source, lower, norename);
Assert.Equal(expected, actual);