Add filtering tests, clean up cleaning tests

This commit is contained in:
Matt Nadareski
2020-12-19 13:42:20 -08:00
parent a777ecc48b
commit f355f5293f
2 changed files with 112 additions and 41 deletions

View File

@@ -4,7 +4,7 @@ using Xunit;
namespace SabreTools.Test.Filtering namespace SabreTools.Test.Filtering
{ {
public class CleanerCleaningTests public class CleaningTests
{ {
[Fact] [Fact]
public void CleanDatItemRemoveUnicodeTest() public void CleanDatItemRemoveUnicodeTest()
@@ -16,21 +16,13 @@ namespace SabreTools.Test.Filtering
}; };
// Setup DatItem // Setup DatItem
var datItem = new Rom var datItem = CreateDatItem("nam诶", "nam诶-2", "nam诶-3");
{
Name = "nam诶",
Machine = new Machine
{
Name = "nam诶-2",
Description = "nam诶-3",
}
};
// Run cleaning // Run cleaning
cleaner.CleanDatItem(datItem); cleaner.CleanDatItem(datItem);
// Check the fields // Check the fields
Assert.Equal("nam", datItem.Name); Assert.Equal("nam", datItem.GetName());
Assert.Equal("nam-2", datItem.Machine.Name); Assert.Equal("nam-2", datItem.Machine.Name);
Assert.Equal("nam-3", datItem.Machine.Description); Assert.Equal("nam-3", datItem.Machine.Description);
} }
@@ -45,21 +37,13 @@ namespace SabreTools.Test.Filtering
}; };
// Setup DatItem // Setup DatItem
var datItem = new Rom var datItem = CreateDatItem("name", "\"ÁБ\"", "ä|/Ж");
{
Name = "name",
Machine = new Machine
{
Name = "\"ÁБ\"",
Description = "ä|/Ж",
}
};
// Run cleaning // Run cleaning
cleaner.CleanDatItem(datItem); cleaner.CleanDatItem(datItem);
// Check the fields // Check the fields
Assert.Equal("name", datItem.Name); Assert.Equal("name", datItem.GetName());
Assert.Equal("'AB'", datItem.Machine.Name); Assert.Equal("'AB'", datItem.Machine.Name);
Assert.Equal("ae-Zh", datItem.Machine.Description); Assert.Equal("ae-Zh", datItem.Machine.Description);
} }
@@ -74,21 +58,13 @@ namespace SabreTools.Test.Filtering
}; };
// Setup DatItem // Setup DatItem
var datItem = new Rom var datItem = CreateDatItem("name", "name-2", "name-3");
{
Name = "name",
Machine = new Machine
{
Name = "name-2",
Description = "name-3",
}
};
// Run cleaning // Run cleaning
cleaner.CleanDatItem(datItem); cleaner.CleanDatItem(datItem);
// Check the fields // Check the fields
Assert.Equal("name", datItem.Name); Assert.Equal("name", datItem.GetName());
Assert.Equal("!", datItem.Machine.Name); Assert.Equal("!", datItem.Machine.Name);
Assert.Equal("name-3", datItem.Machine.Description); Assert.Equal("name-3", datItem.Machine.Description);
} }
@@ -108,23 +84,31 @@ namespace SabreTools.Test.Filtering
}; };
// Setup DatItem // Setup DatItem
var datItem = new Rom var datItem = CreateDatItem("name", "name-2", "name-3");
{
Name = "name",
Machine = new Machine
{
Name = "name-2",
Description = "name-3",
}
};
// Run cleaning // Run cleaning
cleaner.CleanDatItem(datItem); cleaner.CleanDatItem(datItem);
// Check the fields // Check the fields
Assert.Equal(expected, datItem.Name); Assert.Equal(expected, datItem.GetName());
Assert.Equal("name-2", datItem.Machine.Name); Assert.Equal("name-2", datItem.Machine.Name);
Assert.Equal("name-3", datItem.Machine.Description); Assert.Equal("name-3", datItem.Machine.Description);
} }
/// <summary>
/// Generate a consistent DatItem for testing
/// </summary>
private DatItem CreateDatItem(string name, string machine, string desc)
{
return new Rom
{
Name = name,
Machine = new Machine
{
Name = machine,
Description = desc,
}
};
}
} }
} }

View File

@@ -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<string> { "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<string> { "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<string> { "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<string> { "machine.name:foo" });
// Setup DatItem
var datItem = CreateDatItem();
// Run filters
bool actual = cleaner.PassesFilters(datItem);
Assert.False(actual);
}
/// <summary>
/// Generate a consistent DatItem for testing
/// </summary>
private DatItem CreateDatItem()
{
return new Rom
{
Name = "foo",
Machine = new Machine
{
Name = "bar",
Description = "bar",
}
};
}
}
}