diff --git a/SabreTools.Test/PopulationTests.cs b/SabreTools.DatTools.Test/RemoverTests.cs similarity index 70% rename from SabreTools.Test/PopulationTests.cs rename to SabreTools.DatTools.Test/RemoverTests.cs index a1e94621..3a8874c5 100644 --- a/SabreTools.Test/PopulationTests.cs +++ b/SabreTools.DatTools.Test/RemoverTests.cs @@ -1,11 +1,14 @@ using System.Collections.Generic; -using SabreTools.DatTools; +using SabreTools.DatItems; +using SabreTools.DatItems.Formats; using Xunit; -namespace SabreTools.Test +namespace SabreTools.DatTools.Test { - public class PopulationTests + public class RemoverTests { + #region PopulateExclusionsFromList + [Fact] public void PopulateExclusionsFromList_Null() { @@ -94,5 +97,40 @@ namespace SabreTools.Test Assert.Empty(remover.MachineFieldNames); 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(Models.Metadata.Machine.NameKey, "bar"); + machine.SetFieldValue(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 } } \ No newline at end of file diff --git a/SabreTools.DatTools/Remover.cs b/SabreTools.DatTools/Remover.cs index 3c202c9f..36ec54c0 100644 --- a/SabreTools.DatTools/Remover.cs +++ b/SabreTools.DatTools/Remover.cs @@ -174,6 +174,11 @@ namespace SabreTools.DatTools for (int j = 0; j < items.Count; j++) { + // Handle machine removals + var machine = items[j].GetFieldValue(DatItem.MachineKey); + RemoveFields(machine); + + // Handle item removals RemoveFields(items[j]); } } @@ -234,11 +239,6 @@ namespace SabreTools.DatTools #region Common - // Handle Machine fields - var machine = datItem.GetFieldValue(DatItem.MachineKey); - if (MachineFieldNames.Count > 0 && machine != null) - RemoveFields(machine); - // If there are no field names, return if (ItemFieldNames == null || ItemFieldNames.Count == 0) return; diff --git a/SabreTools.Test/RemoverTests.cs b/SabreTools.Test/RemoverTests.cs deleted file mode 100644 index 330331af..00000000 --- a/SabreTools.Test/RemoverTests.cs +++ /dev/null @@ -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(Models.Metadata.Machine.NameKey, "bar"); - machine.SetFieldValue(Models.Metadata.Machine.DescriptionKey, "bar"); - - var remover = new Remover(); - remover.PopulateExclusions("Machine.Name"); - remover.RemoveFields(machine); - - Assert.Null(machine.GetStringFieldValue(Models.Metadata.Machine.NameKey)); - } - } -} \ No newline at end of file