Port Remover tests to new project

This commit is contained in:
Matt Nadareski
2025-02-19 14:20:05 -05:00
parent 0fe0f0a235
commit e94ac90e73
3 changed files with 46 additions and 45 deletions

View File

@@ -1,11 +1,14 @@
using System.Collections.Generic; using System.Collections.Generic;
using SabreTools.DatTools; using SabreTools.DatItems;
using SabreTools.DatItems.Formats;
using Xunit; using Xunit;
namespace SabreTools.Test namespace SabreTools.DatTools.Test
{ {
public class PopulationTests public class RemoverTests
{ {
#region PopulateExclusionsFromList
[Fact] [Fact]
public void PopulateExclusionsFromList_Null() public void PopulateExclusionsFromList_Null()
{ {
@@ -94,5 +97,40 @@ namespace SabreTools.Test
Assert.Empty(remover.MachineFieldNames); Assert.Empty(remover.MachineFieldNames);
Assert.Single(remover.ItemFieldNames); Assert.Single(remover.ItemFieldNames);
} }
#endregion
#region RemoveFields
// TODO: Add RemoveFields_DatHeader test
[Fact]
public void RemoveFields_DatItem()
{
var datItem = new Rom();
datItem.SetName("foo");
var remover = new Remover();
remover.PopulateExclusions("DatItem.Name");
remover.RemoveFields(datItem);
Assert.Null(datItem.GetName());
}
[Fact]
public void RemoveFields_Machine()
{
var machine = new Machine();
machine.SetFieldValue<string?>(Models.Metadata.Machine.NameKey, "bar");
machine.SetFieldValue<string?>(Models.Metadata.Machine.DescriptionKey, "bar");
var remover = new Remover();
remover.PopulateExclusions("Machine.Name");
remover.RemoveFields(machine);
Assert.Null(machine.GetStringFieldValue(Models.Metadata.Machine.NameKey));
}
#endregion
} }
} }

View File

@@ -174,6 +174,11 @@ namespace SabreTools.DatTools
for (int j = 0; j < items.Count; j++) for (int j = 0; j < items.Count; j++)
{ {
// Handle machine removals
var machine = items[j].GetFieldValue<Machine>(DatItem.MachineKey);
RemoveFields(machine);
// Handle item removals
RemoveFields(items[j]); RemoveFields(items[j]);
} }
} }
@@ -234,11 +239,6 @@ namespace SabreTools.DatTools
#region Common #region Common
// Handle Machine fields
var machine = datItem.GetFieldValue<Machine>(DatItem.MachineKey);
if (MachineFieldNames.Count > 0 && machine != null)
RemoveFields(machine);
// If there are no field names, return // If there are no field names, return
if (ItemFieldNames == null || ItemFieldNames.Count == 0) if (ItemFieldNames == null || ItemFieldNames.Count == 0)
return; return;

View File

@@ -1,37 +0,0 @@
using SabreTools.DatItems;
using SabreTools.DatItems.Formats;
using SabreTools.DatTools;
using Xunit;
namespace SabreTools.Test
{
public class RemoverTests
{
[Fact]
public void RemoveFields_DatItem()
{
var datItem = new Rom();
datItem.SetName("foo");
var remover = new Remover();
remover.PopulateExclusions("DatItem.Name");
remover.RemoveFields(datItem);
Assert.Null(datItem.GetName());
}
[Fact]
public void RemoveFields_Machine()
{
var machine = new Machine();
machine.SetFieldValue<string?>(Models.Metadata.Machine.NameKey, "bar");
machine.SetFieldValue<string?>(Models.Metadata.Machine.DescriptionKey, "bar");
var remover = new Remover();
remover.PopulateExclusions("Machine.Name");
remover.RemoveFields(machine);
Assert.Null(machine.GetStringFieldValue(Models.Metadata.Machine.NameKey));
}
}
}