Add RemoveMachineRelationshipTags tests, add another helper

This commit is contained in:
Matt Nadareski
2025-01-13 10:01:27 -05:00
parent dc69663cd6
commit f492e68c6a
5 changed files with 73 additions and 13 deletions

View File

@@ -1,3 +1,6 @@
using SabreTools.DatFiles.Formats;
using SabreTools.DatItems;
using SabreTools.DatItems.Formats;
using Xunit; using Xunit;
namespace SabreTools.DatFiles.Test namespace SabreTools.DatFiles.Test
@@ -48,7 +51,59 @@ namespace SabreTools.DatFiles.Test
#region RemoveMachineRelationshipTags #region RemoveMachineRelationshipTags
// TODO: Implement RemoveMachineRelationshipTags tests [Fact]
public void RemoveMachineRelationshipTags_Items()
{
Source source = new Source(0, source: null);
Machine machine = new Machine();
machine.SetFieldValue<string?>(Models.Metadata.Machine.NameKey, "machine");
machine.SetFieldValue<string?>(Models.Metadata.Machine.CloneOfKey, "XXXXXX");
machine.SetFieldValue<string?>(Models.Metadata.Machine.RomOfKey, "XXXXXX");
machine.SetFieldValue<string?>(Models.Metadata.Machine.SampleOfKey, "XXXXXX");
DatItem datItem = new Rom();
datItem.SetFieldValue<Machine>(DatItem.MachineKey, machine);
datItem.SetFieldValue<Source>(DatItem.SourceKey, source);
DatFile datFile = new Logiqx(datFile: null, deprecated: false);
datFile.AddItem(datItem, statsOnly: false);
datFile.RemoveMachineRelationshipTags();
DatItem actualItem = Assert.Single(datFile.GetItemsForBucket("machine"));
Machine? actual = actualItem.GetFieldValue<Machine>(DatItem.MachineKey);
Assert.NotNull(actual);
Assert.Null(actual.GetStringFieldValue(Models.Metadata.Machine.CloneOfKey));
Assert.Null(actual.GetStringFieldValue(Models.Metadata.Machine.RomOfKey));
Assert.Null(actual.GetStringFieldValue(Models.Metadata.Machine.SampleOfKey));
}
[Fact]
public void RemoveMachineRelationshipTags_ItemsDB()
{
Source source = new Source(0, source: null);
Machine machine = new Machine();
machine.SetFieldValue<string?>(Models.Metadata.Machine.NameKey, "machine");
machine.SetFieldValue<string?>(Models.Metadata.Machine.CloneOfKey, "XXXXXX");
machine.SetFieldValue<string?>(Models.Metadata.Machine.RomOfKey, "XXXXXX");
machine.SetFieldValue<string?>(Models.Metadata.Machine.SampleOfKey, "XXXXXX");
DatItem datItem = new Rom();
DatFile datFile = new Logiqx(datFile: null, deprecated: false);
long machineIndex = datFile.AddMachineDB(machine);
long sourceIndex = datFile.AddSourceDB(source);
long itemId = datFile.AddItemDB(datItem, machineIndex, sourceIndex, statsOnly: false);
datFile.RemoveMachineRelationshipTags();
Machine actual = Assert.Single(datFile.GetMachinesDB()).Value;
Assert.Null(actual.GetStringFieldValue(Models.Metadata.Machine.CloneOfKey));
Assert.Null(actual.GetStringFieldValue(Models.Metadata.Machine.RomOfKey));
Assert.Null(actual.GetStringFieldValue(Models.Metadata.Machine.SampleOfKey));
}
#endregion #endregion
} }

View File

@@ -8,9 +8,8 @@ namespace SabreTools.DatFiles
{ {
public partial class DatFile public partial class DatFile
{ {
// TODO: Make all private methods internal
// TODO: Create tests for all of these individually // TODO: Create tests for all of these individually
#region Item Dictionary Passthrough - Splitting #region Splitting
/// <summary> /// <summary>
/// Use romof tags to add roms to the children /// Use romof tags to add roms to the children
@@ -1219,7 +1218,7 @@ namespace SabreTools.DatFiles
/// <remarks>Applies to <see cref="ItemsDB"/></remarks> /// <remarks>Applies to <see cref="ItemsDB"/></remarks>
private void RemoveMachineRelationshipTagsImplDB() private void RemoveMachineRelationshipTagsImplDB()
{ {
var machines = ItemsDB.GetMachines(); var machines = GetMachinesDB();
foreach (var machine in machines) foreach (var machine in machines)
{ {
// Get the machine // Get the machine

View File

@@ -233,6 +233,12 @@ namespace SabreTools.DatFiles
public Dictionary<long, DatItem> GetItemsForBucketDB(string bucketName, bool filter = false) public Dictionary<long, DatItem> GetItemsForBucketDB(string bucketName, bool filter = false)
=> ItemsDB.GetItemsForBucket(bucketName, filter); => ItemsDB.GetItemsForBucket(bucketName, filter);
/// <summary>
/// Get all machines and their indicies
/// </summary>
public IDictionary<long, Machine> GetMachinesDB()
=> ItemsDB.GetMachines();
/// <summary> /// <summary>
/// Remove a key from the file dictionary if it exists /// Remove a key from the file dictionary if it exists
/// </summary> /// </summary>

View File

@@ -935,7 +935,7 @@ namespace SabreTools.DatFiles
// Get all current items, machines, and mappings // Get all current items, machines, and mappings
var datItems = datFile.ItemsDB.GetItems(); var datItems = datFile.ItemsDB.GetItems();
var machines = datFile.ItemsDB.GetMachines(); var machines = datFile.GetMachinesDB();
var sources = datFile.ItemsDB.GetSources(); var sources = datFile.ItemsDB.GetSources();
var itemMachineMappings = datFile.ItemsDB.GetItemMachineMappings(); var itemMachineMappings = datFile.ItemsDB.GetItemMachineMappings();
var itemSourceMappings = datFile.ItemsDB.GetItemSourceMappings(); var itemSourceMappings = datFile.ItemsDB.GetItemSourceMappings();
@@ -1175,7 +1175,7 @@ namespace SabreTools.DatFiles
// Get all current items, machines, and mappings // Get all current items, machines, and mappings
var datItems = datFile.ItemsDB.GetItems(); var datItems = datFile.ItemsDB.GetItems();
var machines = datFile.ItemsDB.GetMachines(); var machines = datFile.GetMachinesDB();
var sources = datFile.ItemsDB.GetSources(); var sources = datFile.ItemsDB.GetSources();
var itemMachineMappings = datFile.ItemsDB.GetItemMachineMappings(); var itemMachineMappings = datFile.ItemsDB.GetItemMachineMappings();
var itemSourceMappings = datFile.ItemsDB.GetItemSourceMappings(); var itemSourceMappings = datFile.ItemsDB.GetItemSourceMappings();
@@ -1368,7 +1368,7 @@ namespace SabreTools.DatFiles
// Get all current items, machines, and mappings // Get all current items, machines, and mappings
var datItems = datFile.ItemsDB.GetItems(); var datItems = datFile.ItemsDB.GetItems();
var machines = datFile.ItemsDB.GetMachines(); var machines = datFile.GetMachinesDB();
var sources = datFile.ItemsDB.GetSources(); var sources = datFile.ItemsDB.GetSources();
var itemMachineMappings = datFile.ItemsDB.GetItemMachineMappings(); var itemMachineMappings = datFile.ItemsDB.GetItemMachineMappings();
var itemSourceMappings = datFile.ItemsDB.GetItemSourceMappings(); var itemSourceMappings = datFile.ItemsDB.GetItemSourceMappings();
@@ -1545,7 +1545,7 @@ namespace SabreTools.DatFiles
{ {
// Get all current items, machines, and mappings // Get all current items, machines, and mappings
var datItems = addFrom.ItemsDB.GetItems(); var datItems = addFrom.ItemsDB.GetItems();
var machines = addFrom.ItemsDB.GetMachines(); var machines = addFrom.GetMachinesDB();
var sources = addFrom.ItemsDB.GetSources(); var sources = addFrom.ItemsDB.GetSources();
var itemMachineMappings = addFrom.ItemsDB.GetItemMachineMappings(); var itemMachineMappings = addFrom.ItemsDB.GetItemMachineMappings();
var itemSourceMappings = addFrom.ItemsDB.GetItemSourceMappings(); var itemSourceMappings = addFrom.ItemsDB.GetItemSourceMappings();
@@ -1650,7 +1650,7 @@ namespace SabreTools.DatFiles
{ {
// Get all current items, machines, and mappings // Get all current items, machines, and mappings
var datItems = datFile.ItemsDB.GetItems(); var datItems = datFile.ItemsDB.GetItems();
var machines = datFile.ItemsDB.GetMachines(); var machines = datFile.GetMachinesDB();
var sources = datFile.ItemsDB.GetSources(); var sources = datFile.ItemsDB.GetSources();
var itemMachineMappings = datFile.ItemsDB.GetItemMachineMappings(); var itemMachineMappings = datFile.ItemsDB.GetItemMachineMappings();
var itemSourceMappings = datFile.ItemsDB.GetItemSourceMappings(); var itemSourceMappings = datFile.ItemsDB.GetItemSourceMappings();

View File

@@ -143,7 +143,7 @@ namespace SabreTools.DatTools
// Get all current items, machines, and mappings // Get all current items, machines, and mappings
var datItems = datFile.ItemsDB.GetItems(); var datItems = datFile.ItemsDB.GetItems();
var machines = datFile.ItemsDB.GetMachines(); var machines = datFile.GetMachinesDB();
var sources = datFile.ItemsDB.GetSources(); var sources = datFile.ItemsDB.GetSources();
var itemMachineMappings = datFile.ItemsDB.GetItemMachineMappings(); var itemMachineMappings = datFile.ItemsDB.GetItemMachineMappings();
var itemSourceMappings = datFile.ItemsDB.GetItemSourceMappings(); var itemSourceMappings = datFile.ItemsDB.GetItemSourceMappings();
@@ -359,7 +359,7 @@ namespace SabreTools.DatTools
// Get all current items, machines, and mappings // Get all current items, machines, and mappings
var datItems = datFile.ItemsDB.GetItems(); var datItems = datFile.ItemsDB.GetItems();
var machines = datFile.ItemsDB.GetMachines(); var machines = datFile.GetMachinesDB();
var sources = datFile.ItemsDB.GetSources(); var sources = datFile.ItemsDB.GetSources();
var itemMachineMappings = datFile.ItemsDB.GetItemMachineMappings(); var itemMachineMappings = datFile.ItemsDB.GetItemMachineMappings();
var itemSourceMappings = datFile.ItemsDB.GetItemSourceMappings(); var itemSourceMappings = datFile.ItemsDB.GetItemSourceMappings();
@@ -697,7 +697,7 @@ namespace SabreTools.DatTools
// Get all current items, machines, and mappings // Get all current items, machines, and mappings
var datItems = datFile.ItemsDB.GetItems(); var datItems = datFile.ItemsDB.GetItems();
var machines = datFile.ItemsDB.GetMachines(); var machines = datFile.GetMachinesDB();
var sources = datFile.ItemsDB.GetSources(); var sources = datFile.ItemsDB.GetSources();
var itemMachineMappings = datFile.ItemsDB.GetItemMachineMappings(); var itemMachineMappings = datFile.ItemsDB.GetItemMachineMappings();
var itemSourceMappings = datFile.ItemsDB.GetItemSourceMappings(); var itemSourceMappings = datFile.ItemsDB.GetItemSourceMappings();
@@ -953,7 +953,7 @@ namespace SabreTools.DatTools
{ {
// Get all current items, machines, and mappings // Get all current items, machines, and mappings
var datItems = datFile.ItemsDB.GetItems(); var datItems = datFile.ItemsDB.GetItems();
var machines = datFile.ItemsDB.GetMachines(); var machines = datFile.GetMachinesDB();
var sources = datFile.ItemsDB.GetSources(); var sources = datFile.ItemsDB.GetSources();
var itemMachineMappings = datFile.ItemsDB.GetItemMachineMappings(); var itemMachineMappings = datFile.ItemsDB.GetItemMachineMappings();
var itemSourceMappings = datFile.ItemsDB.GetItemSourceMappings(); var itemSourceMappings = datFile.ItemsDB.GetItemSourceMappings();