diff --git a/SabreTools.Test/Filtering/CleanerCleaningTests.cs b/SabreTools.Test/Filtering/CleaningTests.cs similarity index 69% rename from SabreTools.Test/Filtering/CleanerCleaningTests.cs rename to SabreTools.Test/Filtering/CleaningTests.cs index e4384371..174162e0 100644 --- a/SabreTools.Test/Filtering/CleanerCleaningTests.cs +++ b/SabreTools.Test/Filtering/CleaningTests.cs @@ -4,7 +4,7 @@ using Xunit; namespace SabreTools.Test.Filtering { - public class CleanerCleaningTests + public class CleaningTests { [Fact] public void CleanDatItemRemoveUnicodeTest() @@ -16,21 +16,13 @@ namespace SabreTools.Test.Filtering }; // Setup DatItem - var datItem = new Rom - { - Name = "nam诶", - Machine = new Machine - { - Name = "nam诶-2", - Description = "nam诶-3", - } - }; + var datItem = CreateDatItem("nam诶", "nam诶-2", "nam诶-3"); // Run cleaning cleaner.CleanDatItem(datItem); // Check the fields - Assert.Equal("nam", datItem.Name); + Assert.Equal("nam", datItem.GetName()); Assert.Equal("nam-2", datItem.Machine.Name); Assert.Equal("nam-3", datItem.Machine.Description); } @@ -45,21 +37,13 @@ namespace SabreTools.Test.Filtering }; // Setup DatItem - var datItem = new Rom - { - Name = "name", - Machine = new Machine - { - Name = "\"ÁБ\"", - Description = "ä|/Ж", - } - }; + var datItem = CreateDatItem("name", "\"ÁБ\"", "ä|/Ж"); // Run cleaning cleaner.CleanDatItem(datItem); // Check the fields - Assert.Equal("name", datItem.Name); + Assert.Equal("name", datItem.GetName()); Assert.Equal("'AB'", datItem.Machine.Name); Assert.Equal("ae-Zh", datItem.Machine.Description); } @@ -74,21 +58,13 @@ namespace SabreTools.Test.Filtering }; // Setup DatItem - var datItem = new Rom - { - Name = "name", - Machine = new Machine - { - Name = "name-2", - Description = "name-3", - } - }; + var datItem = CreateDatItem("name", "name-2", "name-3"); // Run cleaning cleaner.CleanDatItem(datItem); // Check the fields - Assert.Equal("name", datItem.Name); + Assert.Equal("name", datItem.GetName()); Assert.Equal("!", datItem.Machine.Name); Assert.Equal("name-3", datItem.Machine.Description); } @@ -108,23 +84,31 @@ namespace SabreTools.Test.Filtering }; // Setup DatItem - var datItem = new Rom - { - Name = "name", - Machine = new Machine - { - Name = "name-2", - Description = "name-3", - } - }; + var datItem = CreateDatItem("name", "name-2", "name-3"); // Run cleaning cleaner.CleanDatItem(datItem); // Check the fields - Assert.Equal(expected, datItem.Name); + Assert.Equal(expected, datItem.GetName()); Assert.Equal("name-2", datItem.Machine.Name); Assert.Equal("name-3", datItem.Machine.Description); } + + /// + /// Generate a consistent DatItem for testing + /// + private DatItem CreateDatItem(string name, string machine, string desc) + { + return new Rom + { + Name = name, + Machine = new Machine + { + Name = machine, + Description = desc, + } + }; + } } } \ No newline at end of file diff --git a/SabreTools.Test/Filtering/FilteringTests.cs b/SabreTools.Test/Filtering/FilteringTests.cs new file mode 100644 index 00000000..98280d2b --- /dev/null +++ b/SabreTools.Test/Filtering/FilteringTests.cs @@ -0,0 +1,87 @@ +using System.Collections.Generic; + +using SabreTools.DatItems; +using SabreTools.Filtering; +using Xunit; + +namespace SabreTools.Test.Filtering +{ + public class FilteringTests + { + [Fact] + public void PassesFiltersDatItemFilterPass() + { + // Setup cleaner + var cleaner = new Cleaner(); + cleaner.PopulateFiltersFromList(new List { "item.name:foo" }); + + // Setup DatItem + var datItem = CreateDatItem(); + + // Run filters + bool actual = cleaner.PassesFilters(datItem); + Assert.True(actual); + } + + [Fact] + public void PassesFiltersDatItemFilterFail() + { + // Setup cleaner + var cleaner = new Cleaner(); + cleaner.PopulateFiltersFromList(new List { "item.name:bar" }); + + // Setup DatItem + var datItem = CreateDatItem(); + + // Run filters + bool actual = cleaner.PassesFilters(datItem); + Assert.False(actual); + } + + [Fact] + public void PassesFiltersMachineFilterPass() + { + // Setup cleaner + var cleaner = new Cleaner(); + cleaner.PopulateFiltersFromList(new List { "machine.name:bar" }); + + // Setup DatItem + var datItem = CreateDatItem(); + + // Run filters + bool actual = cleaner.PassesFilters(datItem); + Assert.True(actual); + } + + [Fact] + public void PassesFiltersMachineFilterFail() + { + // Setup cleaner + var cleaner = new Cleaner(); + cleaner.PopulateFiltersFromList(new List { "machine.name:foo" }); + + // Setup DatItem + var datItem = CreateDatItem(); + + // Run filters + bool actual = cleaner.PassesFilters(datItem); + Assert.False(actual); + } + + /// + /// Generate a consistent DatItem for testing + /// + private DatItem CreateDatItem() + { + return new Rom + { + Name = "foo", + Machine = new Machine + { + Name = "bar", + Description = "bar", + } + }; + } + } +} \ No newline at end of file