Add GetKeyDB tests

This commit is contained in:
Matt Nadareski
2025-01-08 13:32:09 -05:00
parent 0e034a332b
commit 19efc30c44
6 changed files with 279 additions and 5 deletions

View File

@@ -434,9 +434,6 @@ namespace SabreTools.DatItems
}
key = $"{sourceString}{machineString}";
if (lower)
key = key.ToLowerInvariant();
break;
case ItemKey.MD5:
@@ -466,6 +463,8 @@ namespace SabreTools.DatItems
// Double and triple check the key for corner cases
key ??= string.Empty;
if (lower)
key = key.ToLowerInvariant();
return key;
}

View File

@@ -141,6 +141,36 @@ namespace SabreTools.DatItems.Formats
return key;
}
/// <inheritdoc/>
public override string GetKeyDB(ItemKey bucketedBy, Source? source, bool lower = true, bool norename = true)
{
// Set the output key as the default blank string
string? key;
// Now determine what the key should be based on the bucketedBy value
switch (bucketedBy)
{
case ItemKey.MD5:
key = GetStringFieldValue(Models.Metadata.Disk.MD5Key);
break;
case ItemKey.SHA1:
key = GetStringFieldValue(Models.Metadata.Disk.SHA1Key);
break;
// Let the base handle generic stuff
default:
return base.GetKeyDB(bucketedBy, source, lower, norename);
}
// Double and triple check the key for corner cases
key ??= string.Empty;
if (lower)
key = key.ToLowerInvariant();
return key;
}
#endregion
}
}

View File

@@ -359,6 +359,44 @@ namespace SabreTools.DatItems.Formats
return key;
}
/// <inheritdoc/>
public override string GetKeyDB(ItemKey bucketedBy, Source? source, bool lower = true, bool norename = true)
{
// Set the output key as the default blank string
string? key;
// Now determine what the key should be based on the bucketedBy value
switch (bucketedBy)
{
case ItemKey.CRC:
key = CRC;
break;
case ItemKey.MD5:
key = MD5;
break;
case ItemKey.SHA1:
key = SHA1;
break;
case ItemKey.SHA256:
key = SHA256;
break;
// Let the base handle generic stuff
default:
return base.GetKeyDB(bucketedBy, source, lower, norename);
}
// Double and triple check the key for corner cases
key ??= string.Empty;
if (lower)
key = key.ToLowerInvariant();
return key;
}
#endregion
}
}

View File

@@ -110,6 +110,44 @@ namespace SabreTools.DatItems.Formats
return key;
}
/// <inheritdoc/>
public override string GetKeyDB(ItemKey bucketedBy, Source? source, bool lower = true, bool norename = true)
{
// Set the output key as the default blank string
string? key;
// Now determine what the key should be based on the bucketedBy value
switch (bucketedBy)
{
case ItemKey.MD5:
key = GetStringFieldValue(Models.Metadata.Media.MD5Key);
break;
case ItemKey.SHA1:
key = GetStringFieldValue(Models.Metadata.Media.SHA1Key);
break;
case ItemKey.SHA256:
key = GetStringFieldValue(Models.Metadata.Media.SHA256Key);
break;
case ItemKey.SpamSum:
key = GetStringFieldValue(Models.Metadata.Media.SpamSumKey);
break;
// Let the base handle generic stuff
default:
return base.GetKeyDB(bucketedBy, source, lower, norename);
}
// Double and triple check the key for corner cases
key ??= string.Empty;
if (lower)
key = key.ToLowerInvariant();
return key;
}
#endregion
}
}

View File

@@ -177,6 +177,56 @@ namespace SabreTools.DatItems.Formats
return key;
}
/// <inheritdoc/>
public override string GetKeyDB(ItemKey bucketedBy, Source? source, bool lower = true, bool norename = true)
{
// Set the output key as the default blank string
string? key;
// Now determine what the key should be based on the bucketedBy value
switch (bucketedBy)
{
case ItemKey.CRC:
key = GetStringFieldValue(Models.Metadata.Rom.CRCKey);
break;
case ItemKey.MD5:
key = GetStringFieldValue(Models.Metadata.Rom.MD5Key);
break;
case ItemKey.SHA1:
key = GetStringFieldValue(Models.Metadata.Rom.SHA1Key);
break;
case ItemKey.SHA256:
key = GetStringFieldValue(Models.Metadata.Rom.SHA256Key);
break;
case ItemKey.SHA384:
key = GetStringFieldValue(Models.Metadata.Rom.SHA384Key);
break;
case ItemKey.SHA512:
key = GetStringFieldValue(Models.Metadata.Rom.SHA512Key);
break;
case ItemKey.SpamSum:
key = GetStringFieldValue(Models.Metadata.Rom.SpamSumKey);
break;
// Let the base handle generic stuff
default:
return base.GetKeyDB(bucketedBy, source, lower, norename);
}
// Double and triple check the key for corner cases
key ??= string.Empty;
if (lower)
key = key.ToLowerInvariant();
return key;
}
#endregion
}
}