Files
SabreTools/SabreTools.Test/Filtering/FilteringTests.cs
Matt Nadareski a82b7ccab8 Remover code to own class
This was the last of the major bits of code that was technically distinct from Cleaning. This means that each of the bits of functionality that used to all be in Cleaner are split out into their approrpriate classes.
2021-02-01 12:11:32 -08:00

87 lines
2.3 KiB
C#

using System.Collections.Generic;
using SabreTools.DatItems;
using SabreTools.Filtering;
using Xunit;
namespace SabreTools.Test.Filtering
{
public class FilteringTests
{
[Fact]
public void PassesFiltersDatItemFilterPass()
{
// Setup filter
var filter = new Filter();
filter.PopulateFiltersFromList(new List<string> { "item.name:foo" });
// Setup DatItem
var datItem = CreateDatItem();
// Run filters
bool actual = filter.PassesFilters(datItem);
Assert.True(actual);
}
[Fact]
public void PassesFiltersDatItemFilterFail()
{
// Setup filter
var filter = new Filter();
filter.PopulateFiltersFromList(new List<string> { "item.name:bar" });
// Setup DatItem
var datItem = CreateDatItem();
// Run filters
bool actual = filter.PassesFilters(datItem);
Assert.False(actual);
}
[Fact]
public void PassesFiltersMachineFilterPass()
{
// Setup filter
var filter = new Filter();
filter.PopulateFiltersFromList(new List<string> { "machine.name:bar" });
// Setup DatItem
var datItem = CreateDatItem();
// Run filters
bool actual = filter.PassesFilters(datItem);
Assert.True(actual);
}
[Fact]
public void PassesFiltersMachineFilterFail()
{
// Setup filter
var filter = new Filter();
filter.PopulateFiltersFromList(new List<string> { "machine.name:foo" });
// Setup DatItem
var datItem = CreateDatItem();
// Run filters
bool actual = filter.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",
}
};
}
}
}