mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Wire through MD2/MD4
This commit is contained in:
@@ -6,12 +6,6 @@ namespace SabreTools.Core.Test
|
|||||||
{
|
{
|
||||||
public class DictionaryBaseExtensionsTests
|
public class DictionaryBaseExtensionsTests
|
||||||
{
|
{
|
||||||
#region Clone
|
|
||||||
|
|
||||||
// TODO: Figure out how to test Clone
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region ConvertToRom
|
#region ConvertToRom
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
@@ -385,6 +379,8 @@ namespace SabreTools.Core.Test
|
|||||||
[Rom.NameKey] = "XXXXXX",
|
[Rom.NameKey] = "XXXXXX",
|
||||||
[Rom.SizeKey] = 12345,
|
[Rom.SizeKey] = 12345,
|
||||||
[Rom.CRCKey] = string.Empty,
|
[Rom.CRCKey] = string.Empty,
|
||||||
|
[Rom.MD2Key] = string.Empty,
|
||||||
|
[Rom.MD4Key] = string.Empty,
|
||||||
[Rom.MD5Key] = string.Empty,
|
[Rom.MD5Key] = string.Empty,
|
||||||
[Rom.SHA1Key] = string.Empty,
|
[Rom.SHA1Key] = string.Empty,
|
||||||
[Rom.SHA256Key] = string.Empty,
|
[Rom.SHA256Key] = string.Empty,
|
||||||
@@ -398,6 +394,8 @@ namespace SabreTools.Core.Test
|
|||||||
[Rom.NameKey] = "XXXXXX",
|
[Rom.NameKey] = "XXXXXX",
|
||||||
[Rom.SizeKey] = 12345,
|
[Rom.SizeKey] = 12345,
|
||||||
[Rom.CRCKey] = string.Empty,
|
[Rom.CRCKey] = string.Empty,
|
||||||
|
[Rom.MD2Key] = string.Empty,
|
||||||
|
[Rom.MD4Key] = string.Empty,
|
||||||
[Rom.MD5Key] = string.Empty,
|
[Rom.MD5Key] = string.Empty,
|
||||||
[Rom.SHA1Key] = string.Empty,
|
[Rom.SHA1Key] = string.Empty,
|
||||||
[Rom.SHA256Key] = string.Empty,
|
[Rom.SHA256Key] = string.Empty,
|
||||||
@@ -418,6 +416,8 @@ namespace SabreTools.Core.Test
|
|||||||
[Rom.NameKey] = "XXXXXX",
|
[Rom.NameKey] = "XXXXXX",
|
||||||
[Rom.SizeKey] = 12345,
|
[Rom.SizeKey] = 12345,
|
||||||
[Rom.CRCKey] = "XXXXXX",
|
[Rom.CRCKey] = "XXXXXX",
|
||||||
|
[Rom.MD2Key] = string.Empty,
|
||||||
|
[Rom.MD4Key] = "XXXXXX",
|
||||||
[Rom.MD5Key] = string.Empty,
|
[Rom.MD5Key] = string.Empty,
|
||||||
[Rom.SHA1Key] = "XXXXXX",
|
[Rom.SHA1Key] = "XXXXXX",
|
||||||
[Rom.SHA256Key] = string.Empty,
|
[Rom.SHA256Key] = string.Empty,
|
||||||
@@ -430,6 +430,8 @@ namespace SabreTools.Core.Test
|
|||||||
[Rom.NameKey] = "XXXXXX",
|
[Rom.NameKey] = "XXXXXX",
|
||||||
[Rom.SizeKey] = 12345,
|
[Rom.SizeKey] = 12345,
|
||||||
[Rom.CRCKey] = string.Empty,
|
[Rom.CRCKey] = string.Empty,
|
||||||
|
[Rom.MD2Key] = "XXXXXX",
|
||||||
|
[Rom.MD4Key] = string.Empty,
|
||||||
[Rom.MD5Key] = "XXXXXX",
|
[Rom.MD5Key] = "XXXXXX",
|
||||||
[Rom.SHA1Key] = string.Empty,
|
[Rom.SHA1Key] = string.Empty,
|
||||||
[Rom.SHA256Key] = "XXXXXX",
|
[Rom.SHA256Key] = "XXXXXX",
|
||||||
@@ -449,6 +451,8 @@ namespace SabreTools.Core.Test
|
|||||||
{
|
{
|
||||||
[Rom.NameKey] = "XXXXXX1",
|
[Rom.NameKey] = "XXXXXX1",
|
||||||
[Rom.CRCKey] = "XXXXXX",
|
[Rom.CRCKey] = "XXXXXX",
|
||||||
|
[Rom.MD2Key] = "XXXXXX",
|
||||||
|
[Rom.MD4Key] = "XXXXXX",
|
||||||
[Rom.MD5Key] = "XXXXXX",
|
[Rom.MD5Key] = "XXXXXX",
|
||||||
[Rom.SHA1Key] = "XXXXXX",
|
[Rom.SHA1Key] = "XXXXXX",
|
||||||
[Rom.SHA256Key] = "XXXXXX",
|
[Rom.SHA256Key] = "XXXXXX",
|
||||||
@@ -461,6 +465,8 @@ namespace SabreTools.Core.Test
|
|||||||
[Rom.NameKey] = "XXXXXX2",
|
[Rom.NameKey] = "XXXXXX2",
|
||||||
[Rom.SizeKey] = 12345,
|
[Rom.SizeKey] = 12345,
|
||||||
[Rom.CRCKey] = "XXXXXX",
|
[Rom.CRCKey] = "XXXXXX",
|
||||||
|
[Rom.MD2Key] = "XXXXXX",
|
||||||
|
[Rom.MD4Key] = "XXXXXX",
|
||||||
[Rom.MD5Key] = "XXXXXX",
|
[Rom.MD5Key] = "XXXXXX",
|
||||||
[Rom.SHA1Key] = "XXXXXX",
|
[Rom.SHA1Key] = "XXXXXX",
|
||||||
[Rom.SHA256Key] = "XXXXXX",
|
[Rom.SHA256Key] = "XXXXXX",
|
||||||
@@ -481,6 +487,8 @@ namespace SabreTools.Core.Test
|
|||||||
[Rom.NameKey] = "XXXXXX1",
|
[Rom.NameKey] = "XXXXXX1",
|
||||||
[Rom.SizeKey] = 12345,
|
[Rom.SizeKey] = 12345,
|
||||||
[Rom.CRCKey] = "XXXXXX",
|
[Rom.CRCKey] = "XXXXXX",
|
||||||
|
[Rom.MD2Key] = "XXXXXX",
|
||||||
|
[Rom.MD4Key] = "XXXXXX",
|
||||||
[Rom.MD5Key] = "XXXXXX",
|
[Rom.MD5Key] = "XXXXXX",
|
||||||
[Rom.SHA1Key] = "XXXXXX",
|
[Rom.SHA1Key] = "XXXXXX",
|
||||||
[Rom.SHA256Key] = "XXXXXX",
|
[Rom.SHA256Key] = "XXXXXX",
|
||||||
@@ -492,6 +500,8 @@ namespace SabreTools.Core.Test
|
|||||||
{
|
{
|
||||||
[Rom.NameKey] = "XXXXXX2",
|
[Rom.NameKey] = "XXXXXX2",
|
||||||
[Rom.CRCKey] = "XXXXXX",
|
[Rom.CRCKey] = "XXXXXX",
|
||||||
|
[Rom.MD2Key] = "XXXXXX",
|
||||||
|
[Rom.MD4Key] = "XXXXXX",
|
||||||
[Rom.MD5Key] = "XXXXXX",
|
[Rom.MD5Key] = "XXXXXX",
|
||||||
[Rom.SHA1Key] = "XXXXXX",
|
[Rom.SHA1Key] = "XXXXXX",
|
||||||
[Rom.SHA256Key] = "XXXXXX",
|
[Rom.SHA256Key] = "XXXXXX",
|
||||||
@@ -512,6 +522,8 @@ namespace SabreTools.Core.Test
|
|||||||
[Rom.NameKey] = "XXXXXX1",
|
[Rom.NameKey] = "XXXXXX1",
|
||||||
[Rom.SizeKey] = 12345,
|
[Rom.SizeKey] = 12345,
|
||||||
[Rom.CRCKey] = "XXXXXX",
|
[Rom.CRCKey] = "XXXXXX",
|
||||||
|
[Rom.MD2Key] = string.Empty,
|
||||||
|
[Rom.MD4Key] = string.Empty,
|
||||||
[Rom.MD5Key] = string.Empty,
|
[Rom.MD5Key] = string.Empty,
|
||||||
[Rom.SHA1Key] = string.Empty,
|
[Rom.SHA1Key] = string.Empty,
|
||||||
[Rom.SHA256Key] = string.Empty,
|
[Rom.SHA256Key] = string.Empty,
|
||||||
@@ -524,6 +536,80 @@ namespace SabreTools.Core.Test
|
|||||||
[Rom.NameKey] = "XXXXXX2",
|
[Rom.NameKey] = "XXXXXX2",
|
||||||
[Rom.SizeKey] = 12345,
|
[Rom.SizeKey] = 12345,
|
||||||
[Rom.CRCKey] = "XXXXXX",
|
[Rom.CRCKey] = "XXXXXX",
|
||||||
|
[Rom.MD2Key] = "XXXXXX",
|
||||||
|
[Rom.MD4Key] = "XXXXXX",
|
||||||
|
[Rom.MD5Key] = "XXXXXX",
|
||||||
|
[Rom.SHA1Key] = "XXXXXX",
|
||||||
|
[Rom.SHA256Key] = "XXXXXX",
|
||||||
|
[Rom.SHA384Key] = "XXXXXX",
|
||||||
|
[Rom.SHA512Key] = "XXXXXX",
|
||||||
|
[Rom.SpamSumKey] = "XXXXXX",
|
||||||
|
};
|
||||||
|
|
||||||
|
bool actual = self.EqualTo(other);
|
||||||
|
Assert.True(actual);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void EqualTo_Rom_PartialMD2_True()
|
||||||
|
{
|
||||||
|
DictionaryBase self = new Rom
|
||||||
|
{
|
||||||
|
[Rom.NameKey] = "XXXXXX1",
|
||||||
|
[Rom.SizeKey] = 12345,
|
||||||
|
[Rom.CRCKey] = string.Empty,
|
||||||
|
[Rom.MD2Key] = "XXXXXX",
|
||||||
|
[Rom.MD4Key] = string.Empty,
|
||||||
|
[Rom.MD5Key] = string.Empty,
|
||||||
|
[Rom.SHA1Key] = string.Empty,
|
||||||
|
[Rom.SHA256Key] = string.Empty,
|
||||||
|
[Rom.SHA384Key] = string.Empty,
|
||||||
|
[Rom.SHA512Key] = string.Empty,
|
||||||
|
[Rom.SpamSumKey] = string.Empty,
|
||||||
|
};
|
||||||
|
DictionaryBase other = new Rom
|
||||||
|
{
|
||||||
|
[Rom.NameKey] = "XXXXXX2",
|
||||||
|
[Rom.SizeKey] = 12345,
|
||||||
|
[Rom.CRCKey] = "XXXXXX",
|
||||||
|
[Rom.MD2Key] = "XXXXXX",
|
||||||
|
[Rom.MD4Key] = "XXXXXX",
|
||||||
|
[Rom.MD5Key] = "XXXXXX",
|
||||||
|
[Rom.SHA1Key] = "XXXXXX",
|
||||||
|
[Rom.SHA256Key] = "XXXXXX",
|
||||||
|
[Rom.SHA384Key] = "XXXXXX",
|
||||||
|
[Rom.SHA512Key] = "XXXXXX",
|
||||||
|
[Rom.SpamSumKey] = "XXXXXX",
|
||||||
|
};
|
||||||
|
|
||||||
|
bool actual = self.EqualTo(other);
|
||||||
|
Assert.True(actual);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void EqualTo_Rom_PartialMD4_True()
|
||||||
|
{
|
||||||
|
DictionaryBase self = new Rom
|
||||||
|
{
|
||||||
|
[Rom.NameKey] = "XXXXXX1",
|
||||||
|
[Rom.SizeKey] = 12345,
|
||||||
|
[Rom.CRCKey] = string.Empty,
|
||||||
|
[Rom.MD2Key] = string.Empty,
|
||||||
|
[Rom.MD4Key] = "XXXXXX",
|
||||||
|
[Rom.MD5Key] = string.Empty,
|
||||||
|
[Rom.SHA1Key] = string.Empty,
|
||||||
|
[Rom.SHA256Key] = string.Empty,
|
||||||
|
[Rom.SHA384Key] = string.Empty,
|
||||||
|
[Rom.SHA512Key] = string.Empty,
|
||||||
|
[Rom.SpamSumKey] = string.Empty,
|
||||||
|
};
|
||||||
|
DictionaryBase other = new Rom
|
||||||
|
{
|
||||||
|
[Rom.NameKey] = "XXXXXX2",
|
||||||
|
[Rom.SizeKey] = 12345,
|
||||||
|
[Rom.CRCKey] = "XXXXXX",
|
||||||
|
[Rom.MD2Key] = "XXXXXX",
|
||||||
|
[Rom.MD4Key] = "XXXXXX",
|
||||||
[Rom.MD5Key] = "XXXXXX",
|
[Rom.MD5Key] = "XXXXXX",
|
||||||
[Rom.SHA1Key] = "XXXXXX",
|
[Rom.SHA1Key] = "XXXXXX",
|
||||||
[Rom.SHA256Key] = "XXXXXX",
|
[Rom.SHA256Key] = "XXXXXX",
|
||||||
@@ -544,6 +630,8 @@ namespace SabreTools.Core.Test
|
|||||||
[Rom.NameKey] = "XXXXXX1",
|
[Rom.NameKey] = "XXXXXX1",
|
||||||
[Rom.SizeKey] = 12345,
|
[Rom.SizeKey] = 12345,
|
||||||
[Rom.CRCKey] = string.Empty,
|
[Rom.CRCKey] = string.Empty,
|
||||||
|
[Rom.MD2Key] = string.Empty,
|
||||||
|
[Rom.MD4Key] = string.Empty,
|
||||||
[Rom.MD5Key] = "XXXXXX",
|
[Rom.MD5Key] = "XXXXXX",
|
||||||
[Rom.SHA1Key] = string.Empty,
|
[Rom.SHA1Key] = string.Empty,
|
||||||
[Rom.SHA256Key] = string.Empty,
|
[Rom.SHA256Key] = string.Empty,
|
||||||
@@ -556,6 +644,8 @@ namespace SabreTools.Core.Test
|
|||||||
[Rom.NameKey] = "XXXXXX2",
|
[Rom.NameKey] = "XXXXXX2",
|
||||||
[Rom.SizeKey] = 12345,
|
[Rom.SizeKey] = 12345,
|
||||||
[Rom.CRCKey] = "XXXXXX",
|
[Rom.CRCKey] = "XXXXXX",
|
||||||
|
[Rom.MD2Key] = "XXXXXX",
|
||||||
|
[Rom.MD4Key] = "XXXXXX",
|
||||||
[Rom.MD5Key] = "XXXXXX",
|
[Rom.MD5Key] = "XXXXXX",
|
||||||
[Rom.SHA1Key] = "XXXXXX",
|
[Rom.SHA1Key] = "XXXXXX",
|
||||||
[Rom.SHA256Key] = "XXXXXX",
|
[Rom.SHA256Key] = "XXXXXX",
|
||||||
@@ -576,6 +666,8 @@ namespace SabreTools.Core.Test
|
|||||||
[Rom.NameKey] = "XXXXXX1",
|
[Rom.NameKey] = "XXXXXX1",
|
||||||
[Rom.SizeKey] = 12345,
|
[Rom.SizeKey] = 12345,
|
||||||
[Rom.CRCKey] = string.Empty,
|
[Rom.CRCKey] = string.Empty,
|
||||||
|
[Rom.MD2Key] = string.Empty,
|
||||||
|
[Rom.MD4Key] = string.Empty,
|
||||||
[Rom.MD5Key] = string.Empty,
|
[Rom.MD5Key] = string.Empty,
|
||||||
[Rom.SHA1Key] = "XXXXXX",
|
[Rom.SHA1Key] = "XXXXXX",
|
||||||
[Rom.SHA256Key] = string.Empty,
|
[Rom.SHA256Key] = string.Empty,
|
||||||
@@ -588,6 +680,8 @@ namespace SabreTools.Core.Test
|
|||||||
[Rom.NameKey] = "XXXXXX2",
|
[Rom.NameKey] = "XXXXXX2",
|
||||||
[Rom.SizeKey] = 12345,
|
[Rom.SizeKey] = 12345,
|
||||||
[Rom.CRCKey] = "XXXXXX",
|
[Rom.CRCKey] = "XXXXXX",
|
||||||
|
[Rom.MD2Key] = "XXXXXX",
|
||||||
|
[Rom.MD4Key] = "XXXXXX",
|
||||||
[Rom.MD5Key] = "XXXXXX",
|
[Rom.MD5Key] = "XXXXXX",
|
||||||
[Rom.SHA1Key] = "XXXXXX",
|
[Rom.SHA1Key] = "XXXXXX",
|
||||||
[Rom.SHA256Key] = "XXXXXX",
|
[Rom.SHA256Key] = "XXXXXX",
|
||||||
@@ -608,6 +702,8 @@ namespace SabreTools.Core.Test
|
|||||||
[Rom.NameKey] = "XXXXXX1",
|
[Rom.NameKey] = "XXXXXX1",
|
||||||
[Rom.SizeKey] = 12345,
|
[Rom.SizeKey] = 12345,
|
||||||
[Rom.CRCKey] = string.Empty,
|
[Rom.CRCKey] = string.Empty,
|
||||||
|
[Rom.MD2Key] = string.Empty,
|
||||||
|
[Rom.MD4Key] = string.Empty,
|
||||||
[Rom.MD5Key] = string.Empty,
|
[Rom.MD5Key] = string.Empty,
|
||||||
[Rom.SHA1Key] = string.Empty,
|
[Rom.SHA1Key] = string.Empty,
|
||||||
[Rom.SHA256Key] = "XXXXXX",
|
[Rom.SHA256Key] = "XXXXXX",
|
||||||
@@ -620,6 +716,8 @@ namespace SabreTools.Core.Test
|
|||||||
[Rom.NameKey] = "XXXXXX2",
|
[Rom.NameKey] = "XXXXXX2",
|
||||||
[Rom.SizeKey] = 12345,
|
[Rom.SizeKey] = 12345,
|
||||||
[Rom.CRCKey] = "XXXXXX",
|
[Rom.CRCKey] = "XXXXXX",
|
||||||
|
[Rom.MD2Key] = "XXXXXX",
|
||||||
|
[Rom.MD4Key] = "XXXXXX",
|
||||||
[Rom.MD5Key] = "XXXXXX",
|
[Rom.MD5Key] = "XXXXXX",
|
||||||
[Rom.SHA1Key] = "XXXXXX",
|
[Rom.SHA1Key] = "XXXXXX",
|
||||||
[Rom.SHA256Key] = "XXXXXX",
|
[Rom.SHA256Key] = "XXXXXX",
|
||||||
@@ -640,6 +738,8 @@ namespace SabreTools.Core.Test
|
|||||||
[Rom.NameKey] = "XXXXXX1",
|
[Rom.NameKey] = "XXXXXX1",
|
||||||
[Rom.SizeKey] = 12345,
|
[Rom.SizeKey] = 12345,
|
||||||
[Rom.CRCKey] = string.Empty,
|
[Rom.CRCKey] = string.Empty,
|
||||||
|
[Rom.MD2Key] = string.Empty,
|
||||||
|
[Rom.MD4Key] = string.Empty,
|
||||||
[Rom.MD5Key] = string.Empty,
|
[Rom.MD5Key] = string.Empty,
|
||||||
[Rom.SHA1Key] = string.Empty,
|
[Rom.SHA1Key] = string.Empty,
|
||||||
[Rom.SHA256Key] = string.Empty,
|
[Rom.SHA256Key] = string.Empty,
|
||||||
@@ -652,6 +752,8 @@ namespace SabreTools.Core.Test
|
|||||||
[Rom.NameKey] = "XXXXXX2",
|
[Rom.NameKey] = "XXXXXX2",
|
||||||
[Rom.SizeKey] = 12345,
|
[Rom.SizeKey] = 12345,
|
||||||
[Rom.CRCKey] = "XXXXXX",
|
[Rom.CRCKey] = "XXXXXX",
|
||||||
|
[Rom.MD2Key] = "XXXXXX",
|
||||||
|
[Rom.MD4Key] = "XXXXXX",
|
||||||
[Rom.MD5Key] = "XXXXXX",
|
[Rom.MD5Key] = "XXXXXX",
|
||||||
[Rom.SHA1Key] = "XXXXXX",
|
[Rom.SHA1Key] = "XXXXXX",
|
||||||
[Rom.SHA256Key] = "XXXXXX",
|
[Rom.SHA256Key] = "XXXXXX",
|
||||||
@@ -672,6 +774,8 @@ namespace SabreTools.Core.Test
|
|||||||
[Rom.NameKey] = "XXXXXX1",
|
[Rom.NameKey] = "XXXXXX1",
|
||||||
[Rom.SizeKey] = 12345,
|
[Rom.SizeKey] = 12345,
|
||||||
[Rom.CRCKey] = string.Empty,
|
[Rom.CRCKey] = string.Empty,
|
||||||
|
[Rom.MD2Key] = string.Empty,
|
||||||
|
[Rom.MD4Key] = string.Empty,
|
||||||
[Rom.MD5Key] = string.Empty,
|
[Rom.MD5Key] = string.Empty,
|
||||||
[Rom.SHA1Key] = string.Empty,
|
[Rom.SHA1Key] = string.Empty,
|
||||||
[Rom.SHA256Key] = string.Empty,
|
[Rom.SHA256Key] = string.Empty,
|
||||||
@@ -684,6 +788,8 @@ namespace SabreTools.Core.Test
|
|||||||
[Rom.NameKey] = "XXXXXX2",
|
[Rom.NameKey] = "XXXXXX2",
|
||||||
[Rom.SizeKey] = 12345,
|
[Rom.SizeKey] = 12345,
|
||||||
[Rom.CRCKey] = "XXXXXX",
|
[Rom.CRCKey] = "XXXXXX",
|
||||||
|
[Rom.MD2Key] = "XXXXXX",
|
||||||
|
[Rom.MD4Key] = "XXXXXX",
|
||||||
[Rom.MD5Key] = "XXXXXX",
|
[Rom.MD5Key] = "XXXXXX",
|
||||||
[Rom.SHA1Key] = "XXXXXX",
|
[Rom.SHA1Key] = "XXXXXX",
|
||||||
[Rom.SHA256Key] = "XXXXXX",
|
[Rom.SHA256Key] = "XXXXXX",
|
||||||
@@ -704,6 +810,8 @@ namespace SabreTools.Core.Test
|
|||||||
[Rom.NameKey] = "XXXXXX1",
|
[Rom.NameKey] = "XXXXXX1",
|
||||||
[Rom.SizeKey] = 12345,
|
[Rom.SizeKey] = 12345,
|
||||||
[Rom.CRCKey] = string.Empty,
|
[Rom.CRCKey] = string.Empty,
|
||||||
|
[Rom.MD2Key] = string.Empty,
|
||||||
|
[Rom.MD4Key] = string.Empty,
|
||||||
[Rom.MD5Key] = string.Empty,
|
[Rom.MD5Key] = string.Empty,
|
||||||
[Rom.SHA1Key] = string.Empty,
|
[Rom.SHA1Key] = string.Empty,
|
||||||
[Rom.SHA256Key] = string.Empty,
|
[Rom.SHA256Key] = string.Empty,
|
||||||
@@ -716,6 +824,8 @@ namespace SabreTools.Core.Test
|
|||||||
[Rom.NameKey] = "XXXXXX2",
|
[Rom.NameKey] = "XXXXXX2",
|
||||||
[Rom.SizeKey] = 12345,
|
[Rom.SizeKey] = 12345,
|
||||||
[Rom.CRCKey] = "XXXXXX",
|
[Rom.CRCKey] = "XXXXXX",
|
||||||
|
[Rom.MD2Key] = "XXXXXX",
|
||||||
|
[Rom.MD4Key] = "XXXXXX",
|
||||||
[Rom.MD5Key] = "XXXXXX",
|
[Rom.MD5Key] = "XXXXXX",
|
||||||
[Rom.SHA1Key] = "XXXXXX",
|
[Rom.SHA1Key] = "XXXXXX",
|
||||||
[Rom.SHA256Key] = "XXXXXX",
|
[Rom.SHA256Key] = "XXXXXX",
|
||||||
@@ -736,6 +846,8 @@ namespace SabreTools.Core.Test
|
|||||||
[Rom.NameKey] = "XXXXXX1",
|
[Rom.NameKey] = "XXXXXX1",
|
||||||
[Rom.SizeKey] = 12345,
|
[Rom.SizeKey] = 12345,
|
||||||
[Rom.CRCKey] = "XXXXXX",
|
[Rom.CRCKey] = "XXXXXX",
|
||||||
|
[Rom.MD2Key] = "XXXXXX",
|
||||||
|
[Rom.MD4Key] = "XXXXXX",
|
||||||
[Rom.MD5Key] = "XXXXXX",
|
[Rom.MD5Key] = "XXXXXX",
|
||||||
[Rom.SHA1Key] = "XXXXXX",
|
[Rom.SHA1Key] = "XXXXXX",
|
||||||
[Rom.SHA256Key] = "XXXXXX",
|
[Rom.SHA256Key] = "XXXXXX",
|
||||||
@@ -748,6 +860,8 @@ namespace SabreTools.Core.Test
|
|||||||
[Rom.NameKey] = "XXXXXX2",
|
[Rom.NameKey] = "XXXXXX2",
|
||||||
[Rom.SizeKey] = 12345,
|
[Rom.SizeKey] = 12345,
|
||||||
[Rom.CRCKey] = "XXXXXX",
|
[Rom.CRCKey] = "XXXXXX",
|
||||||
|
[Rom.MD2Key] = "XXXXXX",
|
||||||
|
[Rom.MD4Key] = "XXXXXX",
|
||||||
[Rom.MD5Key] = "XXXXXX",
|
[Rom.MD5Key] = "XXXXXX",
|
||||||
[Rom.SHA1Key] = "XXXXXX",
|
[Rom.SHA1Key] = "XXXXXX",
|
||||||
[Rom.SHA256Key] = "XXXXXX",
|
[Rom.SHA256Key] = "XXXXXX",
|
||||||
@@ -1049,6 +1163,8 @@ namespace SabreTools.Core.Test
|
|||||||
Rom self = new Rom
|
Rom self = new Rom
|
||||||
{
|
{
|
||||||
[Rom.CRCKey] = "XXXXXX",
|
[Rom.CRCKey] = "XXXXXX",
|
||||||
|
[Rom.MD2Key] = string.Empty,
|
||||||
|
[Rom.MD4Key] = "XXXXXX",
|
||||||
[Rom.MD5Key] = string.Empty,
|
[Rom.MD5Key] = string.Empty,
|
||||||
[Rom.SHA1Key] = "XXXXXX",
|
[Rom.SHA1Key] = "XXXXXX",
|
||||||
[Rom.SHA256Key] = string.Empty,
|
[Rom.SHA256Key] = string.Empty,
|
||||||
@@ -1059,6 +1175,8 @@ namespace SabreTools.Core.Test
|
|||||||
Rom other = new Rom
|
Rom other = new Rom
|
||||||
{
|
{
|
||||||
[Rom.CRCKey] = string.Empty,
|
[Rom.CRCKey] = string.Empty,
|
||||||
|
[Rom.MD2Key] = "XXXXXX",
|
||||||
|
[Rom.MD4Key] = string.Empty,
|
||||||
[Rom.MD5Key] = "XXXXXX",
|
[Rom.MD5Key] = "XXXXXX",
|
||||||
[Rom.SHA1Key] = string.Empty,
|
[Rom.SHA1Key] = string.Empty,
|
||||||
[Rom.SHA256Key] = "XXXXXX",
|
[Rom.SHA256Key] = "XXXXXX",
|
||||||
@@ -1077,6 +1195,8 @@ namespace SabreTools.Core.Test
|
|||||||
Rom self = new Rom
|
Rom self = new Rom
|
||||||
{
|
{
|
||||||
[Rom.CRCKey] = "XXXXXX",
|
[Rom.CRCKey] = "XXXXXX",
|
||||||
|
[Rom.MD2Key] = string.Empty,
|
||||||
|
[Rom.MD4Key] = string.Empty,
|
||||||
[Rom.MD5Key] = string.Empty,
|
[Rom.MD5Key] = string.Empty,
|
||||||
[Rom.SHA1Key] = string.Empty,
|
[Rom.SHA1Key] = string.Empty,
|
||||||
[Rom.SHA256Key] = string.Empty,
|
[Rom.SHA256Key] = string.Empty,
|
||||||
@@ -1087,6 +1207,72 @@ namespace SabreTools.Core.Test
|
|||||||
Rom other = new Rom
|
Rom other = new Rom
|
||||||
{
|
{
|
||||||
[Rom.CRCKey] = "XXXXXX",
|
[Rom.CRCKey] = "XXXXXX",
|
||||||
|
[Rom.MD2Key] = "XXXXXX",
|
||||||
|
[Rom.MD4Key] = "XXXXXX",
|
||||||
|
[Rom.MD5Key] = "XXXXXX",
|
||||||
|
[Rom.SHA1Key] = "XXXXXX",
|
||||||
|
[Rom.SHA256Key] = "XXXXXX",
|
||||||
|
[Rom.SHA384Key] = "XXXXXX",
|
||||||
|
[Rom.SHA512Key] = "XXXXXX",
|
||||||
|
[Rom.SpamSumKey] = "XXXXXX",
|
||||||
|
};
|
||||||
|
|
||||||
|
bool actual = self.HashMatch(other);
|
||||||
|
Assert.True(actual);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void HashMatch_Rom_PartialMD2_True()
|
||||||
|
{
|
||||||
|
Rom self = new Rom
|
||||||
|
{
|
||||||
|
[Rom.CRCKey] = string.Empty,
|
||||||
|
[Rom.MD2Key] = "XXXXXX",
|
||||||
|
[Rom.MD4Key] = string.Empty,
|
||||||
|
[Rom.MD5Key] = string.Empty,
|
||||||
|
[Rom.SHA1Key] = string.Empty,
|
||||||
|
[Rom.SHA256Key] = string.Empty,
|
||||||
|
[Rom.SHA384Key] = string.Empty,
|
||||||
|
[Rom.SHA512Key] = string.Empty,
|
||||||
|
[Rom.SpamSumKey] = string.Empty,
|
||||||
|
};
|
||||||
|
Rom other = new Rom
|
||||||
|
{
|
||||||
|
[Rom.CRCKey] = "XXXXXX",
|
||||||
|
[Rom.MD2Key] = "XXXXXX",
|
||||||
|
[Rom.MD4Key] = "XXXXXX",
|
||||||
|
[Rom.MD5Key] = "XXXXXX",
|
||||||
|
[Rom.SHA1Key] = "XXXXXX",
|
||||||
|
[Rom.SHA256Key] = "XXXXXX",
|
||||||
|
[Rom.SHA384Key] = "XXXXXX",
|
||||||
|
[Rom.SHA512Key] = "XXXXXX",
|
||||||
|
[Rom.SpamSumKey] = "XXXXXX",
|
||||||
|
};
|
||||||
|
|
||||||
|
bool actual = self.HashMatch(other);
|
||||||
|
Assert.True(actual);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void HashMatch_Rom_PartialMD4_True()
|
||||||
|
{
|
||||||
|
Rom self = new Rom
|
||||||
|
{
|
||||||
|
[Rom.CRCKey] = string.Empty,
|
||||||
|
[Rom.MD2Key] = string.Empty,
|
||||||
|
[Rom.MD4Key] = "XXXXXX",
|
||||||
|
[Rom.MD5Key] = string.Empty,
|
||||||
|
[Rom.SHA1Key] = string.Empty,
|
||||||
|
[Rom.SHA256Key] = string.Empty,
|
||||||
|
[Rom.SHA384Key] = string.Empty,
|
||||||
|
[Rom.SHA512Key] = string.Empty,
|
||||||
|
[Rom.SpamSumKey] = string.Empty,
|
||||||
|
};
|
||||||
|
Rom other = new Rom
|
||||||
|
{
|
||||||
|
[Rom.CRCKey] = "XXXXXX",
|
||||||
|
[Rom.MD2Key] = "XXXXXX",
|
||||||
|
[Rom.MD4Key] = "XXXXXX",
|
||||||
[Rom.MD5Key] = "XXXXXX",
|
[Rom.MD5Key] = "XXXXXX",
|
||||||
[Rom.SHA1Key] = "XXXXXX",
|
[Rom.SHA1Key] = "XXXXXX",
|
||||||
[Rom.SHA256Key] = "XXXXXX",
|
[Rom.SHA256Key] = "XXXXXX",
|
||||||
@@ -1105,6 +1291,8 @@ namespace SabreTools.Core.Test
|
|||||||
Rom self = new Rom
|
Rom self = new Rom
|
||||||
{
|
{
|
||||||
[Rom.CRCKey] = string.Empty,
|
[Rom.CRCKey] = string.Empty,
|
||||||
|
[Rom.MD2Key] = string.Empty,
|
||||||
|
[Rom.MD4Key] = string.Empty,
|
||||||
[Rom.MD5Key] = "XXXXXX",
|
[Rom.MD5Key] = "XXXXXX",
|
||||||
[Rom.SHA1Key] = string.Empty,
|
[Rom.SHA1Key] = string.Empty,
|
||||||
[Rom.SHA256Key] = string.Empty,
|
[Rom.SHA256Key] = string.Empty,
|
||||||
@@ -1115,6 +1303,8 @@ namespace SabreTools.Core.Test
|
|||||||
Rom other = new Rom
|
Rom other = new Rom
|
||||||
{
|
{
|
||||||
[Rom.CRCKey] = "XXXXXX",
|
[Rom.CRCKey] = "XXXXXX",
|
||||||
|
[Rom.MD2Key] = "XXXXXX",
|
||||||
|
[Rom.MD4Key] = "XXXXXX",
|
||||||
[Rom.MD5Key] = "XXXXXX",
|
[Rom.MD5Key] = "XXXXXX",
|
||||||
[Rom.SHA1Key] = "XXXXXX",
|
[Rom.SHA1Key] = "XXXXXX",
|
||||||
[Rom.SHA256Key] = "XXXXXX",
|
[Rom.SHA256Key] = "XXXXXX",
|
||||||
@@ -1133,6 +1323,8 @@ namespace SabreTools.Core.Test
|
|||||||
Rom self = new Rom
|
Rom self = new Rom
|
||||||
{
|
{
|
||||||
[Rom.CRCKey] = string.Empty,
|
[Rom.CRCKey] = string.Empty,
|
||||||
|
[Rom.MD2Key] = string.Empty,
|
||||||
|
[Rom.MD4Key] = string.Empty,
|
||||||
[Rom.MD5Key] = string.Empty,
|
[Rom.MD5Key] = string.Empty,
|
||||||
[Rom.SHA1Key] = "XXXXXX",
|
[Rom.SHA1Key] = "XXXXXX",
|
||||||
[Rom.SHA256Key] = string.Empty,
|
[Rom.SHA256Key] = string.Empty,
|
||||||
@@ -1143,6 +1335,8 @@ namespace SabreTools.Core.Test
|
|||||||
Rom other = new Rom
|
Rom other = new Rom
|
||||||
{
|
{
|
||||||
[Rom.CRCKey] = "XXXXXX",
|
[Rom.CRCKey] = "XXXXXX",
|
||||||
|
[Rom.MD2Key] = "XXXXXX",
|
||||||
|
[Rom.MD4Key] = "XXXXXX",
|
||||||
[Rom.MD5Key] = "XXXXXX",
|
[Rom.MD5Key] = "XXXXXX",
|
||||||
[Rom.SHA1Key] = "XXXXXX",
|
[Rom.SHA1Key] = "XXXXXX",
|
||||||
[Rom.SHA256Key] = "XXXXXX",
|
[Rom.SHA256Key] = "XXXXXX",
|
||||||
@@ -1161,6 +1355,8 @@ namespace SabreTools.Core.Test
|
|||||||
Rom self = new Rom
|
Rom self = new Rom
|
||||||
{
|
{
|
||||||
[Rom.CRCKey] = string.Empty,
|
[Rom.CRCKey] = string.Empty,
|
||||||
|
[Rom.MD2Key] = string.Empty,
|
||||||
|
[Rom.MD4Key] = string.Empty,
|
||||||
[Rom.MD5Key] = string.Empty,
|
[Rom.MD5Key] = string.Empty,
|
||||||
[Rom.SHA1Key] = string.Empty,
|
[Rom.SHA1Key] = string.Empty,
|
||||||
[Rom.SHA256Key] = "XXXXXX",
|
[Rom.SHA256Key] = "XXXXXX",
|
||||||
@@ -1171,6 +1367,8 @@ namespace SabreTools.Core.Test
|
|||||||
Rom other = new Rom
|
Rom other = new Rom
|
||||||
{
|
{
|
||||||
[Rom.CRCKey] = "XXXXXX",
|
[Rom.CRCKey] = "XXXXXX",
|
||||||
|
[Rom.MD2Key] = "XXXXXX",
|
||||||
|
[Rom.MD4Key] = "XXXXXX",
|
||||||
[Rom.MD5Key] = "XXXXXX",
|
[Rom.MD5Key] = "XXXXXX",
|
||||||
[Rom.SHA1Key] = "XXXXXX",
|
[Rom.SHA1Key] = "XXXXXX",
|
||||||
[Rom.SHA256Key] = "XXXXXX",
|
[Rom.SHA256Key] = "XXXXXX",
|
||||||
@@ -1189,6 +1387,8 @@ namespace SabreTools.Core.Test
|
|||||||
Rom self = new Rom
|
Rom self = new Rom
|
||||||
{
|
{
|
||||||
[Rom.CRCKey] = string.Empty,
|
[Rom.CRCKey] = string.Empty,
|
||||||
|
[Rom.MD2Key] = string.Empty,
|
||||||
|
[Rom.MD4Key] = string.Empty,
|
||||||
[Rom.MD5Key] = string.Empty,
|
[Rom.MD5Key] = string.Empty,
|
||||||
[Rom.SHA1Key] = string.Empty,
|
[Rom.SHA1Key] = string.Empty,
|
||||||
[Rom.SHA256Key] = string.Empty,
|
[Rom.SHA256Key] = string.Empty,
|
||||||
@@ -1199,6 +1399,8 @@ namespace SabreTools.Core.Test
|
|||||||
Rom other = new Rom
|
Rom other = new Rom
|
||||||
{
|
{
|
||||||
[Rom.CRCKey] = "XXXXXX",
|
[Rom.CRCKey] = "XXXXXX",
|
||||||
|
[Rom.MD2Key] = "XXXXXX",
|
||||||
|
[Rom.MD4Key] = "XXXXXX",
|
||||||
[Rom.MD5Key] = "XXXXXX",
|
[Rom.MD5Key] = "XXXXXX",
|
||||||
[Rom.SHA1Key] = "XXXXXX",
|
[Rom.SHA1Key] = "XXXXXX",
|
||||||
[Rom.SHA256Key] = "XXXXXX",
|
[Rom.SHA256Key] = "XXXXXX",
|
||||||
@@ -1217,6 +1419,8 @@ namespace SabreTools.Core.Test
|
|||||||
Rom self = new Rom
|
Rom self = new Rom
|
||||||
{
|
{
|
||||||
[Rom.CRCKey] = string.Empty,
|
[Rom.CRCKey] = string.Empty,
|
||||||
|
[Rom.MD2Key] = string.Empty,
|
||||||
|
[Rom.MD4Key] = string.Empty,
|
||||||
[Rom.MD5Key] = string.Empty,
|
[Rom.MD5Key] = string.Empty,
|
||||||
[Rom.SHA1Key] = string.Empty,
|
[Rom.SHA1Key] = string.Empty,
|
||||||
[Rom.SHA256Key] = string.Empty,
|
[Rom.SHA256Key] = string.Empty,
|
||||||
@@ -1227,6 +1431,8 @@ namespace SabreTools.Core.Test
|
|||||||
Rom other = new Rom
|
Rom other = new Rom
|
||||||
{
|
{
|
||||||
[Rom.CRCKey] = "XXXXXX",
|
[Rom.CRCKey] = "XXXXXX",
|
||||||
|
[Rom.MD2Key] = "XXXXXX",
|
||||||
|
[Rom.MD4Key] = "XXXXXX",
|
||||||
[Rom.MD5Key] = "XXXXXX",
|
[Rom.MD5Key] = "XXXXXX",
|
||||||
[Rom.SHA1Key] = "XXXXXX",
|
[Rom.SHA1Key] = "XXXXXX",
|
||||||
[Rom.SHA256Key] = "XXXXXX",
|
[Rom.SHA256Key] = "XXXXXX",
|
||||||
@@ -1245,6 +1451,8 @@ namespace SabreTools.Core.Test
|
|||||||
Rom self = new Rom
|
Rom self = new Rom
|
||||||
{
|
{
|
||||||
[Rom.CRCKey] = string.Empty,
|
[Rom.CRCKey] = string.Empty,
|
||||||
|
[Rom.MD2Key] = string.Empty,
|
||||||
|
[Rom.MD4Key] = string.Empty,
|
||||||
[Rom.MD5Key] = string.Empty,
|
[Rom.MD5Key] = string.Empty,
|
||||||
[Rom.SHA1Key] = string.Empty,
|
[Rom.SHA1Key] = string.Empty,
|
||||||
[Rom.SHA256Key] = string.Empty,
|
[Rom.SHA256Key] = string.Empty,
|
||||||
@@ -1255,6 +1463,8 @@ namespace SabreTools.Core.Test
|
|||||||
Rom other = new Rom
|
Rom other = new Rom
|
||||||
{
|
{
|
||||||
[Rom.CRCKey] = "XXXXXX",
|
[Rom.CRCKey] = "XXXXXX",
|
||||||
|
[Rom.MD2Key] = "XXXXXX",
|
||||||
|
[Rom.MD4Key] = "XXXXXX",
|
||||||
[Rom.MD5Key] = "XXXXXX",
|
[Rom.MD5Key] = "XXXXXX",
|
||||||
[Rom.SHA1Key] = "XXXXXX",
|
[Rom.SHA1Key] = "XXXXXX",
|
||||||
[Rom.SHA256Key] = "XXXXXX",
|
[Rom.SHA256Key] = "XXXXXX",
|
||||||
@@ -1273,6 +1483,8 @@ namespace SabreTools.Core.Test
|
|||||||
Rom self = new Rom
|
Rom self = new Rom
|
||||||
{
|
{
|
||||||
[Rom.CRCKey] = "XXXXXX",
|
[Rom.CRCKey] = "XXXXXX",
|
||||||
|
[Rom.MD2Key] = "XXXXXX",
|
||||||
|
[Rom.MD4Key] = "XXXXXX",
|
||||||
[Rom.MD5Key] = "XXXXXX",
|
[Rom.MD5Key] = "XXXXXX",
|
||||||
[Rom.SHA1Key] = "XXXXXX",
|
[Rom.SHA1Key] = "XXXXXX",
|
||||||
[Rom.SHA256Key] = "XXXXXX",
|
[Rom.SHA256Key] = "XXXXXX",
|
||||||
@@ -1283,6 +1495,8 @@ namespace SabreTools.Core.Test
|
|||||||
Rom other = new Rom
|
Rom other = new Rom
|
||||||
{
|
{
|
||||||
[Rom.CRCKey] = "XXXXXX",
|
[Rom.CRCKey] = "XXXXXX",
|
||||||
|
[Rom.MD2Key] = "XXXXXX",
|
||||||
|
[Rom.MD4Key] = "XXXXXX",
|
||||||
[Rom.MD5Key] = "XXXXXX",
|
[Rom.MD5Key] = "XXXXXX",
|
||||||
[Rom.SHA1Key] = "XXXXXX",
|
[Rom.SHA1Key] = "XXXXXX",
|
||||||
[Rom.SHA256Key] = "XXXXXX",
|
[Rom.SHA256Key] = "XXXXXX",
|
||||||
@@ -1471,6 +1685,8 @@ namespace SabreTools.Core.Test
|
|||||||
DictionaryBase self = new Rom
|
DictionaryBase self = new Rom
|
||||||
{
|
{
|
||||||
[Rom.CRCKey] = "XXXXXX",
|
[Rom.CRCKey] = "XXXXXX",
|
||||||
|
[Rom.MD2Key] = "XXXXXX",
|
||||||
|
[Rom.MD4Key] = "XXXXXX",
|
||||||
[Rom.MD5Key] = "XXXXXX",
|
[Rom.MD5Key] = "XXXXXX",
|
||||||
[Rom.SHA1Key] = "XXXXXX",
|
[Rom.SHA1Key] = "XXXXXX",
|
||||||
[Rom.SHA256Key] = "XXXXXX",
|
[Rom.SHA256Key] = "XXXXXX",
|
||||||
@@ -1489,6 +1705,48 @@ namespace SabreTools.Core.Test
|
|||||||
DictionaryBase self = new Rom
|
DictionaryBase self = new Rom
|
||||||
{
|
{
|
||||||
[Rom.CRCKey] = ZeroHash.CRC32Str,
|
[Rom.CRCKey] = ZeroHash.CRC32Str,
|
||||||
|
[Rom.MD2Key] = string.Empty,
|
||||||
|
[Rom.MD4Key] = string.Empty,
|
||||||
|
[Rom.MD5Key] = string.Empty,
|
||||||
|
[Rom.SHA1Key] = string.Empty,
|
||||||
|
[Rom.SHA256Key] = string.Empty,
|
||||||
|
[Rom.SHA384Key] = string.Empty,
|
||||||
|
[Rom.SHA512Key] = string.Empty,
|
||||||
|
[Rom.SpamSumKey] = string.Empty,
|
||||||
|
};
|
||||||
|
|
||||||
|
bool actual = self.HasZeroHash();
|
||||||
|
Assert.True(actual);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void HasZeroHash_Rom_ZeroMD2_True()
|
||||||
|
{
|
||||||
|
DictionaryBase self = new Rom
|
||||||
|
{
|
||||||
|
[Rom.CRCKey] = string.Empty,
|
||||||
|
[Rom.MD2Key] = ZeroHash.GetString(HashType.MD2),
|
||||||
|
[Rom.MD4Key] = string.Empty,
|
||||||
|
[Rom.MD5Key] = string.Empty,
|
||||||
|
[Rom.SHA1Key] = string.Empty,
|
||||||
|
[Rom.SHA256Key] = string.Empty,
|
||||||
|
[Rom.SHA384Key] = string.Empty,
|
||||||
|
[Rom.SHA512Key] = string.Empty,
|
||||||
|
[Rom.SpamSumKey] = string.Empty,
|
||||||
|
};
|
||||||
|
|
||||||
|
bool actual = self.HasZeroHash();
|
||||||
|
Assert.True(actual);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void HasZeroHash_Rom_ZeroMD4_True()
|
||||||
|
{
|
||||||
|
DictionaryBase self = new Rom
|
||||||
|
{
|
||||||
|
[Rom.CRCKey] = string.Empty,
|
||||||
|
[Rom.MD2Key] = string.Empty,
|
||||||
|
[Rom.MD4Key] = ZeroHash.GetString(HashType.MD4),
|
||||||
[Rom.MD5Key] = string.Empty,
|
[Rom.MD5Key] = string.Empty,
|
||||||
[Rom.SHA1Key] = string.Empty,
|
[Rom.SHA1Key] = string.Empty,
|
||||||
[Rom.SHA256Key] = string.Empty,
|
[Rom.SHA256Key] = string.Empty,
|
||||||
@@ -1507,6 +1765,8 @@ namespace SabreTools.Core.Test
|
|||||||
DictionaryBase self = new Rom
|
DictionaryBase self = new Rom
|
||||||
{
|
{
|
||||||
[Rom.CRCKey] = string.Empty,
|
[Rom.CRCKey] = string.Empty,
|
||||||
|
[Rom.MD2Key] = string.Empty,
|
||||||
|
[Rom.MD4Key] = string.Empty,
|
||||||
[Rom.MD5Key] = ZeroHash.MD5Str,
|
[Rom.MD5Key] = ZeroHash.MD5Str,
|
||||||
[Rom.SHA1Key] = string.Empty,
|
[Rom.SHA1Key] = string.Empty,
|
||||||
[Rom.SHA256Key] = string.Empty,
|
[Rom.SHA256Key] = string.Empty,
|
||||||
@@ -1525,6 +1785,8 @@ namespace SabreTools.Core.Test
|
|||||||
DictionaryBase self = new Rom
|
DictionaryBase self = new Rom
|
||||||
{
|
{
|
||||||
[Rom.CRCKey] = string.Empty,
|
[Rom.CRCKey] = string.Empty,
|
||||||
|
[Rom.MD2Key] = string.Empty,
|
||||||
|
[Rom.MD4Key] = string.Empty,
|
||||||
[Rom.MD5Key] = string.Empty,
|
[Rom.MD5Key] = string.Empty,
|
||||||
[Rom.SHA1Key] = ZeroHash.SHA1Str,
|
[Rom.SHA1Key] = ZeroHash.SHA1Str,
|
||||||
[Rom.SHA256Key] = string.Empty,
|
[Rom.SHA256Key] = string.Empty,
|
||||||
@@ -1543,6 +1805,8 @@ namespace SabreTools.Core.Test
|
|||||||
DictionaryBase self = new Rom
|
DictionaryBase self = new Rom
|
||||||
{
|
{
|
||||||
[Rom.CRCKey] = string.Empty,
|
[Rom.CRCKey] = string.Empty,
|
||||||
|
[Rom.MD2Key] = string.Empty,
|
||||||
|
[Rom.MD4Key] = string.Empty,
|
||||||
[Rom.MD5Key] = string.Empty,
|
[Rom.MD5Key] = string.Empty,
|
||||||
[Rom.SHA1Key] = string.Empty,
|
[Rom.SHA1Key] = string.Empty,
|
||||||
[Rom.SHA256Key] = ZeroHash.SHA256Str,
|
[Rom.SHA256Key] = ZeroHash.SHA256Str,
|
||||||
@@ -1561,6 +1825,8 @@ namespace SabreTools.Core.Test
|
|||||||
DictionaryBase self = new Rom
|
DictionaryBase self = new Rom
|
||||||
{
|
{
|
||||||
[Rom.CRCKey] = string.Empty,
|
[Rom.CRCKey] = string.Empty,
|
||||||
|
[Rom.MD2Key] = string.Empty,
|
||||||
|
[Rom.MD4Key] = string.Empty,
|
||||||
[Rom.MD5Key] = string.Empty,
|
[Rom.MD5Key] = string.Empty,
|
||||||
[Rom.SHA1Key] = string.Empty,
|
[Rom.SHA1Key] = string.Empty,
|
||||||
[Rom.SHA256Key] = string.Empty,
|
[Rom.SHA256Key] = string.Empty,
|
||||||
@@ -1579,6 +1845,8 @@ namespace SabreTools.Core.Test
|
|||||||
DictionaryBase self = new Rom
|
DictionaryBase self = new Rom
|
||||||
{
|
{
|
||||||
[Rom.CRCKey] = string.Empty,
|
[Rom.CRCKey] = string.Empty,
|
||||||
|
[Rom.MD2Key] = string.Empty,
|
||||||
|
[Rom.MD4Key] = string.Empty,
|
||||||
[Rom.MD5Key] = string.Empty,
|
[Rom.MD5Key] = string.Empty,
|
||||||
[Rom.SHA1Key] = string.Empty,
|
[Rom.SHA1Key] = string.Empty,
|
||||||
[Rom.SHA256Key] = string.Empty,
|
[Rom.SHA256Key] = string.Empty,
|
||||||
@@ -1597,6 +1865,8 @@ namespace SabreTools.Core.Test
|
|||||||
DictionaryBase self = new Rom
|
DictionaryBase self = new Rom
|
||||||
{
|
{
|
||||||
[Rom.CRCKey] = string.Empty,
|
[Rom.CRCKey] = string.Empty,
|
||||||
|
[Rom.MD2Key] = string.Empty,
|
||||||
|
[Rom.MD4Key] = string.Empty,
|
||||||
[Rom.MD5Key] = string.Empty,
|
[Rom.MD5Key] = string.Empty,
|
||||||
[Rom.SHA1Key] = string.Empty,
|
[Rom.SHA1Key] = string.Empty,
|
||||||
[Rom.SHA256Key] = string.Empty,
|
[Rom.SHA256Key] = string.Empty,
|
||||||
@@ -1615,6 +1885,8 @@ namespace SabreTools.Core.Test
|
|||||||
DictionaryBase self = new Rom
|
DictionaryBase self = new Rom
|
||||||
{
|
{
|
||||||
[Rom.CRCKey] = ZeroHash.CRC32Str,
|
[Rom.CRCKey] = ZeroHash.CRC32Str,
|
||||||
|
[Rom.MD2Key] = ZeroHash.GetString(HashType.MD2),
|
||||||
|
[Rom.MD4Key] = ZeroHash.GetString(HashType.MD4),
|
||||||
[Rom.MD5Key] = ZeroHash.MD5Str,
|
[Rom.MD5Key] = ZeroHash.MD5Str,
|
||||||
[Rom.SHA1Key] = ZeroHash.SHA1Str,
|
[Rom.SHA1Key] = ZeroHash.SHA1Str,
|
||||||
[Rom.SHA256Key] = ZeroHash.SHA256Str,
|
[Rom.SHA256Key] = ZeroHash.SHA256Str,
|
||||||
@@ -1702,6 +1974,8 @@ namespace SabreTools.Core.Test
|
|||||||
DictionaryBase other = new Rom
|
DictionaryBase other = new Rom
|
||||||
{
|
{
|
||||||
[Rom.CRCKey] = "XXXXXX",
|
[Rom.CRCKey] = "XXXXXX",
|
||||||
|
[Rom.MD2Key] = "XXXXXX",
|
||||||
|
[Rom.MD4Key] = "XXXXXX",
|
||||||
[Rom.MD5Key] = "XXXXXX",
|
[Rom.MD5Key] = "XXXXXX",
|
||||||
[Rom.SHA1Key] = "XXXXXX",
|
[Rom.SHA1Key] = "XXXXXX",
|
||||||
[Rom.SHA256Key] = "XXXXXX",
|
[Rom.SHA256Key] = "XXXXXX",
|
||||||
@@ -1804,6 +2078,24 @@ namespace SabreTools.Core.Test
|
|||||||
Assert.Equal($"_{hash}", actual);
|
Assert.Equal($"_{hash}", actual);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void GetDuplicateSuffix_Rom_MD2()
|
||||||
|
{
|
||||||
|
string hash = "XXXXXX";
|
||||||
|
DictionaryBase self = new Rom { [Rom.MD2Key] = hash };
|
||||||
|
string actual = self.GetDuplicateSuffix();
|
||||||
|
Assert.Equal($"_{hash}", actual);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void GetDuplicateSuffix_Rom_MD4()
|
||||||
|
{
|
||||||
|
string hash = "XXXXXX";
|
||||||
|
DictionaryBase self = new Rom { [Rom.MD4Key] = hash };
|
||||||
|
string actual = self.GetDuplicateSuffix();
|
||||||
|
Assert.Equal($"_{hash}", actual);
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void GetDuplicateSuffix_Rom_MD5()
|
public void GetDuplicateSuffix_Rom_MD5()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -35,6 +35,54 @@ namespace SabreTools.Core.Test.Tools
|
|||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region NormalizeMD2
|
||||||
|
|
||||||
|
[Theory]
|
||||||
|
[InlineData(null, null)]
|
||||||
|
[InlineData("", "")]
|
||||||
|
[InlineData("-", "")]
|
||||||
|
[InlineData("_", "")]
|
||||||
|
[InlineData("0x", "")]
|
||||||
|
[InlineData("1234", "00000000000000000000000000001234")]
|
||||||
|
[InlineData("0x1234", "00000000000000000000000000001234")]
|
||||||
|
[InlineData("1234ABCD1234ABCD1234ABCD1234ABCDE", "")]
|
||||||
|
[InlineData("0x1234ABCD1234ABCD1234ABCD1234ABCDE", "")]
|
||||||
|
[InlineData("1234ABCD1234ABCD1234ABCD1234ABCD", "1234abcd1234abcd1234abcd1234abcd")]
|
||||||
|
[InlineData("0x1234ABCD1234ABCD1234ABCD1234ABCD", "1234abcd1234abcd1234abcd1234abcd")]
|
||||||
|
[InlineData("abcdefghabcdefghabcdefghabcdefgh", "")]
|
||||||
|
[InlineData("0xabcdefghabcdefghabcdefghabcdefgh", "")]
|
||||||
|
public void NormalizeMD2Test(string? hash, string? expected)
|
||||||
|
{
|
||||||
|
string? actual = TextHelper.NormalizeMD2(hash);
|
||||||
|
Assert.Equal(expected, actual);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region NormalizeMD4
|
||||||
|
|
||||||
|
[Theory]
|
||||||
|
[InlineData(null, null)]
|
||||||
|
[InlineData("", "")]
|
||||||
|
[InlineData("-", "")]
|
||||||
|
[InlineData("_", "")]
|
||||||
|
[InlineData("0x", "")]
|
||||||
|
[InlineData("1234", "00000000000000000000000000001234")]
|
||||||
|
[InlineData("0x1234", "00000000000000000000000000001234")]
|
||||||
|
[InlineData("1234ABCD1234ABCD1234ABCD1234ABCDE", "")]
|
||||||
|
[InlineData("0x1234ABCD1234ABCD1234ABCD1234ABCDE", "")]
|
||||||
|
[InlineData("1234ABCD1234ABCD1234ABCD1234ABCD", "1234abcd1234abcd1234abcd1234abcd")]
|
||||||
|
[InlineData("0x1234ABCD1234ABCD1234ABCD1234ABCD", "1234abcd1234abcd1234abcd1234abcd")]
|
||||||
|
[InlineData("abcdefghabcdefghabcdefghabcdefgh", "")]
|
||||||
|
[InlineData("0xabcdefghabcdefghabcdefghabcdefgh", "")]
|
||||||
|
public void NormalizeMD4Test(string? hash, string? expected)
|
||||||
|
{
|
||||||
|
string? actual = TextHelper.NormalizeMD4(hash);
|
||||||
|
Assert.Equal(expected, actual);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
#region NormalizeMD5
|
#region NormalizeMD5
|
||||||
|
|
||||||
[Theory]
|
[Theory]
|
||||||
|
|||||||
@@ -319,7 +319,8 @@ namespace SabreTools.Core
|
|||||||
string? otherSha1 = other.ReadString(Disk.SHA1Key);
|
string? otherSha1 = other.ReadString(Disk.SHA1Key);
|
||||||
bool conditionalSha1 = Tools.Utilities.ConditionalHashEquals(selfSha1, otherSha1);
|
bool conditionalSha1 = Tools.Utilities.ConditionalHashEquals(selfSha1, otherSha1);
|
||||||
|
|
||||||
return conditionalMd5 && conditionalSha1;
|
return conditionalMd5
|
||||||
|
&& conditionalSha1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -352,7 +353,10 @@ namespace SabreTools.Core
|
|||||||
string? otherSpamSum = other.ReadString(Media.SpamSumKey);
|
string? otherSpamSum = other.ReadString(Media.SpamSumKey);
|
||||||
bool conditionalSpamSum = Tools.Utilities.ConditionalHashEquals(selfSpamSum, otherSpamSum);
|
bool conditionalSpamSum = Tools.Utilities.ConditionalHashEquals(selfSpamSum, otherSpamSum);
|
||||||
|
|
||||||
return conditionalMd5 && conditionalSha1 && conditionalSha256 && conditionalSpamSum;
|
return conditionalMd5
|
||||||
|
&& conditionalSha1
|
||||||
|
&& conditionalSha256
|
||||||
|
&& conditionalSpamSum;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -373,6 +377,14 @@ namespace SabreTools.Core
|
|||||||
string? otherCrc = other.ReadString(Rom.CRCKey);
|
string? otherCrc = other.ReadString(Rom.CRCKey);
|
||||||
bool conditionalCrc = Tools.Utilities.ConditionalHashEquals(selfCrc, otherCrc);
|
bool conditionalCrc = Tools.Utilities.ConditionalHashEquals(selfCrc, otherCrc);
|
||||||
|
|
||||||
|
string? selfMd2 = self.ReadString(Rom.MD2Key);
|
||||||
|
string? otherMd2 = other.ReadString(Rom.MD2Key);
|
||||||
|
bool conditionalMd2 = Tools.Utilities.ConditionalHashEquals(selfMd2, otherMd2);
|
||||||
|
|
||||||
|
string? selfMd4 = self.ReadString(Rom.MD4Key);
|
||||||
|
string? otherMd4 = other.ReadString(Rom.MD4Key);
|
||||||
|
bool conditionalMd4 = Tools.Utilities.ConditionalHashEquals(selfMd4, otherMd4);
|
||||||
|
|
||||||
string? selfMd5 = self.ReadString(Rom.MD5Key);
|
string? selfMd5 = self.ReadString(Rom.MD5Key);
|
||||||
string? otherMd5 = other.ReadString(Rom.MD5Key);
|
string? otherMd5 = other.ReadString(Rom.MD5Key);
|
||||||
bool conditionalMd5 = Tools.Utilities.ConditionalHashEquals(selfMd5, otherMd5);
|
bool conditionalMd5 = Tools.Utilities.ConditionalHashEquals(selfMd5, otherMd5);
|
||||||
@@ -397,7 +409,15 @@ namespace SabreTools.Core
|
|||||||
string? otherSpamSum = other.ReadString(Rom.SpamSumKey);
|
string? otherSpamSum = other.ReadString(Rom.SpamSumKey);
|
||||||
bool conditionalSpamSum = Tools.Utilities.ConditionalHashEquals(selfSpamSum, otherSpamSum);
|
bool conditionalSpamSum = Tools.Utilities.ConditionalHashEquals(selfSpamSum, otherSpamSum);
|
||||||
|
|
||||||
return conditionalCrc && conditionalMd5 && conditionalSha1 && conditionalSha256 && conditionalSha384 && conditionalSha512 && conditionalSpamSum;
|
return conditionalCrc
|
||||||
|
&& conditionalMd2
|
||||||
|
&& conditionalMd4
|
||||||
|
&& conditionalMd5
|
||||||
|
&& conditionalSha1
|
||||||
|
&& conditionalSha256
|
||||||
|
&& conditionalSha384
|
||||||
|
&& conditionalSha512
|
||||||
|
&& conditionalSpamSum;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -439,7 +459,8 @@ namespace SabreTools.Core
|
|||||||
bool sha1Null = string.IsNullOrEmpty(self.ReadString(Disk.SHA1Key));
|
bool sha1Null = string.IsNullOrEmpty(self.ReadString(Disk.SHA1Key));
|
||||||
sha1Null ^= string.IsNullOrEmpty(other.ReadString(Disk.SHA1Key));
|
sha1Null ^= string.IsNullOrEmpty(other.ReadString(Disk.SHA1Key));
|
||||||
|
|
||||||
return !md5Null || !sha1Null;
|
return !md5Null
|
||||||
|
|| !sha1Null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -459,7 +480,10 @@ namespace SabreTools.Core
|
|||||||
bool spamsumNull = string.IsNullOrEmpty(self.ReadString(Media.SpamSumKey));
|
bool spamsumNull = string.IsNullOrEmpty(self.ReadString(Media.SpamSumKey));
|
||||||
spamsumNull ^= string.IsNullOrEmpty(other.ReadString(Media.SpamSumKey));
|
spamsumNull ^= string.IsNullOrEmpty(other.ReadString(Media.SpamSumKey));
|
||||||
|
|
||||||
return !md5Null || !sha1Null || !sha256Null || !spamsumNull;
|
return !md5Null
|
||||||
|
|| !sha1Null
|
||||||
|
|| !sha256Null
|
||||||
|
|| !spamsumNull;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -470,6 +494,12 @@ namespace SabreTools.Core
|
|||||||
bool crcNull = string.IsNullOrEmpty(self.ReadString(Rom.CRCKey));
|
bool crcNull = string.IsNullOrEmpty(self.ReadString(Rom.CRCKey));
|
||||||
crcNull ^= string.IsNullOrEmpty(other.ReadString(Rom.CRCKey));
|
crcNull ^= string.IsNullOrEmpty(other.ReadString(Rom.CRCKey));
|
||||||
|
|
||||||
|
bool md2Null = string.IsNullOrEmpty(self.ReadString(Rom.MD2Key));
|
||||||
|
md2Null ^= string.IsNullOrEmpty(other.ReadString(Rom.MD2Key));
|
||||||
|
|
||||||
|
bool md4Null = string.IsNullOrEmpty(self.ReadString(Rom.MD4Key));
|
||||||
|
md4Null ^= string.IsNullOrEmpty(other.ReadString(Rom.MD4Key));
|
||||||
|
|
||||||
bool md5Null = string.IsNullOrEmpty(self.ReadString(Rom.MD5Key));
|
bool md5Null = string.IsNullOrEmpty(self.ReadString(Rom.MD5Key));
|
||||||
md5Null ^= string.IsNullOrEmpty(other.ReadString(Rom.MD5Key));
|
md5Null ^= string.IsNullOrEmpty(other.ReadString(Rom.MD5Key));
|
||||||
|
|
||||||
@@ -488,7 +518,15 @@ namespace SabreTools.Core
|
|||||||
bool spamsumNull = string.IsNullOrEmpty(self.ReadString(Rom.SpamSumKey));
|
bool spamsumNull = string.IsNullOrEmpty(self.ReadString(Rom.SpamSumKey));
|
||||||
spamsumNull ^= string.IsNullOrEmpty(other.ReadString(Rom.SpamSumKey));
|
spamsumNull ^= string.IsNullOrEmpty(other.ReadString(Rom.SpamSumKey));
|
||||||
|
|
||||||
return !crcNull || !md5Null || !sha1Null || !sha256Null || !sha384Null || !sha512Null || !spamsumNull;
|
return !crcNull
|
||||||
|
|| !md2Null
|
||||||
|
|| !md4Null
|
||||||
|
|| !md5Null
|
||||||
|
|| !sha1Null
|
||||||
|
|| !sha256Null
|
||||||
|
|| !sha384Null
|
||||||
|
|| !sha512Null
|
||||||
|
|| !spamsumNull;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -499,7 +537,8 @@ namespace SabreTools.Core
|
|||||||
bool md5Null = string.IsNullOrEmpty(disk.ReadString(Disk.MD5Key));
|
bool md5Null = string.IsNullOrEmpty(disk.ReadString(Disk.MD5Key));
|
||||||
bool sha1Null = string.IsNullOrEmpty(disk.ReadString(Disk.SHA1Key));
|
bool sha1Null = string.IsNullOrEmpty(disk.ReadString(Disk.SHA1Key));
|
||||||
|
|
||||||
return !md5Null || !sha1Null;
|
return !md5Null
|
||||||
|
|| !sha1Null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -512,7 +551,10 @@ namespace SabreTools.Core
|
|||||||
bool sha256Null = string.IsNullOrEmpty(media.ReadString(Media.SHA256Key));
|
bool sha256Null = string.IsNullOrEmpty(media.ReadString(Media.SHA256Key));
|
||||||
bool spamsumNull = string.IsNullOrEmpty(media.ReadString(Media.SpamSumKey));
|
bool spamsumNull = string.IsNullOrEmpty(media.ReadString(Media.SpamSumKey));
|
||||||
|
|
||||||
return !md5Null || !sha1Null || !sha256Null || !spamsumNull;
|
return !md5Null
|
||||||
|
|| !sha1Null
|
||||||
|
|| !sha256Null
|
||||||
|
|| !spamsumNull;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -521,6 +563,8 @@ namespace SabreTools.Core
|
|||||||
private static bool HasHashes(this Rom rom)
|
private static bool HasHashes(this Rom rom)
|
||||||
{
|
{
|
||||||
bool crcNull = string.IsNullOrEmpty(rom.ReadString(Rom.CRCKey));
|
bool crcNull = string.IsNullOrEmpty(rom.ReadString(Rom.CRCKey));
|
||||||
|
bool md2Null = string.IsNullOrEmpty(rom.ReadString(Rom.MD2Key));
|
||||||
|
bool md4Null = string.IsNullOrEmpty(rom.ReadString(Rom.MD4Key));
|
||||||
bool md5Null = string.IsNullOrEmpty(rom.ReadString(Rom.MD5Key));
|
bool md5Null = string.IsNullOrEmpty(rom.ReadString(Rom.MD5Key));
|
||||||
bool sha1Null = string.IsNullOrEmpty(rom.ReadString(Rom.SHA1Key));
|
bool sha1Null = string.IsNullOrEmpty(rom.ReadString(Rom.SHA1Key));
|
||||||
bool sha256Null = string.IsNullOrEmpty(rom.ReadString(Rom.SHA256Key));
|
bool sha256Null = string.IsNullOrEmpty(rom.ReadString(Rom.SHA256Key));
|
||||||
@@ -528,7 +572,15 @@ namespace SabreTools.Core
|
|||||||
bool sha512Null = string.IsNullOrEmpty(rom.ReadString(Rom.SHA512Key));
|
bool sha512Null = string.IsNullOrEmpty(rom.ReadString(Rom.SHA512Key));
|
||||||
bool spamsumNull = string.IsNullOrEmpty(rom.ReadString(Rom.SpamSumKey));
|
bool spamsumNull = string.IsNullOrEmpty(rom.ReadString(Rom.SpamSumKey));
|
||||||
|
|
||||||
return !crcNull || !md5Null || !sha1Null || !sha256Null || !sha384Null || !sha512Null || !spamsumNull;
|
return !crcNull
|
||||||
|
|| !md2Null
|
||||||
|
|| !md4Null
|
||||||
|
|| !md5Null
|
||||||
|
|| !sha1Null
|
||||||
|
|| !sha256Null
|
||||||
|
|| !sha384Null
|
||||||
|
|| !sha512Null
|
||||||
|
|| !spamsumNull;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -542,7 +594,8 @@ namespace SabreTools.Core
|
|||||||
string? sha1 = disk.ReadString(Disk.SHA1Key);
|
string? sha1 = disk.ReadString(Disk.SHA1Key);
|
||||||
bool sha1Null = string.IsNullOrEmpty(sha1) || string.Equals(sha1, ZeroHash.SHA1Str, StringComparison.OrdinalIgnoreCase);
|
bool sha1Null = string.IsNullOrEmpty(sha1) || string.Equals(sha1, ZeroHash.SHA1Str, StringComparison.OrdinalIgnoreCase);
|
||||||
|
|
||||||
return md5Null && sha1Null;
|
return md5Null
|
||||||
|
&& sha1Null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -562,7 +615,10 @@ namespace SabreTools.Core
|
|||||||
string? spamsum = media.ReadString(Media.SpamSumKey);
|
string? spamsum = media.ReadString(Media.SpamSumKey);
|
||||||
bool spamsumNull = string.IsNullOrEmpty(spamsum) || string.Equals(spamsum, ZeroHash.SpamSumStr, StringComparison.OrdinalIgnoreCase);
|
bool spamsumNull = string.IsNullOrEmpty(spamsum) || string.Equals(spamsum, ZeroHash.SpamSumStr, StringComparison.OrdinalIgnoreCase);
|
||||||
|
|
||||||
return md5Null && sha1Null && sha256Null && spamsumNull;
|
return md5Null
|
||||||
|
&& sha1Null
|
||||||
|
&& sha256Null
|
||||||
|
&& spamsumNull;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -573,6 +629,12 @@ namespace SabreTools.Core
|
|||||||
string? crc = rom.ReadString(Rom.CRCKey);
|
string? crc = rom.ReadString(Rom.CRCKey);
|
||||||
bool crcNull = string.IsNullOrEmpty(crc) || string.Equals(crc, ZeroHash.CRC32Str, StringComparison.OrdinalIgnoreCase);
|
bool crcNull = string.IsNullOrEmpty(crc) || string.Equals(crc, ZeroHash.CRC32Str, StringComparison.OrdinalIgnoreCase);
|
||||||
|
|
||||||
|
string? md2 = rom.ReadString(Rom.MD2Key);
|
||||||
|
bool md2Null = string.IsNullOrEmpty(md2) || string.Equals(md2, ZeroHash.GetString(HashType.MD2), StringComparison.OrdinalIgnoreCase);
|
||||||
|
|
||||||
|
string? md4 = rom.ReadString(Rom.MD4Key);
|
||||||
|
bool md4Null = string.IsNullOrEmpty(md4) || string.Equals(md4, ZeroHash.GetString(HashType.MD4), StringComparison.OrdinalIgnoreCase);
|
||||||
|
|
||||||
string? md5 = rom.ReadString(Rom.MD5Key);
|
string? md5 = rom.ReadString(Rom.MD5Key);
|
||||||
bool md5Null = string.IsNullOrEmpty(md5) || string.Equals(md5, ZeroHash.MD5Str, StringComparison.OrdinalIgnoreCase);
|
bool md5Null = string.IsNullOrEmpty(md5) || string.Equals(md5, ZeroHash.MD5Str, StringComparison.OrdinalIgnoreCase);
|
||||||
|
|
||||||
@@ -591,7 +653,15 @@ namespace SabreTools.Core
|
|||||||
string? spamsum = rom.ReadString(Rom.SpamSumKey);
|
string? spamsum = rom.ReadString(Rom.SpamSumKey);
|
||||||
bool spamsumNull = string.IsNullOrEmpty(spamsum) || string.Equals(spamsum, ZeroHash.SpamSumStr, StringComparison.OrdinalIgnoreCase);
|
bool spamsumNull = string.IsNullOrEmpty(spamsum) || string.Equals(spamsum, ZeroHash.SpamSumStr, StringComparison.OrdinalIgnoreCase);
|
||||||
|
|
||||||
return crcNull && md5Null && sha1Null && sha256Null && sha384Null && sha512Null && spamsumNull;
|
return crcNull
|
||||||
|
&& md2Null
|
||||||
|
&& md4Null
|
||||||
|
&& md5Null
|
||||||
|
&& sha1Null
|
||||||
|
&& sha256Null
|
||||||
|
&& sha384Null
|
||||||
|
&& sha512Null
|
||||||
|
&& spamsumNull;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@@ -686,6 +756,16 @@ namespace SabreTools.Core
|
|||||||
if (string.IsNullOrEmpty(selfCrc) && !string.IsNullOrEmpty(otherCrc))
|
if (string.IsNullOrEmpty(selfCrc) && !string.IsNullOrEmpty(otherCrc))
|
||||||
self[Rom.CRCKey] = otherCrc;
|
self[Rom.CRCKey] = otherCrc;
|
||||||
|
|
||||||
|
string? selfMd2 = self.ReadString(Rom.MD2Key);
|
||||||
|
string? otherMd2 = other.ReadString(Rom.MD2Key);
|
||||||
|
if (string.IsNullOrEmpty(selfMd2) && !string.IsNullOrEmpty(otherMd2))
|
||||||
|
self[Rom.MD2Key] = otherMd2;
|
||||||
|
|
||||||
|
string? selfMd4 = self.ReadString(Rom.MD4Key);
|
||||||
|
string? otherMd4 = other.ReadString(Rom.MD4Key);
|
||||||
|
if (string.IsNullOrEmpty(selfMd4) && !string.IsNullOrEmpty(otherMd4))
|
||||||
|
self[Rom.MD4Key] = otherMd4;
|
||||||
|
|
||||||
string? selfMd5 = self.ReadString(Rom.MD5Key);
|
string? selfMd5 = self.ReadString(Rom.MD5Key);
|
||||||
string? otherMd5 = other.ReadString(Rom.MD5Key);
|
string? otherMd5 = other.ReadString(Rom.MD5Key);
|
||||||
if (string.IsNullOrEmpty(selfMd5) && !string.IsNullOrEmpty(otherMd5))
|
if (string.IsNullOrEmpty(selfMd5) && !string.IsNullOrEmpty(otherMd5))
|
||||||
@@ -787,6 +867,14 @@ namespace SabreTools.Core
|
|||||||
if (!string.IsNullOrEmpty(crc))
|
if (!string.IsNullOrEmpty(crc))
|
||||||
return $"_{crc}";
|
return $"_{crc}";
|
||||||
|
|
||||||
|
string? md2 = self.ReadString(Rom.MD2Key);
|
||||||
|
if (!string.IsNullOrEmpty(md2))
|
||||||
|
return $"_{md2}";
|
||||||
|
|
||||||
|
string? md4 = self.ReadString(Rom.MD4Key);
|
||||||
|
if (!string.IsNullOrEmpty(md4))
|
||||||
|
return $"_{md4}";
|
||||||
|
|
||||||
string? md5 = self.ReadString(Rom.MD5Key);
|
string? md5 = self.ReadString(Rom.MD5Key);
|
||||||
if (!string.IsNullOrEmpty(md5))
|
if (!string.IsNullOrEmpty(md5))
|
||||||
return $"_{md5}";
|
return $"_{md5}";
|
||||||
|
|||||||
@@ -185,6 +185,16 @@ Features and Options:
|
|||||||
overrides the default hashing behavior of including CRC32, MD5, and
|
overrides the default hashing behavior of including CRC32, MD5, and
|
||||||
SHA-1 hashes.
|
SHA-1 hashes.
|
||||||
|
|
||||||
|
-md2, --include-md2 Include MD2 in output
|
||||||
|
This enables MD2 calculation for each of the files. Adding this flag
|
||||||
|
overrides the default hashing behavior of including CRC32, MD5, and
|
||||||
|
SHA-1 hashes.
|
||||||
|
|
||||||
|
-md4, --include-md4 Include MD4 in output
|
||||||
|
This enables MD4 calculation for each of the files. Adding this flag
|
||||||
|
overrides the default hashing behavior of including CRC32, MD5, and
|
||||||
|
SHA-1 hashes.
|
||||||
|
|
||||||
-md5, --include-md5 Include MD5 in output
|
-md5, --include-md5 Include MD5 in output
|
||||||
This enables MD5 calculation for each of the files. Adding this flag
|
This enables MD5 calculation for each of the files. Adding this flag
|
||||||
overrides the default hashing behavior of including CRC32, MD5, and
|
overrides the default hashing behavior of including CRC32, MD5, and
|
||||||
@@ -248,6 +258,8 @@ Features and Options:
|
|||||||
lr, listrom - MAME Listrom
|
lr, listrom - MAME Listrom
|
||||||
lx, listxml - MAME Listxml
|
lx, listxml - MAME Listxml
|
||||||
miss, missfile - GoodTools Missfile
|
miss, missfile - GoodTools Missfile
|
||||||
|
md2 - MD2
|
||||||
|
md4 - MD4
|
||||||
md5 - MD5
|
md5 - MD5
|
||||||
msx, openmsx - openMSX Software List
|
msx, openmsx - openMSX Software List
|
||||||
ol, offlinelist - OfflineList XML
|
ol, offlinelist - OfflineList XML
|
||||||
@@ -559,6 +571,8 @@ Features and Options:
|
|||||||
lr, listrom - MAME Listrom
|
lr, listrom - MAME Listrom
|
||||||
lx, listxml - MAME Listxml
|
lx, listxml - MAME Listxml
|
||||||
miss, missfile - GoodTools Missfile
|
miss, missfile - GoodTools Missfile
|
||||||
|
md2 - MD2
|
||||||
|
md4 - MD4
|
||||||
md5 - MD5
|
md5 - MD5
|
||||||
msx, openmsx - openMSX Software List
|
msx, openmsx - openMSX Software List
|
||||||
ol, offlinelist - OfflineList XML
|
ol, offlinelist - OfflineList XML
|
||||||
@@ -610,7 +624,7 @@ Features and Options:
|
|||||||
For a DAT, or set of DATs, allow for splitting based on the best
|
For a DAT, or set of DATs, allow for splitting based on the best
|
||||||
available hash for each file within. The order of preference for the
|
available hash for each file within. The order of preference for the
|
||||||
outputted DATs is as follows: Nodump, SHA-512, SHA-384, SHA-256,
|
outputted DATs is as follows: Nodump, SHA-512, SHA-384, SHA-256,
|
||||||
SHA-1, MD5, CRC (or worse).
|
SHA-1, MD5, MD4, MD2, CRC (or worse).
|
||||||
|
|
||||||
-ls, --level Split a SuperDAT or folder by lowest available level
|
-ls, --level Split a SuperDAT or folder by lowest available level
|
||||||
For a DAT, or set of DATs, allow for splitting based on the lowest
|
For a DAT, or set of DATs, allow for splitting based on the lowest
|
||||||
@@ -724,6 +738,8 @@ Features and Options:
|
|||||||
lr, listrom - MAME Listrom
|
lr, listrom - MAME Listrom
|
||||||
lx, listxml - MAME Listxml
|
lx, listxml - MAME Listxml
|
||||||
miss, missfile - GoodTools Missfile
|
miss, missfile - GoodTools Missfile
|
||||||
|
md2 - MD2
|
||||||
|
md4 - MD4
|
||||||
md5 - MD5
|
md5 - MD5
|
||||||
msx, openmsx - openMSX Software List
|
msx, openmsx - openMSX Software List
|
||||||
ol, offlinelist - OfflineList XML
|
ol, offlinelist - OfflineList XML
|
||||||
@@ -755,6 +771,8 @@ Features and Options:
|
|||||||
- %publisher% - Replaced with game Publisher
|
- %publisher% - Replaced with game Publisher
|
||||||
- %category% - Replaced with game Category
|
- %category% - Replaced with game Category
|
||||||
- %crc% - Replaced with the CRC
|
- %crc% - Replaced with the CRC
|
||||||
|
- %md2% - Replaced with the MD2
|
||||||
|
- %md4% - Replaced with the MD4
|
||||||
- %md5% - Replaced with the MD5
|
- %md5% - Replaced with the MD5
|
||||||
- %sha1% - Replaced with the SHA-1
|
- %sha1% - Replaced with the SHA-1
|
||||||
- %sha256% - Replaced with the SHA-256
|
- %sha256% - Replaced with the SHA-256
|
||||||
|
|||||||
@@ -33,6 +33,20 @@ namespace SabreTools.Core.Tools
|
|||||||
public static string? NormalizeCRC32(string? hash)
|
public static string? NormalizeCRC32(string? hash)
|
||||||
=> NormalizeHashData(hash, Constants.CRCLength);
|
=> NormalizeHashData(hash, Constants.CRCLength);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Normalize a MD2 string and pad to the correct size
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>MD2 is the same length as MD5</remarks>
|
||||||
|
public static string? NormalizeMD2(string? hash)
|
||||||
|
=> NormalizeHashData(hash, Constants.MD5Length);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Normalize a MD4 string and pad to the correct size
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>MD4 is the same length as MD5</remarks>
|
||||||
|
public static string? NormalizeMD4(string? hash)
|
||||||
|
=> NormalizeHashData(hash, Constants.MD5Length);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Normalize a MD5 string and pad to the correct size
|
/// Normalize a MD5 string and pad to the correct size
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -978,6 +978,10 @@ namespace SabreTools.DatFiles
|
|||||||
datItem.SetFieldValue<string?>(Models.Metadata.Rom.SizeKey, datItem.GetInt64FieldValue(Models.Metadata.Rom.SizeKey).ToString());
|
datItem.SetFieldValue<string?>(Models.Metadata.Rom.SizeKey, datItem.GetInt64FieldValue(Models.Metadata.Rom.SizeKey).ToString());
|
||||||
if (datItem.GetStringFieldValue(Models.Metadata.Rom.CRCKey) != null)
|
if (datItem.GetStringFieldValue(Models.Metadata.Rom.CRCKey) != null)
|
||||||
datItem.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, TextHelper.NormalizeCRC32(datItem.GetStringFieldValue(Models.Metadata.Rom.CRCKey)));
|
datItem.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, TextHelper.NormalizeCRC32(datItem.GetStringFieldValue(Models.Metadata.Rom.CRCKey)));
|
||||||
|
if (datItem.GetStringFieldValue(Models.Metadata.Rom.MD2Key) != null)
|
||||||
|
datItem.SetFieldValue<string?>(Models.Metadata.Rom.MD2Key, TextHelper.NormalizeMD2(datItem.GetStringFieldValue(Models.Metadata.Rom.MD2Key)));
|
||||||
|
if (datItem.GetStringFieldValue(Models.Metadata.Rom.MD4Key) != null)
|
||||||
|
datItem.SetFieldValue<string?>(Models.Metadata.Rom.MD4Key, TextHelper.NormalizeMD5(datItem.GetStringFieldValue(Models.Metadata.Rom.MD4Key)));
|
||||||
if (datItem.GetStringFieldValue(Models.Metadata.Rom.MD5Key) != null)
|
if (datItem.GetStringFieldValue(Models.Metadata.Rom.MD5Key) != null)
|
||||||
datItem.SetFieldValue<string?>(Models.Metadata.Rom.MD5Key, TextHelper.NormalizeMD5(datItem.GetStringFieldValue(Models.Metadata.Rom.MD5Key)));
|
datItem.SetFieldValue<string?>(Models.Metadata.Rom.MD5Key, TextHelper.NormalizeMD5(datItem.GetStringFieldValue(Models.Metadata.Rom.MD5Key)));
|
||||||
if (datItem.GetStringFieldValue(Models.Metadata.Rom.SHA1Key) != null)
|
if (datItem.GetStringFieldValue(Models.Metadata.Rom.SHA1Key) != null)
|
||||||
@@ -1234,6 +1238,10 @@ namespace SabreTools.DatFiles
|
|||||||
romItem.SetFieldValue<string?>(Models.Metadata.Rom.SizeKey, romItem.GetInt64FieldValue(Models.Metadata.Rom.SizeKey).ToString());
|
romItem.SetFieldValue<string?>(Models.Metadata.Rom.SizeKey, romItem.GetInt64FieldValue(Models.Metadata.Rom.SizeKey).ToString());
|
||||||
if (romItem.GetStringFieldValue(Models.Metadata.Rom.CRCKey) != null)
|
if (romItem.GetStringFieldValue(Models.Metadata.Rom.CRCKey) != null)
|
||||||
romItem.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, TextHelper.NormalizeCRC32(romItem.GetStringFieldValue(Models.Metadata.Rom.CRCKey)));
|
romItem.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, TextHelper.NormalizeCRC32(romItem.GetStringFieldValue(Models.Metadata.Rom.CRCKey)));
|
||||||
|
if (romItem.GetStringFieldValue(Models.Metadata.Rom.MD2Key) != null)
|
||||||
|
romItem.SetFieldValue<string?>(Models.Metadata.Rom.MD2Key, TextHelper.NormalizeMD2(romItem.GetStringFieldValue(Models.Metadata.Rom.MD2Key)));
|
||||||
|
if (romItem.GetStringFieldValue(Models.Metadata.Rom.MD4Key) != null)
|
||||||
|
romItem.SetFieldValue<string?>(Models.Metadata.Rom.MD4Key, TextHelper.NormalizeMD4(romItem.GetStringFieldValue(Models.Metadata.Rom.MD4Key)));
|
||||||
if (romItem.GetStringFieldValue(Models.Metadata.Rom.MD5Key) != null)
|
if (romItem.GetStringFieldValue(Models.Metadata.Rom.MD5Key) != null)
|
||||||
romItem.SetFieldValue<string?>(Models.Metadata.Rom.MD5Key, TextHelper.NormalizeMD5(romItem.GetStringFieldValue(Models.Metadata.Rom.MD5Key)));
|
romItem.SetFieldValue<string?>(Models.Metadata.Rom.MD5Key, TextHelper.NormalizeMD5(romItem.GetStringFieldValue(Models.Metadata.Rom.MD5Key)));
|
||||||
if (romItem.GetStringFieldValue(Models.Metadata.Rom.SHA1Key) != null)
|
if (romItem.GetStringFieldValue(Models.Metadata.Rom.SHA1Key) != null)
|
||||||
@@ -1542,6 +1550,10 @@ namespace SabreTools.DatFiles
|
|||||||
datItem.SetFieldValue<string?>(Models.Metadata.Rom.SizeKey, datItem.GetInt64FieldValue(Models.Metadata.Rom.SizeKey).ToString());
|
datItem.SetFieldValue<string?>(Models.Metadata.Rom.SizeKey, datItem.GetInt64FieldValue(Models.Metadata.Rom.SizeKey).ToString());
|
||||||
if (datItem.GetStringFieldValue(Models.Metadata.Rom.CRCKey) != null)
|
if (datItem.GetStringFieldValue(Models.Metadata.Rom.CRCKey) != null)
|
||||||
datItem.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, TextHelper.NormalizeCRC32(datItem.GetStringFieldValue(Models.Metadata.Rom.CRCKey)));
|
datItem.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, TextHelper.NormalizeCRC32(datItem.GetStringFieldValue(Models.Metadata.Rom.CRCKey)));
|
||||||
|
if (datItem.GetStringFieldValue(Models.Metadata.Rom.MD2Key) != null)
|
||||||
|
datItem.SetFieldValue<string?>(Models.Metadata.Rom.MD2Key, TextHelper.NormalizeMD2(datItem.GetStringFieldValue(Models.Metadata.Rom.MD2Key)));
|
||||||
|
if (datItem.GetStringFieldValue(Models.Metadata.Rom.MD4Key) != null)
|
||||||
|
datItem.SetFieldValue<string?>(Models.Metadata.Rom.MD4Key, TextHelper.NormalizeMD4(datItem.GetStringFieldValue(Models.Metadata.Rom.MD4Key)));
|
||||||
if (datItem.GetStringFieldValue(Models.Metadata.Rom.MD5Key) != null)
|
if (datItem.GetStringFieldValue(Models.Metadata.Rom.MD5Key) != null)
|
||||||
datItem.SetFieldValue<string?>(Models.Metadata.Rom.MD5Key, TextHelper.NormalizeMD5(datItem.GetStringFieldValue(Models.Metadata.Rom.MD5Key)));
|
datItem.SetFieldValue<string?>(Models.Metadata.Rom.MD5Key, TextHelper.NormalizeMD5(datItem.GetStringFieldValue(Models.Metadata.Rom.MD5Key)));
|
||||||
if (datItem.GetStringFieldValue(Models.Metadata.Rom.SHA1Key) != null)
|
if (datItem.GetStringFieldValue(Models.Metadata.Rom.SHA1Key) != null)
|
||||||
|
|||||||
@@ -219,6 +219,8 @@ namespace SabreTools.DatFiles
|
|||||||
category = machine.GetStringFieldValue(Models.Metadata.Machine.CategoryKey) ?? string.Empty,
|
category = machine.GetStringFieldValue(Models.Metadata.Machine.CategoryKey) ?? string.Empty,
|
||||||
name = item.GetName() ?? type.AsEnumValue<ItemType>().AsStringValue() ?? string.Empty,
|
name = item.GetName() ?? type.AsEnumValue<ItemType>().AsStringValue() ?? string.Empty,
|
||||||
crc = string.Empty,
|
crc = string.Empty,
|
||||||
|
md2 = string.Empty,
|
||||||
|
md4 = string.Empty,
|
||||||
md5 = string.Empty,
|
md5 = string.Empty,
|
||||||
sha1 = string.Empty,
|
sha1 = string.Empty,
|
||||||
sha256 = string.Empty,
|
sha256 = string.Empty,
|
||||||
@@ -260,6 +262,8 @@ namespace SabreTools.DatFiles
|
|||||||
else if (item is Rom rom)
|
else if (item is Rom rom)
|
||||||
{
|
{
|
||||||
crc = rom.GetStringFieldValue(Models.Metadata.Rom.CRCKey) ?? string.Empty;
|
crc = rom.GetStringFieldValue(Models.Metadata.Rom.CRCKey) ?? string.Empty;
|
||||||
|
md2 = rom.GetStringFieldValue(Models.Metadata.Rom.MD2Key) ?? string.Empty;
|
||||||
|
md4 = rom.GetStringFieldValue(Models.Metadata.Rom.MD4Key) ?? string.Empty;
|
||||||
md5 = rom.GetStringFieldValue(Models.Metadata.Rom.MD5Key) ?? string.Empty;
|
md5 = rom.GetStringFieldValue(Models.Metadata.Rom.MD5Key) ?? string.Empty;
|
||||||
sha1 = rom.GetStringFieldValue(Models.Metadata.Rom.SHA1Key) ?? string.Empty;
|
sha1 = rom.GetStringFieldValue(Models.Metadata.Rom.SHA1Key) ?? string.Empty;
|
||||||
sha256 = rom.GetStringFieldValue(Models.Metadata.Rom.SHA256Key) ?? string.Empty;
|
sha256 = rom.GetStringFieldValue(Models.Metadata.Rom.SHA256Key) ?? string.Empty;
|
||||||
@@ -278,6 +282,8 @@ namespace SabreTools.DatFiles
|
|||||||
.Replace("%publisher%", publisher)
|
.Replace("%publisher%", publisher)
|
||||||
.Replace("%category%", category)
|
.Replace("%category%", category)
|
||||||
.Replace("%crc%", crc)
|
.Replace("%crc%", crc)
|
||||||
|
.Replace("%md2%", md2)
|
||||||
|
.Replace("%md4%", md4)
|
||||||
.Replace("%md5%", md5)
|
.Replace("%md5%", md5)
|
||||||
.Replace("%sha1%", sha1)
|
.Replace("%sha1%", sha1)
|
||||||
.Replace("%sha256%", sha256)
|
.Replace("%sha256%", sha256)
|
||||||
@@ -311,6 +317,8 @@ namespace SabreTools.DatFiles
|
|||||||
category = machine.Value.GetStringFieldValue(Models.Metadata.Machine.CategoryKey) ?? string.Empty,
|
category = machine.Value.GetStringFieldValue(Models.Metadata.Machine.CategoryKey) ?? string.Empty,
|
||||||
name = item.Value.GetName() ?? type.AsEnumValue<ItemType>().AsStringValue() ?? string.Empty,
|
name = item.Value.GetName() ?? type.AsEnumValue<ItemType>().AsStringValue() ?? string.Empty,
|
||||||
crc = string.Empty,
|
crc = string.Empty,
|
||||||
|
md2 = string.Empty,
|
||||||
|
md4 = string.Empty,
|
||||||
md5 = string.Empty,
|
md5 = string.Empty,
|
||||||
sha1 = string.Empty,
|
sha1 = string.Empty,
|
||||||
sha256 = string.Empty,
|
sha256 = string.Empty,
|
||||||
@@ -352,6 +360,8 @@ namespace SabreTools.DatFiles
|
|||||||
else if (item.Value is Rom rom)
|
else if (item.Value is Rom rom)
|
||||||
{
|
{
|
||||||
crc = rom.GetStringFieldValue(Models.Metadata.Rom.CRCKey) ?? string.Empty;
|
crc = rom.GetStringFieldValue(Models.Metadata.Rom.CRCKey) ?? string.Empty;
|
||||||
|
md2 = rom.GetStringFieldValue(Models.Metadata.Rom.MD2Key) ?? string.Empty;
|
||||||
|
md4 = rom.GetStringFieldValue(Models.Metadata.Rom.MD4Key) ?? string.Empty;
|
||||||
md5 = rom.GetStringFieldValue(Models.Metadata.Rom.MD5Key) ?? string.Empty;
|
md5 = rom.GetStringFieldValue(Models.Metadata.Rom.MD5Key) ?? string.Empty;
|
||||||
sha1 = rom.GetStringFieldValue(Models.Metadata.Rom.SHA1Key) ?? string.Empty;
|
sha1 = rom.GetStringFieldValue(Models.Metadata.Rom.SHA1Key) ?? string.Empty;
|
||||||
sha256 = rom.GetStringFieldValue(Models.Metadata.Rom.SHA256Key) ?? string.Empty;
|
sha256 = rom.GetStringFieldValue(Models.Metadata.Rom.SHA256Key) ?? string.Empty;
|
||||||
@@ -370,6 +380,8 @@ namespace SabreTools.DatFiles
|
|||||||
.Replace("%publisher%", publisher)
|
.Replace("%publisher%", publisher)
|
||||||
.Replace("%category%", category)
|
.Replace("%category%", category)
|
||||||
.Replace("%crc%", crc)
|
.Replace("%crc%", crc)
|
||||||
|
.Replace("%md2%", md2)
|
||||||
|
.Replace("%md4%", md4)
|
||||||
.Replace("%md5%", md5)
|
.Replace("%md5%", md5)
|
||||||
.Replace("%sha1%", sha1)
|
.Replace("%sha1%", sha1)
|
||||||
.Replace("%sha256%", sha256)
|
.Replace("%sha256%", sha256)
|
||||||
@@ -615,6 +627,10 @@ namespace SabreTools.DatFiles
|
|||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.SizeKey, Constants.SizeZero.ToString());
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.SizeKey, Constants.SizeZero.ToString());
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey,
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey,
|
||||||
rom.GetStringFieldValue(Models.Metadata.Rom.CRCKey) == "null" ? ZeroHash.CRC32Str : null);
|
rom.GetStringFieldValue(Models.Metadata.Rom.CRCKey) == "null" ? ZeroHash.CRC32Str : null);
|
||||||
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.MD2Key,
|
||||||
|
rom.GetStringFieldValue(Models.Metadata.Rom.MD2Key) == "null" ? ZeroHash.GetString(HashType.MD2) : null);
|
||||||
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.MD4Key,
|
||||||
|
rom.GetStringFieldValue(Models.Metadata.Rom.MD4Key) == "null" ? ZeroHash.GetString(HashType.MD4) : null);
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.MD5Key,
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.MD5Key,
|
||||||
rom.GetStringFieldValue(Models.Metadata.Rom.MD5Key) == "null" ? ZeroHash.MD5Str : null);
|
rom.GetStringFieldValue(Models.Metadata.Rom.MD5Key) == "null" ? ZeroHash.MD5Str : null);
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key,
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key,
|
||||||
@@ -659,6 +675,10 @@ namespace SabreTools.DatFiles
|
|||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.SizeKey, Constants.SizeZero.ToString());
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.SizeKey, Constants.SizeZero.ToString());
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey,
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey,
|
||||||
rom.GetStringFieldValue(Models.Metadata.Rom.CRCKey) == "null" ? ZeroHash.CRC32Str : null);
|
rom.GetStringFieldValue(Models.Metadata.Rom.CRCKey) == "null" ? ZeroHash.CRC32Str : null);
|
||||||
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.MD2Key,
|
||||||
|
rom.GetStringFieldValue(Models.Metadata.Rom.MD2Key) == "null" ? ZeroHash.GetString(HashType.MD2) : null);
|
||||||
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.MD4Key,
|
||||||
|
rom.GetStringFieldValue(Models.Metadata.Rom.MD4Key) == "null" ? ZeroHash.GetString(HashType.MD4) : null);
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.MD5Key,
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.MD5Key,
|
||||||
rom.GetStringFieldValue(Models.Metadata.Rom.MD5Key) == "null" ? ZeroHash.MD5Str : null);
|
rom.GetStringFieldValue(Models.Metadata.Rom.MD5Key) == "null" ? ZeroHash.MD5Str : null);
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key,
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key,
|
||||||
|
|||||||
@@ -145,6 +145,8 @@ namespace SabreTools.DatFiles
|
|||||||
{
|
{
|
||||||
TotalSize += rom.GetInt64FieldValue(Models.Metadata.Rom.SizeKey) ?? 0;
|
TotalSize += rom.GetInt64FieldValue(Models.Metadata.Rom.SizeKey) ?? 0;
|
||||||
AddHashCount(HashType.CRC32, string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.CRCKey)) ? 0 : 1);
|
AddHashCount(HashType.CRC32, string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.CRCKey)) ? 0 : 1);
|
||||||
|
AddHashCount(HashType.MD2, string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.MD2Key)) ? 0 : 1);
|
||||||
|
AddHashCount(HashType.MD4, string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.MD4Key)) ? 0 : 1);
|
||||||
AddHashCount(HashType.MD5, string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.MD5Key)) ? 0 : 1);
|
AddHashCount(HashType.MD5, string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.MD5Key)) ? 0 : 1);
|
||||||
AddHashCount(HashType.SHA1, string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.SHA1Key)) ? 0 : 1);
|
AddHashCount(HashType.SHA1, string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.SHA1Key)) ? 0 : 1);
|
||||||
AddHashCount(HashType.SHA256, string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.SHA256Key)) ? 0 : 1);
|
AddHashCount(HashType.SHA256, string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.SHA256Key)) ? 0 : 1);
|
||||||
@@ -345,6 +347,8 @@ namespace SabreTools.DatFiles
|
|||||||
{
|
{
|
||||||
TotalSize -= rom.GetInt64FieldValue(Models.Metadata.Rom.SizeKey) ?? 0;
|
TotalSize -= rom.GetInt64FieldValue(Models.Metadata.Rom.SizeKey) ?? 0;
|
||||||
RemoveHashCount(HashType.CRC32, string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.CRCKey)) ? 0 : 1);
|
RemoveHashCount(HashType.CRC32, string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.CRCKey)) ? 0 : 1);
|
||||||
|
RemoveHashCount(HashType.MD2, string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.MD2Key)) ? 0 : 1);
|
||||||
|
RemoveHashCount(HashType.MD4, string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.MD4Key)) ? 0 : 1);
|
||||||
RemoveHashCount(HashType.MD5, string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.MD5Key)) ? 0 : 1);
|
RemoveHashCount(HashType.MD5, string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.MD5Key)) ? 0 : 1);
|
||||||
RemoveHashCount(HashType.SHA1, string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.SHA1Key)) ? 0 : 1);
|
RemoveHashCount(HashType.SHA1, string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.SHA1Key)) ? 0 : 1);
|
||||||
RemoveHashCount(HashType.SHA256, string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.SHA256Key)) ? 0 : 1);
|
RemoveHashCount(HashType.SHA256, string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.SHA256Key)) ? 0 : 1);
|
||||||
|
|||||||
@@ -88,6 +88,30 @@ namespace SabreTools.DatFiles.Formats
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case HashType.MD2:
|
||||||
|
switch (datItem)
|
||||||
|
{
|
||||||
|
case Rom rom:
|
||||||
|
if (string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.MD2Key)))
|
||||||
|
missingFields.Add(Models.Metadata.Rom.MD2Key);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
missingFields.Add(Models.Metadata.Rom.MD2Key);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case HashType.MD4:
|
||||||
|
switch (datItem)
|
||||||
|
{
|
||||||
|
case Rom rom:
|
||||||
|
if (string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.MD4Key)))
|
||||||
|
missingFields.Add(Models.Metadata.Rom.MD4Key);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
missingFields.Add(Models.Metadata.Rom.MD4Key);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case HashType.MD5:
|
case HashType.MD5:
|
||||||
switch (datItem)
|
switch (datItem)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -232,6 +232,8 @@ namespace SabreTools.DatFiles
|
|||||||
{
|
{
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.SizeKey, Constants.SizeZero.ToString());
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.SizeKey, Constants.SizeZero.ToString());
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, ZeroHash.CRC32Str);
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, ZeroHash.CRC32Str);
|
||||||
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.MD2Key, null); // ZeroHash.GetString(HashType.MD2)
|
||||||
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.MD4Key, null); // ZeroHash.GetString(HashType.MD4)
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.MD5Key, ZeroHash.MD5Str);
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.MD5Key, ZeroHash.MD5Str);
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, ZeroHash.SHA1Str);
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, ZeroHash.SHA1Str);
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.SHA256Key, null); // ZeroHash.SHA256Str;
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.SHA256Key, null); // ZeroHash.SHA256Str;
|
||||||
@@ -667,6 +669,14 @@ namespace SabreTools.DatFiles
|
|||||||
else if (diskCount + mediaCount + romCount - nodumpCount == DatStatistics.GetHashCount(HashType.MD5))
|
else if (diskCount + mediaCount + romCount - nodumpCount == DatStatistics.GetHashCount(HashType.MD5))
|
||||||
return ItemKey.MD5;
|
return ItemKey.MD5;
|
||||||
|
|
||||||
|
// // If all items are supposed to have a MD4, we bucket by that
|
||||||
|
// else if (diskCount + mediaCount + romCount - nodumpCount == DatStatistics.GetHashCount(HashType.MD4))
|
||||||
|
// return ItemKey.MD4;
|
||||||
|
|
||||||
|
// // If all items are supposed to have a MD2, we bucket by that
|
||||||
|
// else if (diskCount + mediaCount + romCount - nodumpCount == DatStatistics.GetHashCount(HashType.MD2))
|
||||||
|
// return ItemKey.MD2;
|
||||||
|
|
||||||
// Otherwise, we bucket by CRC
|
// Otherwise, we bucket by CRC
|
||||||
else
|
else
|
||||||
return ItemKey.CRC;
|
return ItemKey.CRC;
|
||||||
|
|||||||
@@ -222,6 +222,8 @@ namespace SabreTools.DatFiles
|
|||||||
{
|
{
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.SizeKey, Constants.SizeZero.ToString());
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.SizeKey, Constants.SizeZero.ToString());
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, ZeroHash.CRC32Str);
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, ZeroHash.CRC32Str);
|
||||||
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.MD2Key, null); // ZeroHash.GetString(HashType.MD2)
|
||||||
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.MD4Key, null); // ZeroHash.GetString(HashType.MD4)
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.MD5Key, ZeroHash.MD5Str);
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.MD5Key, ZeroHash.MD5Str);
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, ZeroHash.SHA1Str);
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, ZeroHash.SHA1Str);
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.SHA256Key, null); // ZeroHash.SHA256Str;
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.SHA256Key, null); // ZeroHash.SHA256Str;
|
||||||
@@ -865,6 +867,14 @@ namespace SabreTools.DatFiles
|
|||||||
else if (diskCount + mediaCount + romCount - nodumpCount == DatStatistics.GetHashCount(HashType.MD5))
|
else if (diskCount + mediaCount + romCount - nodumpCount == DatStatistics.GetHashCount(HashType.MD5))
|
||||||
return ItemKey.MD5;
|
return ItemKey.MD5;
|
||||||
|
|
||||||
|
// // If all items are supposed to have a MD4, we bucket by that
|
||||||
|
// else if (diskCount + mediaCount + romCount - nodumpCount == DatStatistics.GetHashCount(HashType.MD4))
|
||||||
|
// return ItemKey.MD4;
|
||||||
|
|
||||||
|
// // If all items are supposed to have a MD2, we bucket by that
|
||||||
|
// else if (diskCount + mediaCount + romCount - nodumpCount == DatStatistics.GetHashCount(HashType.MD2))
|
||||||
|
// return ItemKey.MD2;
|
||||||
|
|
||||||
// Otherwise, we bucket by CRC
|
// Otherwise, we bucket by CRC
|
||||||
else
|
else
|
||||||
return ItemKey.CRC;
|
return ItemKey.CRC;
|
||||||
@@ -917,6 +927,8 @@ namespace SabreTools.DatFiles
|
|||||||
Disk disk => bucketBy switch
|
Disk disk => bucketBy switch
|
||||||
{
|
{
|
||||||
ItemKey.CRC => ZeroHash.CRC32Str,
|
ItemKey.CRC => ZeroHash.CRC32Str,
|
||||||
|
// ItemKey.MD2 => ZeroHash.GetString(HashType.MD2),
|
||||||
|
// ItemKey.MD4 => ZeroHash.GetString(HashType.MD4),
|
||||||
ItemKey.MD5 => disk.GetStringFieldValue(Models.Metadata.Disk.MD5Key) ?? string.Empty,
|
ItemKey.MD5 => disk.GetStringFieldValue(Models.Metadata.Disk.MD5Key) ?? string.Empty,
|
||||||
ItemKey.SHA1 => disk.GetStringFieldValue(Models.Metadata.Disk.SHA1Key) ?? string.Empty,
|
ItemKey.SHA1 => disk.GetStringFieldValue(Models.Metadata.Disk.SHA1Key) ?? string.Empty,
|
||||||
ItemKey.SHA256 => ZeroHash.SHA256Str,
|
ItemKey.SHA256 => ZeroHash.SHA256Str,
|
||||||
@@ -928,6 +940,8 @@ namespace SabreTools.DatFiles
|
|||||||
Media media => bucketBy switch
|
Media media => bucketBy switch
|
||||||
{
|
{
|
||||||
ItemKey.CRC => ZeroHash.CRC32Str,
|
ItemKey.CRC => ZeroHash.CRC32Str,
|
||||||
|
// ItemKey.MD2 => ZeroHash.GetString(HashType.MD2),
|
||||||
|
// ItemKey.MD4 => ZeroHash.GetString(HashType.MD4),
|
||||||
ItemKey.MD5 => media.GetStringFieldValue(Models.Metadata.Media.MD5Key) ?? string.Empty,
|
ItemKey.MD5 => media.GetStringFieldValue(Models.Metadata.Media.MD5Key) ?? string.Empty,
|
||||||
ItemKey.SHA1 => media.GetStringFieldValue(Models.Metadata.Media.SHA1Key) ?? string.Empty,
|
ItemKey.SHA1 => media.GetStringFieldValue(Models.Metadata.Media.SHA1Key) ?? string.Empty,
|
||||||
ItemKey.SHA256 => media.GetStringFieldValue(Models.Metadata.Media.SHA256Key) ?? string.Empty,
|
ItemKey.SHA256 => media.GetStringFieldValue(Models.Metadata.Media.SHA256Key) ?? string.Empty,
|
||||||
@@ -939,6 +953,8 @@ namespace SabreTools.DatFiles
|
|||||||
Rom rom => bucketBy switch
|
Rom rom => bucketBy switch
|
||||||
{
|
{
|
||||||
ItemKey.CRC => rom.GetStringFieldValue(Models.Metadata.Rom.CRCKey) ?? string.Empty,
|
ItemKey.CRC => rom.GetStringFieldValue(Models.Metadata.Rom.CRCKey) ?? string.Empty,
|
||||||
|
// ItemKey.MD2 => rom.GetStringFieldValue(Models.Metadata.Rom.MD2Key) ?? string.Empty,
|
||||||
|
// ItemKey.MD4 => rom.GetStringFieldValue(Models.Metadata.Rom.MD4Key) ?? string.Empty,
|
||||||
ItemKey.MD5 => rom.GetStringFieldValue(Models.Metadata.Rom.MD5Key) ?? string.Empty,
|
ItemKey.MD5 => rom.GetStringFieldValue(Models.Metadata.Rom.MD5Key) ?? string.Empty,
|
||||||
ItemKey.SHA1 => rom.GetStringFieldValue(Models.Metadata.Rom.SHA1Key) ?? string.Empty,
|
ItemKey.SHA1 => rom.GetStringFieldValue(Models.Metadata.Rom.SHA1Key) ?? string.Empty,
|
||||||
ItemKey.SHA256 => rom.GetStringFieldValue(Models.Metadata.Rom.SHA256Key) ?? string.Empty,
|
ItemKey.SHA256 => rom.GetStringFieldValue(Models.Metadata.Rom.SHA256Key) ?? string.Empty,
|
||||||
@@ -950,6 +966,8 @@ namespace SabreTools.DatFiles
|
|||||||
_ => bucketBy switch
|
_ => bucketBy switch
|
||||||
{
|
{
|
||||||
ItemKey.CRC => ZeroHash.CRC32Str,
|
ItemKey.CRC => ZeroHash.CRC32Str,
|
||||||
|
// ItemKey.MD2 => ZeroHash.GetString(HashType.MD2),
|
||||||
|
// ItemKey.MD4 => ZeroHash.GetString(HashType.MD4),
|
||||||
ItemKey.MD5 => ZeroHash.MD5Str,
|
ItemKey.MD5 => ZeroHash.MD5Str,
|
||||||
ItemKey.SHA1 => ZeroHash.SHA1Str,
|
ItemKey.SHA1 => ZeroHash.SHA1Str,
|
||||||
ItemKey.SHA256 => ZeroHash.SHA256Str,
|
ItemKey.SHA256 => ZeroHash.SHA256Str,
|
||||||
|
|||||||
@@ -162,6 +162,18 @@ namespace SabreTools.DatFiles
|
|||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, newItem.GetStringFieldValue(Models.Metadata.Rom.CRCKey));
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, newItem.GetStringFieldValue(Models.Metadata.Rom.CRCKey));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (datItemFields.Contains(Models.Metadata.Rom.MD2Key))
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.MD2Key)) && !string.IsNullOrEmpty(newItem.GetStringFieldValue(Models.Metadata.Rom.MD2Key)))
|
||||||
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.MD2Key, newItem.GetStringFieldValue(Models.Metadata.Rom.MD2Key));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (datItemFields.Contains(Models.Metadata.Rom.MD4Key))
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.MD4Key)) && !string.IsNullOrEmpty(newItem.GetStringFieldValue(Models.Metadata.Rom.MD4Key)))
|
||||||
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.MD4Key, newItem.GetStringFieldValue(Models.Metadata.Rom.MD4Key));
|
||||||
|
}
|
||||||
|
|
||||||
if (datItemFields.Contains(Models.Metadata.Rom.MD5Key))
|
if (datItemFields.Contains(Models.Metadata.Rom.MD5Key))
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.MD5Key)) && !string.IsNullOrEmpty(newItem.GetStringFieldValue(Models.Metadata.Rom.MD5Key)))
|
if (string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.MD5Key)) && !string.IsNullOrEmpty(newItem.GetStringFieldValue(Models.Metadata.Rom.MD5Key)))
|
||||||
|
|||||||
@@ -675,6 +675,8 @@ namespace SabreTools.DatItems.Test
|
|||||||
datItem.SetFieldValue(DatItem.SourceKey, new Source(0));
|
datItem.SetFieldValue(DatItem.SourceKey, new Source(0));
|
||||||
datItem.SetFieldValue(DatItem.MachineKey, machine);
|
datItem.SetFieldValue(DatItem.MachineKey, machine);
|
||||||
datItem.SetFieldValue(Models.Metadata.Rom.CRCKey, "DEADBEEF");
|
datItem.SetFieldValue(Models.Metadata.Rom.CRCKey, "DEADBEEF");
|
||||||
|
datItem.SetFieldValue(Models.Metadata.Rom.MD2Key, "DEADBEEF");
|
||||||
|
datItem.SetFieldValue(Models.Metadata.Rom.MD4Key, "DEADBEEF");
|
||||||
datItem.SetFieldValue(Models.Metadata.Rom.MD5Key, "DEADBEEF");
|
datItem.SetFieldValue(Models.Metadata.Rom.MD5Key, "DEADBEEF");
|
||||||
datItem.SetFieldValue(Models.Metadata.Rom.SHA1Key, "DEADBEEF");
|
datItem.SetFieldValue(Models.Metadata.Rom.SHA1Key, "DEADBEEF");
|
||||||
datItem.SetFieldValue(Models.Metadata.Rom.SHA256Key, "DEADBEEF");
|
datItem.SetFieldValue(Models.Metadata.Rom.SHA256Key, "DEADBEEF");
|
||||||
@@ -789,6 +791,8 @@ namespace SabreTools.DatItems.Test
|
|||||||
DatItem datItem = new Rom();
|
DatItem datItem = new Rom();
|
||||||
datItem.SetFieldValue(DatItem.MachineKey, machine);
|
datItem.SetFieldValue(DatItem.MachineKey, machine);
|
||||||
datItem.SetFieldValue(Models.Metadata.Rom.CRCKey, "DEADBEEF");
|
datItem.SetFieldValue(Models.Metadata.Rom.CRCKey, "DEADBEEF");
|
||||||
|
datItem.SetFieldValue(Models.Metadata.Rom.MD2Key, "DEADBEEF");
|
||||||
|
datItem.SetFieldValue(Models.Metadata.Rom.MD4Key, "DEADBEEF");
|
||||||
datItem.SetFieldValue(Models.Metadata.Rom.MD5Key, "DEADBEEF");
|
datItem.SetFieldValue(Models.Metadata.Rom.MD5Key, "DEADBEEF");
|
||||||
datItem.SetFieldValue(Models.Metadata.Rom.SHA1Key, "DEADBEEF");
|
datItem.SetFieldValue(Models.Metadata.Rom.SHA1Key, "DEADBEEF");
|
||||||
datItem.SetFieldValue(Models.Metadata.Rom.SHA256Key, "DEADBEEF");
|
datItem.SetFieldValue(Models.Metadata.Rom.SHA256Key, "DEADBEEF");
|
||||||
|
|||||||
@@ -198,6 +198,8 @@ namespace SabreTools.DatItems.Test
|
|||||||
string filename = "XXXXXX";
|
string filename = "XXXXXX";
|
||||||
string date = "XXXXXX";
|
string date = "XXXXXX";
|
||||||
string crc = TextHelper.NormalizeCRC32("1234abcd")!;
|
string crc = TextHelper.NormalizeCRC32("1234abcd")!;
|
||||||
|
string md2 = TextHelper.NormalizeMD2("1234abcd")!;
|
||||||
|
string md4 = TextHelper.NormalizeMD4("1234abcd")!;
|
||||||
string md5 = TextHelper.NormalizeMD5("1234abcd")!;
|
string md5 = TextHelper.NormalizeMD5("1234abcd")!;
|
||||||
string sha1 = TextHelper.NormalizeSHA1("1234abcd")!;
|
string sha1 = TextHelper.NormalizeSHA1("1234abcd")!;
|
||||||
string sha256 = TextHelper.NormalizeSHA256("1234abcd")!;
|
string sha256 = TextHelper.NormalizeSHA256("1234abcd")!;
|
||||||
@@ -210,6 +212,8 @@ namespace SabreTools.DatItems.Test
|
|||||||
Filename = filename,
|
Filename = filename,
|
||||||
Date = date,
|
Date = date,
|
||||||
CRC = crc.FromHexString(),
|
CRC = crc.FromHexString(),
|
||||||
|
MD2 = md2.FromHexString(),
|
||||||
|
MD4 = md4.FromHexString(),
|
||||||
MD5 = md5.FromHexString(),
|
MD5 = md5.FromHexString(),
|
||||||
SHA1 = sha1.FromHexString(),
|
SHA1 = sha1.FromHexString(),
|
||||||
SHA256 = sha256.FromHexString(),
|
SHA256 = sha256.FromHexString(),
|
||||||
@@ -224,6 +228,8 @@ namespace SabreTools.DatItems.Test
|
|||||||
Assert.Equal(filename, actual.GetStringFieldValue(Models.Metadata.Rom.NameKey));
|
Assert.Equal(filename, actual.GetStringFieldValue(Models.Metadata.Rom.NameKey));
|
||||||
Assert.Equal(date, actual.GetStringFieldValue(Models.Metadata.Rom.DateKey));
|
Assert.Equal(date, actual.GetStringFieldValue(Models.Metadata.Rom.DateKey));
|
||||||
Assert.Equal(crc, actual.GetStringFieldValue(Models.Metadata.Rom.CRCKey));
|
Assert.Equal(crc, actual.GetStringFieldValue(Models.Metadata.Rom.CRCKey));
|
||||||
|
Assert.Equal(md2, actual.GetStringFieldValue(Models.Metadata.Rom.MD2Key));
|
||||||
|
Assert.Equal(md4, actual.GetStringFieldValue(Models.Metadata.Rom.MD4Key));
|
||||||
Assert.Equal(md5, actual.GetStringFieldValue(Models.Metadata.Rom.MD5Key));
|
Assert.Equal(md5, actual.GetStringFieldValue(Models.Metadata.Rom.MD5Key));
|
||||||
Assert.Equal(sha1, actual.GetStringFieldValue(Models.Metadata.Rom.SHA1Key));
|
Assert.Equal(sha1, actual.GetStringFieldValue(Models.Metadata.Rom.SHA1Key));
|
||||||
Assert.Equal(sha256, actual.GetStringFieldValue(Models.Metadata.Rom.SHA256Key));
|
Assert.Equal(sha256, actual.GetStringFieldValue(Models.Metadata.Rom.SHA256Key));
|
||||||
@@ -324,6 +330,8 @@ namespace SabreTools.DatItems.Test
|
|||||||
string filename = "XXXXXX";
|
string filename = "XXXXXX";
|
||||||
string date = "XXXXXX";
|
string date = "XXXXXX";
|
||||||
string crc = TextHelper.NormalizeCRC32("1234abcd")!;
|
string crc = TextHelper.NormalizeCRC32("1234abcd")!;
|
||||||
|
string md2 = TextHelper.NormalizeMD2("1234abcd")!;
|
||||||
|
string md4 = TextHelper.NormalizeMD4("1234abcd")!;
|
||||||
string md5 = TextHelper.NormalizeMD5("1234abcd")!;
|
string md5 = TextHelper.NormalizeMD5("1234abcd")!;
|
||||||
string sha1 = TextHelper.NormalizeSHA1("1234abcd")!;
|
string sha1 = TextHelper.NormalizeSHA1("1234abcd")!;
|
||||||
string sha256 = TextHelper.NormalizeSHA256("1234abcd")!;
|
string sha256 = TextHelper.NormalizeSHA256("1234abcd")!;
|
||||||
@@ -336,6 +344,8 @@ namespace SabreTools.DatItems.Test
|
|||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.NameKey, filename);
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.NameKey, filename);
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.DateKey, date);
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.DateKey, date);
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, crc);
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, crc);
|
||||||
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.MD2Key, md2);
|
||||||
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.MD4Key, md4);
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.MD5Key, md5);
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.MD5Key, md5);
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, sha1);
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, sha1);
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.SHA256Key, sha256);
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.SHA256Key, sha256);
|
||||||
@@ -349,6 +359,8 @@ namespace SabreTools.DatItems.Test
|
|||||||
Assert.Equal(filename, actual.Filename);
|
Assert.Equal(filename, actual.Filename);
|
||||||
Assert.Equal(date, actual.Date);
|
Assert.Equal(date, actual.Date);
|
||||||
Assert.Equal(crc, actual.CRC.ToHexString());
|
Assert.Equal(crc, actual.CRC.ToHexString());
|
||||||
|
Assert.Equal(md2, actual.MD2.ToHexString());
|
||||||
|
Assert.Equal(md4, actual.MD4.ToHexString());
|
||||||
Assert.Equal(md5, actual.MD5.ToHexString());
|
Assert.Equal(md5, actual.MD5.ToHexString());
|
||||||
Assert.Equal(sha1, actual.SHA1.ToHexString());
|
Assert.Equal(sha1, actual.SHA1.ToHexString());
|
||||||
Assert.Equal(sha256, actual.SHA256.ToHexString());
|
Assert.Equal(sha256, actual.SHA256.ToHexString());
|
||||||
|
|||||||
@@ -17,6 +17,8 @@ namespace SabreTools.DatItems.Test.Formats
|
|||||||
self.FillMissingInformation(other);
|
self.FillMissingInformation(other);
|
||||||
|
|
||||||
Assert.Null(self.GetStringFieldValue(Models.Metadata.Rom.CRCKey));
|
Assert.Null(self.GetStringFieldValue(Models.Metadata.Rom.CRCKey));
|
||||||
|
Assert.Null(self.GetStringFieldValue(Models.Metadata.Rom.MD2Key));
|
||||||
|
Assert.Null(self.GetStringFieldValue(Models.Metadata.Rom.MD4Key));
|
||||||
Assert.Null(self.GetStringFieldValue(Models.Metadata.Rom.MD5Key));
|
Assert.Null(self.GetStringFieldValue(Models.Metadata.Rom.MD5Key));
|
||||||
Assert.Null(self.GetStringFieldValue(Models.Metadata.Rom.SHA1Key));
|
Assert.Null(self.GetStringFieldValue(Models.Metadata.Rom.SHA1Key));
|
||||||
Assert.Null(self.GetStringFieldValue(Models.Metadata.Rom.SHA256Key));
|
Assert.Null(self.GetStringFieldValue(Models.Metadata.Rom.SHA256Key));
|
||||||
@@ -32,6 +34,8 @@ namespace SabreTools.DatItems.Test.Formats
|
|||||||
|
|
||||||
Rom other = new Rom();
|
Rom other = new Rom();
|
||||||
other.SetFieldValue(Models.Metadata.Rom.CRCKey, "XXXXXX");
|
other.SetFieldValue(Models.Metadata.Rom.CRCKey, "XXXXXX");
|
||||||
|
other.SetFieldValue(Models.Metadata.Rom.MD2Key, "XXXXXX");
|
||||||
|
other.SetFieldValue(Models.Metadata.Rom.MD4Key, "XXXXXX");
|
||||||
other.SetFieldValue(Models.Metadata.Rom.MD5Key, "XXXXXX");
|
other.SetFieldValue(Models.Metadata.Rom.MD5Key, "XXXXXX");
|
||||||
other.SetFieldValue(Models.Metadata.Rom.SHA1Key, "XXXXXX");
|
other.SetFieldValue(Models.Metadata.Rom.SHA1Key, "XXXXXX");
|
||||||
other.SetFieldValue(Models.Metadata.Rom.SHA256Key, "XXXXXX");
|
other.SetFieldValue(Models.Metadata.Rom.SHA256Key, "XXXXXX");
|
||||||
@@ -42,6 +46,8 @@ namespace SabreTools.DatItems.Test.Formats
|
|||||||
self.FillMissingInformation(other);
|
self.FillMissingInformation(other);
|
||||||
|
|
||||||
Assert.Equal("XXXXXX", self.GetStringFieldValue(Models.Metadata.Rom.CRCKey));
|
Assert.Equal("XXXXXX", self.GetStringFieldValue(Models.Metadata.Rom.CRCKey));
|
||||||
|
Assert.Equal("XXXXXX", self.GetStringFieldValue(Models.Metadata.Rom.MD2Key));
|
||||||
|
Assert.Equal("XXXXXX", self.GetStringFieldValue(Models.Metadata.Rom.MD4Key));
|
||||||
Assert.Equal("XXXXXX", self.GetStringFieldValue(Models.Metadata.Rom.MD5Key));
|
Assert.Equal("XXXXXX", self.GetStringFieldValue(Models.Metadata.Rom.MD5Key));
|
||||||
Assert.Equal("XXXXXX", self.GetStringFieldValue(Models.Metadata.Rom.SHA1Key));
|
Assert.Equal("XXXXXX", self.GetStringFieldValue(Models.Metadata.Rom.SHA1Key));
|
||||||
Assert.Equal("XXXXXX", self.GetStringFieldValue(Models.Metadata.Rom.SHA256Key));
|
Assert.Equal("XXXXXX", self.GetStringFieldValue(Models.Metadata.Rom.SHA256Key));
|
||||||
@@ -73,6 +79,28 @@ namespace SabreTools.DatItems.Test.Formats
|
|||||||
Assert.Equal($"_{hash}", actual);
|
Assert.Equal($"_{hash}", actual);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void GetDuplicateSuffix_MD2()
|
||||||
|
{
|
||||||
|
string hash = "XXXXXX";
|
||||||
|
Rom self = new Rom();
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD2Key, hash);
|
||||||
|
|
||||||
|
string actual = self.GetDuplicateSuffix();
|
||||||
|
Assert.Equal($"_{hash}", actual);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void GetDuplicateSuffix_MD4()
|
||||||
|
{
|
||||||
|
string hash = "XXXXXX";
|
||||||
|
Rom self = new Rom();
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD4Key, hash);
|
||||||
|
|
||||||
|
string actual = self.GetDuplicateSuffix();
|
||||||
|
Assert.Equal($"_{hash}", actual);
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void GetDuplicateSuffix_MD5()
|
public void GetDuplicateSuffix_MD5()
|
||||||
{
|
{
|
||||||
@@ -156,6 +184,44 @@ namespace SabreTools.DatItems.Test.Formats
|
|||||||
{
|
{
|
||||||
Rom self = new Rom();
|
Rom self = new Rom();
|
||||||
self.SetFieldValue(Models.Metadata.Rom.CRCKey, "XXXXXX");
|
self.SetFieldValue(Models.Metadata.Rom.CRCKey, "XXXXXX");
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD2Key, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD4Key, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD5Key, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.SHA1Key, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.SHA256Key, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.SHA384Key, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.SHA512Key, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.SpamSumKey, string.Empty);
|
||||||
|
|
||||||
|
bool actual = self.HasHashes();
|
||||||
|
Assert.True(actual);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void HasHashes_MD2_True()
|
||||||
|
{
|
||||||
|
Rom self = new Rom();
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.CRCKey, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD2Key, "XXXXXX");
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD4Key, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD5Key, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.SHA1Key, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.SHA256Key, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.SHA384Key, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.SHA512Key, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.SpamSumKey, string.Empty);
|
||||||
|
|
||||||
|
bool actual = self.HasHashes();
|
||||||
|
Assert.True(actual);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void HasHashes_MD4_True()
|
||||||
|
{
|
||||||
|
Rom self = new Rom();
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.CRCKey, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD2Key, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD4Key, "XXXXXX");
|
||||||
self.SetFieldValue(Models.Metadata.Rom.MD5Key, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.MD5Key, string.Empty);
|
||||||
self.SetFieldValue(Models.Metadata.Rom.SHA1Key, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.SHA1Key, string.Empty);
|
||||||
self.SetFieldValue(Models.Metadata.Rom.SHA256Key, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.SHA256Key, string.Empty);
|
||||||
@@ -172,6 +238,8 @@ namespace SabreTools.DatItems.Test.Formats
|
|||||||
{
|
{
|
||||||
Rom self = new Rom();
|
Rom self = new Rom();
|
||||||
self.SetFieldValue(Models.Metadata.Rom.CRCKey, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.CRCKey, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD2Key, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD4Key, string.Empty);
|
||||||
self.SetFieldValue(Models.Metadata.Rom.MD5Key, "XXXXXX");
|
self.SetFieldValue(Models.Metadata.Rom.MD5Key, "XXXXXX");
|
||||||
self.SetFieldValue(Models.Metadata.Rom.SHA1Key, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.SHA1Key, string.Empty);
|
||||||
self.SetFieldValue(Models.Metadata.Rom.SHA256Key, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.SHA256Key, string.Empty);
|
||||||
@@ -188,6 +256,8 @@ namespace SabreTools.DatItems.Test.Formats
|
|||||||
{
|
{
|
||||||
Rom self = new Rom();
|
Rom self = new Rom();
|
||||||
self.SetFieldValue(Models.Metadata.Rom.CRCKey, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.CRCKey, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD2Key, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD4Key, string.Empty);
|
||||||
self.SetFieldValue(Models.Metadata.Rom.MD5Key, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.MD5Key, string.Empty);
|
||||||
self.SetFieldValue(Models.Metadata.Rom.SHA1Key, "XXXXXX");
|
self.SetFieldValue(Models.Metadata.Rom.SHA1Key, "XXXXXX");
|
||||||
self.SetFieldValue(Models.Metadata.Rom.SHA256Key, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.SHA256Key, string.Empty);
|
||||||
@@ -204,6 +274,8 @@ namespace SabreTools.DatItems.Test.Formats
|
|||||||
{
|
{
|
||||||
Rom self = new Rom();
|
Rom self = new Rom();
|
||||||
self.SetFieldValue(Models.Metadata.Rom.CRCKey, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.CRCKey, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD2Key, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD4Key, string.Empty);
|
||||||
self.SetFieldValue(Models.Metadata.Rom.MD5Key, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.MD5Key, string.Empty);
|
||||||
self.SetFieldValue(Models.Metadata.Rom.SHA1Key, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.SHA1Key, string.Empty);
|
||||||
self.SetFieldValue(Models.Metadata.Rom.SHA256Key, "XXXXXX");
|
self.SetFieldValue(Models.Metadata.Rom.SHA256Key, "XXXXXX");
|
||||||
@@ -220,6 +292,8 @@ namespace SabreTools.DatItems.Test.Formats
|
|||||||
{
|
{
|
||||||
Rom self = new Rom();
|
Rom self = new Rom();
|
||||||
self.SetFieldValue(Models.Metadata.Rom.CRCKey, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.CRCKey, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD2Key, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD4Key, string.Empty);
|
||||||
self.SetFieldValue(Models.Metadata.Rom.MD5Key, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.MD5Key, string.Empty);
|
||||||
self.SetFieldValue(Models.Metadata.Rom.SHA1Key, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.SHA1Key, string.Empty);
|
||||||
self.SetFieldValue(Models.Metadata.Rom.SHA256Key, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.SHA256Key, string.Empty);
|
||||||
@@ -236,6 +310,8 @@ namespace SabreTools.DatItems.Test.Formats
|
|||||||
{
|
{
|
||||||
Rom self = new Rom();
|
Rom self = new Rom();
|
||||||
self.SetFieldValue(Models.Metadata.Rom.CRCKey, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.CRCKey, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD2Key, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD4Key, string.Empty);
|
||||||
self.SetFieldValue(Models.Metadata.Rom.MD5Key, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.MD5Key, string.Empty);
|
||||||
self.SetFieldValue(Models.Metadata.Rom.SHA1Key, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.SHA1Key, string.Empty);
|
||||||
self.SetFieldValue(Models.Metadata.Rom.SHA256Key, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.SHA256Key, string.Empty);
|
||||||
@@ -252,6 +328,8 @@ namespace SabreTools.DatItems.Test.Formats
|
|||||||
{
|
{
|
||||||
Rom self = new Rom();
|
Rom self = new Rom();
|
||||||
self.SetFieldValue(Models.Metadata.Rom.CRCKey, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.CRCKey, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD2Key, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD4Key, string.Empty);
|
||||||
self.SetFieldValue(Models.Metadata.Rom.MD5Key, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.MD5Key, string.Empty);
|
||||||
self.SetFieldValue(Models.Metadata.Rom.SHA1Key, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.SHA1Key, string.Empty);
|
||||||
self.SetFieldValue(Models.Metadata.Rom.SHA256Key, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.SHA256Key, string.Empty);
|
||||||
@@ -268,6 +346,8 @@ namespace SabreTools.DatItems.Test.Formats
|
|||||||
{
|
{
|
||||||
Rom self = new Rom();
|
Rom self = new Rom();
|
||||||
self.SetFieldValue(Models.Metadata.Rom.CRCKey, "XXXXXX");
|
self.SetFieldValue(Models.Metadata.Rom.CRCKey, "XXXXXX");
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD2Key, "XXXXXX");
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD4Key, "XXXXXX");
|
||||||
self.SetFieldValue(Models.Metadata.Rom.MD5Key, "XXXXXX");
|
self.SetFieldValue(Models.Metadata.Rom.MD5Key, "XXXXXX");
|
||||||
self.SetFieldValue(Models.Metadata.Rom.SHA1Key, "XXXXXX");
|
self.SetFieldValue(Models.Metadata.Rom.SHA1Key, "XXXXXX");
|
||||||
self.SetFieldValue(Models.Metadata.Rom.SHA256Key, "XXXXXX");
|
self.SetFieldValue(Models.Metadata.Rom.SHA256Key, "XXXXXX");
|
||||||
@@ -323,11 +403,49 @@ namespace SabreTools.DatItems.Test.Formats
|
|||||||
Assert.True(actual);
|
Assert.True(actual);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void HasZeroHash_ZeroMD2_True()
|
||||||
|
{
|
||||||
|
Rom self = new Rom();
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.CRCKey, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD2Key, ZeroHash.GetString(HashType.MD2));
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD4Key, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD5Key, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.SHA1Key, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.SHA256Key, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.SHA384Key, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.SHA512Key, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.SpamSumKey, string.Empty);
|
||||||
|
|
||||||
|
bool actual = self.HasZeroHash();
|
||||||
|
Assert.True(actual);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void HasZeroHash_ZeroMD4_True()
|
||||||
|
{
|
||||||
|
Rom self = new Rom();
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.CRCKey, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD2Key, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD4Key, ZeroHash.GetString(HashType.MD4));
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD5Key, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.SHA1Key, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.SHA256Key, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.SHA384Key, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.SHA512Key, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.SpamSumKey, string.Empty);
|
||||||
|
|
||||||
|
bool actual = self.HasZeroHash();
|
||||||
|
Assert.True(actual);
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void HasZeroHash_ZeroMD5_True()
|
public void HasZeroHash_ZeroMD5_True()
|
||||||
{
|
{
|
||||||
Rom self = new Rom();
|
Rom self = new Rom();
|
||||||
self.SetFieldValue(Models.Metadata.Rom.CRCKey, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.CRCKey, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD2Key, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD4Key, string.Empty);
|
||||||
self.SetFieldValue(Models.Metadata.Rom.MD5Key, ZeroHash.MD5Str);
|
self.SetFieldValue(Models.Metadata.Rom.MD5Key, ZeroHash.MD5Str);
|
||||||
self.SetFieldValue(Models.Metadata.Rom.SHA1Key, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.SHA1Key, string.Empty);
|
||||||
self.SetFieldValue(Models.Metadata.Rom.SHA256Key, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.SHA256Key, string.Empty);
|
||||||
@@ -344,6 +462,8 @@ namespace SabreTools.DatItems.Test.Formats
|
|||||||
{
|
{
|
||||||
Rom self = new Rom();
|
Rom self = new Rom();
|
||||||
self.SetFieldValue(Models.Metadata.Rom.CRCKey, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.CRCKey, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD2Key, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD4Key, string.Empty);
|
||||||
self.SetFieldValue(Models.Metadata.Rom.MD5Key, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.MD5Key, string.Empty);
|
||||||
self.SetFieldValue(Models.Metadata.Rom.SHA1Key, ZeroHash.SHA1Str);
|
self.SetFieldValue(Models.Metadata.Rom.SHA1Key, ZeroHash.SHA1Str);
|
||||||
self.SetFieldValue(Models.Metadata.Rom.SHA256Key, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.SHA256Key, string.Empty);
|
||||||
@@ -360,6 +480,8 @@ namespace SabreTools.DatItems.Test.Formats
|
|||||||
{
|
{
|
||||||
Rom self = new Rom();
|
Rom self = new Rom();
|
||||||
self.SetFieldValue(Models.Metadata.Rom.CRCKey, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.CRCKey, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD2Key, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD4Key, string.Empty);
|
||||||
self.SetFieldValue(Models.Metadata.Rom.MD5Key, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.MD5Key, string.Empty);
|
||||||
self.SetFieldValue(Models.Metadata.Rom.SHA1Key, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.SHA1Key, string.Empty);
|
||||||
self.SetFieldValue(Models.Metadata.Rom.SHA256Key, ZeroHash.SHA256Str);
|
self.SetFieldValue(Models.Metadata.Rom.SHA256Key, ZeroHash.SHA256Str);
|
||||||
@@ -376,6 +498,8 @@ namespace SabreTools.DatItems.Test.Formats
|
|||||||
{
|
{
|
||||||
Rom self = new Rom();
|
Rom self = new Rom();
|
||||||
self.SetFieldValue(Models.Metadata.Rom.CRCKey, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.CRCKey, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD2Key, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD4Key, string.Empty);
|
||||||
self.SetFieldValue(Models.Metadata.Rom.MD5Key, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.MD5Key, string.Empty);
|
||||||
self.SetFieldValue(Models.Metadata.Rom.SHA1Key, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.SHA1Key, string.Empty);
|
||||||
self.SetFieldValue(Models.Metadata.Rom.SHA256Key, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.SHA256Key, string.Empty);
|
||||||
@@ -392,6 +516,8 @@ namespace SabreTools.DatItems.Test.Formats
|
|||||||
{
|
{
|
||||||
Rom self = new Rom();
|
Rom self = new Rom();
|
||||||
self.SetFieldValue(Models.Metadata.Rom.CRCKey, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.CRCKey, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD2Key, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD4Key, string.Empty);
|
||||||
self.SetFieldValue(Models.Metadata.Rom.MD5Key, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.MD5Key, string.Empty);
|
||||||
self.SetFieldValue(Models.Metadata.Rom.SHA1Key, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.SHA1Key, string.Empty);
|
||||||
self.SetFieldValue(Models.Metadata.Rom.SHA256Key, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.SHA256Key, string.Empty);
|
||||||
@@ -408,6 +534,8 @@ namespace SabreTools.DatItems.Test.Formats
|
|||||||
{
|
{
|
||||||
Rom self = new Rom();
|
Rom self = new Rom();
|
||||||
self.SetFieldValue(Models.Metadata.Rom.CRCKey, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.CRCKey, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD2Key, string.Empty);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD4Key, string.Empty);
|
||||||
self.SetFieldValue(Models.Metadata.Rom.MD5Key, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.MD5Key, string.Empty);
|
||||||
self.SetFieldValue(Models.Metadata.Rom.SHA1Key, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.SHA1Key, string.Empty);
|
||||||
self.SetFieldValue(Models.Metadata.Rom.SHA256Key, string.Empty);
|
self.SetFieldValue(Models.Metadata.Rom.SHA256Key, string.Empty);
|
||||||
@@ -424,6 +552,8 @@ namespace SabreTools.DatItems.Test.Formats
|
|||||||
{
|
{
|
||||||
Rom self = new Rom();
|
Rom self = new Rom();
|
||||||
self.SetFieldValue(Models.Metadata.Rom.CRCKey, ZeroHash.CRC32Str);
|
self.SetFieldValue(Models.Metadata.Rom.CRCKey, ZeroHash.CRC32Str);
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD2Key, ZeroHash.GetString(HashType.MD2));
|
||||||
|
self.SetFieldValue(Models.Metadata.Rom.MD4Key, ZeroHash.GetString(HashType.MD4));
|
||||||
self.SetFieldValue(Models.Metadata.Rom.MD5Key, ZeroHash.MD5Str);
|
self.SetFieldValue(Models.Metadata.Rom.MD5Key, ZeroHash.MD5Str);
|
||||||
self.SetFieldValue(Models.Metadata.Rom.SHA1Key, ZeroHash.SHA1Str);
|
self.SetFieldValue(Models.Metadata.Rom.SHA1Key, ZeroHash.SHA1Str);
|
||||||
self.SetFieldValue(Models.Metadata.Rom.SHA256Key, ZeroHash.SHA256Str);
|
self.SetFieldValue(Models.Metadata.Rom.SHA256Key, ZeroHash.SHA256Str);
|
||||||
@@ -483,6 +613,8 @@ namespace SabreTools.DatItems.Test.Formats
|
|||||||
|
|
||||||
DatItem datItem = new Rom();
|
DatItem datItem = new Rom();
|
||||||
datItem.SetFieldValue(Models.Metadata.Rom.CRCKey, "DEADBEEF");
|
datItem.SetFieldValue(Models.Metadata.Rom.CRCKey, "DEADBEEF");
|
||||||
|
datItem.SetFieldValue(Models.Metadata.Rom.MD2Key, "DEADBEEF");
|
||||||
|
datItem.SetFieldValue(Models.Metadata.Rom.MD4Key, "DEADBEEF");
|
||||||
datItem.SetFieldValue(Models.Metadata.Rom.MD5Key, "DEADBEEF");
|
datItem.SetFieldValue(Models.Metadata.Rom.MD5Key, "DEADBEEF");
|
||||||
datItem.SetFieldValue(Models.Metadata.Rom.SHA1Key, "DEADBEEF");
|
datItem.SetFieldValue(Models.Metadata.Rom.SHA1Key, "DEADBEEF");
|
||||||
datItem.SetFieldValue(Models.Metadata.Rom.SHA256Key, "DEADBEEF");
|
datItem.SetFieldValue(Models.Metadata.Rom.SHA256Key, "DEADBEEF");
|
||||||
@@ -547,6 +679,8 @@ namespace SabreTools.DatItems.Test.Formats
|
|||||||
|
|
||||||
DatItem datItem = new Rom();
|
DatItem datItem = new Rom();
|
||||||
datItem.SetFieldValue(Models.Metadata.Rom.CRCKey, "DEADBEEF");
|
datItem.SetFieldValue(Models.Metadata.Rom.CRCKey, "DEADBEEF");
|
||||||
|
datItem.SetFieldValue(Models.Metadata.Rom.MD2Key, "DEADBEEF");
|
||||||
|
datItem.SetFieldValue(Models.Metadata.Rom.MD4Key, "DEADBEEF");
|
||||||
datItem.SetFieldValue(Models.Metadata.Rom.MD5Key, "DEADBEEF");
|
datItem.SetFieldValue(Models.Metadata.Rom.MD5Key, "DEADBEEF");
|
||||||
datItem.SetFieldValue(Models.Metadata.Rom.SHA1Key, "DEADBEEF");
|
datItem.SetFieldValue(Models.Metadata.Rom.SHA1Key, "DEADBEEF");
|
||||||
datItem.SetFieldValue(Models.Metadata.Rom.SHA256Key, "DEADBEEF");
|
datItem.SetFieldValue(Models.Metadata.Rom.SHA256Key, "DEADBEEF");
|
||||||
|
|||||||
@@ -396,6 +396,14 @@ namespace SabreTools.DatItems
|
|||||||
key = $"{sourceString}{machineString}";
|
key = $"{sourceString}{machineString}";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
// case ItemKey.MD2:
|
||||||
|
// key = ZeroHash.GetString(HashType.MD2);
|
||||||
|
// break;
|
||||||
|
|
||||||
|
// case ItemKey.MD4:
|
||||||
|
// key = ZeroHash.GetString(HashType.MD4);
|
||||||
|
// break;
|
||||||
|
|
||||||
case ItemKey.MD5:
|
case ItemKey.MD5:
|
||||||
key = ZeroHash.MD5Str;
|
key = ZeroHash.MD5Str;
|
||||||
break;
|
break;
|
||||||
@@ -466,6 +474,14 @@ namespace SabreTools.DatItems
|
|||||||
key = $"{sourceString}{machineString}";
|
key = $"{sourceString}{machineString}";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
// case ItemKey.MD2:
|
||||||
|
// key = ZeroHash.GetString(HashType.MD2);
|
||||||
|
// break;
|
||||||
|
|
||||||
|
// case ItemKey.MD4:
|
||||||
|
// key = ZeroHash.GetString(HashType.MD4);
|
||||||
|
// break;
|
||||||
|
|
||||||
case ItemKey.MD5:
|
case ItemKey.MD5:
|
||||||
key = ZeroHash.MD5Str;
|
key = ZeroHash.MD5Str;
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -137,6 +137,8 @@ namespace SabreTools.DatItems
|
|||||||
rom.SetName(baseFile.Filename);
|
rom.SetName(baseFile.Filename);
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.DateKey, baseFile.Date);
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.DateKey, baseFile.Date);
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, baseFile.CRC.ToHexString());
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.CRCKey, baseFile.CRC.ToHexString());
|
||||||
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.MD2Key, baseFile.MD2.ToHexString());
|
||||||
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.MD4Key, baseFile.MD4.ToHexString());
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.MD5Key, baseFile.MD5.ToHexString());
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.MD5Key, baseFile.MD5.ToHexString());
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, baseFile.SHA1.ToHexString());
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.SHA1Key, baseFile.SHA1.ToHexString());
|
||||||
rom.SetFieldValue<string?>(Models.Metadata.Rom.SHA256Key, baseFile.SHA256.ToHexString());
|
rom.SetFieldValue<string?>(Models.Metadata.Rom.SHA256Key, baseFile.SHA256.ToHexString());
|
||||||
@@ -243,6 +245,8 @@ namespace SabreTools.DatItems
|
|||||||
Date = rom.GetStringFieldValue(Models.Metadata.Rom.DateKey),
|
Date = rom.GetStringFieldValue(Models.Metadata.Rom.DateKey),
|
||||||
Size = NumberHelper.ConvertToInt64(rom.GetStringFieldValue(Models.Metadata.Rom.SizeKey)),
|
Size = NumberHelper.ConvertToInt64(rom.GetStringFieldValue(Models.Metadata.Rom.SizeKey)),
|
||||||
CRC = rom.GetStringFieldValue(Models.Metadata.Rom.CRCKey).FromHexString(),
|
CRC = rom.GetStringFieldValue(Models.Metadata.Rom.CRCKey).FromHexString(),
|
||||||
|
MD2 = rom.GetStringFieldValue(Models.Metadata.Rom.MD2Key).FromHexString(),
|
||||||
|
MD4 = rom.GetStringFieldValue(Models.Metadata.Rom.MD4Key).FromHexString(),
|
||||||
MD5 = rom.GetStringFieldValue(Models.Metadata.Rom.MD5Key).FromHexString(),
|
MD5 = rom.GetStringFieldValue(Models.Metadata.Rom.MD5Key).FromHexString(),
|
||||||
SHA1 = rom.GetStringFieldValue(Models.Metadata.Rom.SHA1Key).FromHexString(),
|
SHA1 = rom.GetStringFieldValue(Models.Metadata.Rom.SHA1Key).FromHexString(),
|
||||||
SHA256 = rom.GetStringFieldValue(Models.Metadata.Rom.SHA256Key).FromHexString(),
|
SHA256 = rom.GetStringFieldValue(Models.Metadata.Rom.SHA256Key).FromHexString(),
|
||||||
|
|||||||
@@ -310,6 +310,8 @@ namespace SabreTools.DatItems
|
|||||||
Machine,
|
Machine,
|
||||||
|
|
||||||
CRC,
|
CRC,
|
||||||
|
// MD2,
|
||||||
|
// MD4,
|
||||||
MD5,
|
MD5,
|
||||||
SHA1,
|
SHA1,
|
||||||
SHA256,
|
SHA256,
|
||||||
|
|||||||
@@ -140,6 +140,14 @@ namespace SabreTools.DatItems.Formats
|
|||||||
key = GetStringFieldValue(Models.Metadata.Rom.CRCKey);
|
key = GetStringFieldValue(Models.Metadata.Rom.CRCKey);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
// case ItemKey.MD2:
|
||||||
|
// key = GetStringFieldValue(Models.Metadata.Rom.MD2Key);
|
||||||
|
// break;
|
||||||
|
|
||||||
|
// case ItemKey.MD4:
|
||||||
|
// key = GetStringFieldValue(Models.Metadata.Rom.MD4Key);
|
||||||
|
// break;
|
||||||
|
|
||||||
case ItemKey.MD5:
|
case ItemKey.MD5:
|
||||||
key = GetStringFieldValue(Models.Metadata.Rom.MD5Key);
|
key = GetStringFieldValue(Models.Metadata.Rom.MD5Key);
|
||||||
break;
|
break;
|
||||||
@@ -190,6 +198,14 @@ namespace SabreTools.DatItems.Formats
|
|||||||
key = GetStringFieldValue(Models.Metadata.Rom.CRCKey);
|
key = GetStringFieldValue(Models.Metadata.Rom.CRCKey);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
// case ItemKey.MD2:
|
||||||
|
// key = GetStringFieldValue(Models.Metadata.Rom.MD2Key);
|
||||||
|
// break;
|
||||||
|
|
||||||
|
// case ItemKey.MD4:
|
||||||
|
// key = GetStringFieldValue(Models.Metadata.Rom.MD4Key);
|
||||||
|
// break;
|
||||||
|
|
||||||
case ItemKey.MD5:
|
case ItemKey.MD5:
|
||||||
key = GetStringFieldValue(Models.Metadata.Rom.MD5Key);
|
key = GetStringFieldValue(Models.Metadata.Rom.MD5Key);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -224,6 +224,8 @@ namespace SabreTools.DatTools
|
|||||||
[Models.Metadata.Rom.SHA256Key] = " (SHA-256)",
|
[Models.Metadata.Rom.SHA256Key] = " (SHA-256)",
|
||||||
[Models.Metadata.Rom.SHA1Key] = " (SHA-1)",
|
[Models.Metadata.Rom.SHA1Key] = " (SHA-1)",
|
||||||
[Models.Metadata.Rom.MD5Key] = " (MD5)",
|
[Models.Metadata.Rom.MD5Key] = " (MD5)",
|
||||||
|
[Models.Metadata.Rom.MD4Key] = " (MD4)",
|
||||||
|
[Models.Metadata.Rom.MD2Key] = " (MD2)",
|
||||||
[Models.Metadata.Rom.CRCKey] = " (CRC)",
|
[Models.Metadata.Rom.CRCKey] = " (CRC)",
|
||||||
["null"] = " (Other)",
|
["null"] = " (Other)",
|
||||||
};
|
};
|
||||||
@@ -296,6 +298,10 @@ namespace SabreTools.DatTools
|
|||||||
fieldDats[Models.Metadata.Rom.SHA1Key].Items.Add(key, item);
|
fieldDats[Models.Metadata.Rom.SHA1Key].Items.Add(key, item);
|
||||||
else if (!string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.MD5Key)))
|
else if (!string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.MD5Key)))
|
||||||
fieldDats[Models.Metadata.Rom.MD5Key].Items.Add(key, item);
|
fieldDats[Models.Metadata.Rom.MD5Key].Items.Add(key, item);
|
||||||
|
else if (!string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.MD4Key)))
|
||||||
|
fieldDats[Models.Metadata.Rom.MD4Key].Items.Add(key, item);
|
||||||
|
else if (!string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.MD2Key)))
|
||||||
|
fieldDats[Models.Metadata.Rom.MD2Key].Items.Add(key, item);
|
||||||
else if (!string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.CRCKey)))
|
else if (!string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.CRCKey)))
|
||||||
fieldDats[Models.Metadata.Rom.CRCKey].Items.Add(key, item);
|
fieldDats[Models.Metadata.Rom.CRCKey].Items.Add(key, item);
|
||||||
else
|
else
|
||||||
@@ -335,6 +341,8 @@ namespace SabreTools.DatTools
|
|||||||
[Models.Metadata.Rom.SHA256Key] = " (SHA-256)",
|
[Models.Metadata.Rom.SHA256Key] = " (SHA-256)",
|
||||||
[Models.Metadata.Rom.SHA1Key] = " (SHA-1)",
|
[Models.Metadata.Rom.SHA1Key] = " (SHA-1)",
|
||||||
[Models.Metadata.Rom.MD5Key] = " (MD5)",
|
[Models.Metadata.Rom.MD5Key] = " (MD5)",
|
||||||
|
[Models.Metadata.Rom.MD4Key] = " (MD4)",
|
||||||
|
[Models.Metadata.Rom.MD2Key] = " (MD2)",
|
||||||
[Models.Metadata.Rom.CRCKey] = " (CRC)",
|
[Models.Metadata.Rom.CRCKey] = " (CRC)",
|
||||||
["null"] = " (Other)",
|
["null"] = " (Other)",
|
||||||
};
|
};
|
||||||
@@ -370,6 +378,8 @@ namespace SabreTools.DatTools
|
|||||||
_ = fieldDats[Models.Metadata.Rom.SHA256Key].ItemsDB.AddSource(source.Value);
|
_ = fieldDats[Models.Metadata.Rom.SHA256Key].ItemsDB.AddSource(source.Value);
|
||||||
_ = fieldDats[Models.Metadata.Rom.SHA1Key].ItemsDB.AddSource(source.Value);
|
_ = fieldDats[Models.Metadata.Rom.SHA1Key].ItemsDB.AddSource(source.Value);
|
||||||
_ = fieldDats[Models.Metadata.Rom.MD5Key].ItemsDB.AddSource(source.Value);
|
_ = fieldDats[Models.Metadata.Rom.MD5Key].ItemsDB.AddSource(source.Value);
|
||||||
|
_ = fieldDats[Models.Metadata.Rom.MD4Key].ItemsDB.AddSource(source.Value);
|
||||||
|
_ = fieldDats[Models.Metadata.Rom.MD2Key].ItemsDB.AddSource(source.Value);
|
||||||
_ = fieldDats[Models.Metadata.Rom.CRCKey].ItemsDB.AddSource(source.Value);
|
_ = fieldDats[Models.Metadata.Rom.CRCKey].ItemsDB.AddSource(source.Value);
|
||||||
_ = fieldDats["null"].ItemsDB.AddSource(source.Value);
|
_ = fieldDats["null"].ItemsDB.AddSource(source.Value);
|
||||||
}
|
}
|
||||||
@@ -383,6 +393,8 @@ namespace SabreTools.DatTools
|
|||||||
_ = fieldDats[Models.Metadata.Rom.SHA256Key].ItemsDB.AddMachine(machine.Value);
|
_ = fieldDats[Models.Metadata.Rom.SHA256Key].ItemsDB.AddMachine(machine.Value);
|
||||||
_ = fieldDats[Models.Metadata.Rom.SHA1Key].ItemsDB.AddMachine(machine.Value);
|
_ = fieldDats[Models.Metadata.Rom.SHA1Key].ItemsDB.AddMachine(machine.Value);
|
||||||
_ = fieldDats[Models.Metadata.Rom.MD5Key].ItemsDB.AddMachine(machine.Value);
|
_ = fieldDats[Models.Metadata.Rom.MD5Key].ItemsDB.AddMachine(machine.Value);
|
||||||
|
_ = fieldDats[Models.Metadata.Rom.MD4Key].ItemsDB.AddMachine(machine.Value);
|
||||||
|
_ = fieldDats[Models.Metadata.Rom.MD2Key].ItemsDB.AddMachine(machine.Value);
|
||||||
_ = fieldDats[Models.Metadata.Rom.CRCKey].ItemsDB.AddMachine(machine.Value);
|
_ = fieldDats[Models.Metadata.Rom.CRCKey].ItemsDB.AddMachine(machine.Value);
|
||||||
_ = fieldDats["null"].ItemsDB.AddMachine(machine.Value);
|
_ = fieldDats["null"].ItemsDB.AddMachine(machine.Value);
|
||||||
machineRemapping[machine.Key] = newMachineIndex;
|
machineRemapping[machine.Key] = newMachineIndex;
|
||||||
@@ -441,6 +453,10 @@ namespace SabreTools.DatTools
|
|||||||
fieldDats[Models.Metadata.Rom.SHA1Key].ItemsDB.AddItem(item.Value, machineRemapping[machineIndex], sourceRemapping[sourceIndex], statsOnly: false);
|
fieldDats[Models.Metadata.Rom.SHA1Key].ItemsDB.AddItem(item.Value, machineRemapping[machineIndex], sourceRemapping[sourceIndex], statsOnly: false);
|
||||||
else if (!string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.MD5Key)))
|
else if (!string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.MD5Key)))
|
||||||
fieldDats[Models.Metadata.Rom.MD5Key].ItemsDB.AddItem(item.Value, machineRemapping[machineIndex], sourceRemapping[sourceIndex], statsOnly: false);
|
fieldDats[Models.Metadata.Rom.MD5Key].ItemsDB.AddItem(item.Value, machineRemapping[machineIndex], sourceRemapping[sourceIndex], statsOnly: false);
|
||||||
|
else if (!string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.MD4Key)))
|
||||||
|
fieldDats[Models.Metadata.Rom.MD4Key].ItemsDB.AddItem(item.Value, machineRemapping[machineIndex], sourceRemapping[sourceIndex], statsOnly: false);
|
||||||
|
else if (!string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.MD2Key)))
|
||||||
|
fieldDats[Models.Metadata.Rom.MD2Key].ItemsDB.AddItem(item.Value, machineRemapping[machineIndex], sourceRemapping[sourceIndex], statsOnly: false);
|
||||||
else if (!string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.CRCKey)))
|
else if (!string.IsNullOrEmpty(rom.GetStringFieldValue(Models.Metadata.Rom.CRCKey)))
|
||||||
fieldDats[Models.Metadata.Rom.CRCKey].ItemsDB.AddItem(item.Value, machineRemapping[machineIndex], sourceRemapping[sourceIndex], statsOnly: false);
|
fieldDats[Models.Metadata.Rom.CRCKey].ItemsDB.AddItem(item.Value, machineRemapping[machineIndex], sourceRemapping[sourceIndex], statsOnly: false);
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -29,6 +29,16 @@
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public byte[]? CRC { get; set; }
|
public byte[]? CRC { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// MD2 hash of the file
|
||||||
|
/// </summary>
|
||||||
|
public byte[]? MD2 { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// MD4 hash of the file
|
||||||
|
/// </summary>
|
||||||
|
public byte[]? MD4 { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// MD5 hash of the file
|
/// MD5 hash of the file
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -96,6 +96,8 @@ namespace SabreTools.FileTypes
|
|||||||
{
|
{
|
||||||
Size = size,
|
Size = size,
|
||||||
CRC = hashDict.ContainsKey(HashType.CRC32) ? hashDict[HashType.CRC32].FromHexString() : null,
|
CRC = hashDict.ContainsKey(HashType.CRC32) ? hashDict[HashType.CRC32].FromHexString() : null,
|
||||||
|
MD2 = hashDict.ContainsKey(HashType.MD2) ? hashDict[HashType.MD2].FromHexString() : null,
|
||||||
|
MD4 = hashDict.ContainsKey(HashType.MD4) ? hashDict[HashType.MD4].FromHexString() : null,
|
||||||
MD5 = hashDict.ContainsKey(HashType.MD5) ? hashDict[HashType.MD5].FromHexString() : null,
|
MD5 = hashDict.ContainsKey(HashType.MD5) ? hashDict[HashType.MD5].FromHexString() : null,
|
||||||
SHA1 = hashDict.ContainsKey(HashType.SHA1) ? hashDict[HashType.SHA1].FromHexString() : null,
|
SHA1 = hashDict.ContainsKey(HashType.SHA1) ? hashDict[HashType.SHA1].FromHexString() : null,
|
||||||
SHA256 = hashDict.ContainsKey(HashType.SHA256) ? hashDict[HashType.SHA256].FromHexString() : null,
|
SHA256 = hashDict.ContainsKey(HashType.SHA256) ? hashDict[HashType.SHA256].FromHexString() : null,
|
||||||
@@ -125,6 +127,8 @@ namespace SabreTools.FileTypes
|
|||||||
to.Date ??= from.Date;
|
to.Date ??= from.Date;
|
||||||
to.Size ??= from.Size;
|
to.Size ??= from.Size;
|
||||||
to.CRC ??= from.CRC;
|
to.CRC ??= from.CRC;
|
||||||
|
to.MD2 ??= from.MD2;
|
||||||
|
to.MD4 ??= from.MD4;
|
||||||
to.MD5 ??= from.MD5;
|
to.MD5 ??= from.MD5;
|
||||||
to.SHA1 ??= from.SHA1;
|
to.SHA1 ??= from.SHA1;
|
||||||
to.SHA256 ??= from.SHA256;
|
to.SHA256 ??= from.SHA256;
|
||||||
|
|||||||
@@ -471,7 +471,7 @@ namespace SabreTools.Features
|
|||||||
new List<string>() { "-hs", "--hash" },
|
new List<string>() { "-hs", "--hash" },
|
||||||
"Split DAT(s) or folder by best-available hashes",
|
"Split DAT(s) or folder by best-available hashes",
|
||||||
ParameterType.Flag,
|
ParameterType.Flag,
|
||||||
longDescription: "For a DAT, or set of DATs, allow for splitting based on the best available hash for each file within. The order of preference for the outputted DATs is as follows: Nodump, SHA-512, SHA-384, SHA-256, SHA-1, MD5, CRC (or worse).");
|
longDescription: "For a DAT, or set of DATs, allow for splitting based on the best available hash for each file within. The order of preference for the outputted DATs is as follows: Nodump, SHA-512, SHA-384, SHA-256, SHA-1, MD5, MD4, MD2, CRC (or worse).");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -503,6 +503,34 @@ namespace SabreTools.Features
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal const string IncludeMd2Value = "include-md2";
|
||||||
|
internal static Feature IncludeMd2Flag
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return new Feature(
|
||||||
|
IncludeMd2Value,
|
||||||
|
new List<string>() { "-md2", "--include-md2" },
|
||||||
|
"Include MD2 in output",
|
||||||
|
ParameterType.Flag,
|
||||||
|
longDescription: "This enables MD2 calculation for each of the files. Adding this flag overrides the default hashing behavior of including CRC32, MD5, and SHA-1 hashes.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal const string IncludeMd4Value = "include-md4";
|
||||||
|
internal static Feature IncludeMd4Flag
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return new Feature(
|
||||||
|
IncludeMd4Value,
|
||||||
|
new List<string>() { "-md4", "--include-md4" },
|
||||||
|
"Include MD4 in output",
|
||||||
|
ParameterType.Flag,
|
||||||
|
longDescription: "This enables MD4 calculation for each of the files. Adding this flag overrides the default hashing behavior of including CRC32, MD5, and SHA-1 hashes.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
internal const string IncludeMd5Value = "include-md5";
|
internal const string IncludeMd5Value = "include-md5";
|
||||||
internal static Feature IncludeMd5Flag
|
internal static Feature IncludeMd5Flag
|
||||||
{
|
{
|
||||||
@@ -1312,6 +1340,8 @@ Possible values are:
|
|||||||
lr, listrom - MAME Listrom
|
lr, listrom - MAME Listrom
|
||||||
lx, listxml - MAME Listxml
|
lx, listxml - MAME Listxml
|
||||||
miss, missfile - GoodTools Missfile
|
miss, missfile - GoodTools Missfile
|
||||||
|
md2 - MD2
|
||||||
|
md4 - MD4
|
||||||
md5 - MD5
|
md5 - MD5
|
||||||
msx, openmsx - openMSX Software List
|
msx, openmsx - openMSX Software List
|
||||||
ol, offlinelist - OfflineList XML
|
ol, offlinelist - OfflineList XML
|
||||||
@@ -1634,6 +1664,8 @@ Some special strings that can be used:
|
|||||||
- %publisher% - Replaced with game Publisher
|
- %publisher% - Replaced with game Publisher
|
||||||
- %category% - Replaced with game Category
|
- %category% - Replaced with game Category
|
||||||
- %crc% - Replaced with the CRC
|
- %crc% - Replaced with the CRC
|
||||||
|
- %md2% - Replaced with the MD2
|
||||||
|
- %md4% - Replaced with the MD4
|
||||||
- %md5% - Replaced with the MD5
|
- %md5% - Replaced with the MD5
|
||||||
- %sha1% - Replaced with the SHA-1
|
- %sha1% - Replaced with the SHA-1
|
||||||
- %sha256% - Replaced with the SHA-256
|
- %sha256% - Replaced with the SHA-256
|
||||||
@@ -1662,6 +1694,8 @@ Some special strings that can be used:
|
|||||||
- %publisher% - Replaced with game Publisher
|
- %publisher% - Replaced with game Publisher
|
||||||
- %category% - Replaced with game Category
|
- %category% - Replaced with game Category
|
||||||
- %crc% - Replaced with the CRC
|
- %crc% - Replaced with the CRC
|
||||||
|
- %md2% - Replaced with the MD2
|
||||||
|
- %md4% - Replaced with the MD4
|
||||||
- %md5% - Replaced with the MD5
|
- %md5% - Replaced with the MD5
|
||||||
- %sha1% - Replaced with the SHA-1
|
- %sha1% - Replaced with the SHA-1
|
||||||
- %sha256% - Replaced with the SHA-256
|
- %sha256% - Replaced with the SHA-256
|
||||||
@@ -1903,6 +1937,10 @@ Some special strings that can be used:
|
|||||||
|
|
||||||
if (GetBoolean(features, IncludeCrcValue))
|
if (GetBoolean(features, IncludeCrcValue))
|
||||||
includeInScan.Add(HashType.CRC32);
|
includeInScan.Add(HashType.CRC32);
|
||||||
|
if (GetBoolean(features, IncludeMd2Value))
|
||||||
|
includeInScan.Add(HashType.MD2);
|
||||||
|
if (GetBoolean(features, IncludeMd4Value))
|
||||||
|
includeInScan.Add(HashType.MD4);
|
||||||
if (GetBoolean(features, IncludeMd5Value))
|
if (GetBoolean(features, IncludeMd5Value))
|
||||||
includeInScan.Add(HashType.MD5);
|
includeInScan.Add(HashType.MD5);
|
||||||
if (GetBoolean(features, IncludeSha1Value))
|
if (GetBoolean(features, IncludeSha1Value))
|
||||||
|
|||||||
Reference in New Issue
Block a user