Files
SabreTools/SabreTools.DatTools.Test/RemoverTests.cs

136 lines
3.7 KiB
C#
Raw Normal View History

2020-12-18 23:06:28 -08:00
using System.Collections.Generic;
2025-02-19 14:20:05 -05:00
using SabreTools.DatItems;
using SabreTools.DatItems.Formats;
2020-12-18 23:06:28 -08:00
using Xunit;
2025-02-19 14:20:05 -05:00
namespace SabreTools.DatTools.Test
2020-12-18 23:06:28 -08:00
{
2025-02-19 14:20:05 -05:00
public class RemoverTests
2020-12-18 23:06:28 -08:00
{
2025-02-19 14:20:05 -05:00
#region PopulateExclusionsFromList
2020-12-18 23:06:28 -08:00
[Fact]
public void PopulateExclusionsFromList_Null()
2020-12-18 23:06:28 -08:00
{
// Setup the list
2024-03-05 13:32:49 -05:00
List<string>? exclusions = null;
2020-12-18 23:06:28 -08:00
// Setup the remover
var remover = new Remover();
remover.PopulateExclusionsFromList(exclusions);
2020-12-18 23:06:28 -08:00
// Check the exclusion lists
2024-03-05 16:37:52 -05:00
Assert.Empty(remover.HeaderFieldNames);
Assert.Empty(remover.MachineFieldNames);
Assert.Empty(remover.ItemFieldNames);
2020-12-18 23:06:28 -08:00
}
[Fact]
public void PopulateExclusionsFromList_Empty()
2020-12-18 23:06:28 -08:00
{
// Setup the list
2024-03-05 16:37:52 -05:00
List<string> exclusions = [];
2020-12-18 23:06:28 -08:00
// Setup the remover
var remover = new Remover();
remover.PopulateExclusionsFromList(exclusions);
2020-12-18 23:06:28 -08:00
// Check the exclusion lists
2024-03-05 16:37:52 -05:00
Assert.Empty(remover.HeaderFieldNames);
Assert.Empty(remover.MachineFieldNames);
Assert.Empty(remover.ItemFieldNames);
2020-12-18 23:06:28 -08:00
}
[Fact]
public void PopulateExclusionsFromList_HeaderField()
2020-12-18 23:06:28 -08:00
{
// Setup the list
2024-03-05 13:32:49 -05:00
List<string> exclusions =
[
2020-12-18 23:06:28 -08:00
"header.datname",
2024-03-05 13:32:49 -05:00
];
2020-12-18 23:06:28 -08:00
// Setup the remover
var remover = new Remover();
remover.PopulateExclusionsFromList(exclusions);
2020-12-18 23:06:28 -08:00
// Check the exclusion lists
2024-03-05 16:37:52 -05:00
Assert.Empty(remover.HeaderFieldNames);
Assert.Empty(remover.MachineFieldNames);
Assert.Empty(remover.ItemFieldNames);
2020-12-18 23:06:28 -08:00
}
[Fact]
public void PopulateExclusionsFromList_MachineField()
2020-12-18 23:06:28 -08:00
{
// Setup the list
2024-03-05 13:32:49 -05:00
List<string> exclusions =
[
2020-12-18 23:06:28 -08:00
"machine.name",
2024-03-05 13:32:49 -05:00
];
2020-12-18 23:06:28 -08:00
// Setup the remover
var remover = new Remover();
remover.PopulateExclusionsFromList(exclusions);
2020-12-18 23:06:28 -08:00
// Check the exclusion lists
2024-03-05 16:37:52 -05:00
Assert.Empty(remover.HeaderFieldNames);
Assert.Single(remover.MachineFieldNames);
Assert.Empty(remover.ItemFieldNames);
2020-12-18 23:06:28 -08:00
}
[Fact]
public void PopulateExclusionsFromList_ItemField()
2020-12-18 23:06:28 -08:00
{
// Setup the list
2024-03-05 13:32:49 -05:00
List<string> exclusions =
[
2020-12-18 23:06:28 -08:00
"item.name",
2024-03-05 13:32:49 -05:00
];
2020-12-18 23:06:28 -08:00
// Setup the remover
var remover = new Remover();
remover.PopulateExclusionsFromList(exclusions);
2020-12-18 23:06:28 -08:00
// Check the exclusion lists
2024-03-05 16:37:52 -05:00
Assert.Empty(remover.HeaderFieldNames);
Assert.Empty(remover.MachineFieldNames);
Assert.Single(remover.ItemFieldNames);
2020-12-18 23:06:28 -08:00
}
2025-02-19 14:20:05 -05:00
#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.SetName("bar");
2025-02-19 14:20:05 -05:00
machine.SetFieldValue<string?>(Models.Metadata.Machine.DescriptionKey, "bar");
var remover = new Remover();
remover.PopulateExclusions("Machine.Name");
remover.RemoveFields(machine);
Assert.Null(machine.GetName());
2025-02-19 14:20:05 -05:00
}
#endregion
2020-12-18 23:06:28 -08:00
}
}