Files
SabreTools/SabreTools.Test/Filtering/PopulationTests.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

169 lines
5.1 KiB
C#

using System.Collections.Generic;
using SabreTools.Filtering;
using Xunit;
namespace SabreTools.Test.Filtering
{
public class PopulationTests
{
[Fact]
public void PopulateExclusionNullListTest()
{
// Setup the list
List<string> exclusions = null;
// Setup the remover
var remover = new Remover();
remover.PopulateExclusionsFromList(exclusions);
// Check the exclusion lists
Assert.Empty(remover.DatHeaderRemover.DatHeaderFields);
Assert.Empty(remover.DatItemRemover.MachineFields);
Assert.Empty(remover.DatItemRemover.DatItemFields);
}
[Fact]
public void PopulateExclusionEmptyListTest()
{
// Setup the list
List<string> exclusions = new List<string>();
// Setup the remover
var remover = new Remover();
remover.PopulateExclusionsFromList(exclusions);
// Check the exclusion lists
Assert.Empty(remover.DatHeaderRemover.DatHeaderFields);
Assert.Empty(remover.DatItemRemover.MachineFields);
Assert.Empty(remover.DatItemRemover.DatItemFields);
}
[Fact]
public void PopulateExclusionHeaderFieldTest()
{
// Setup the list
List<string> exclusions = new List<string>
{
"header.datname",
};
// Setup the remover
var remover = new Remover();
remover.PopulateExclusionsFromList(exclusions);
// Check the exclusion lists
Assert.Single(remover.DatHeaderRemover.DatHeaderFields);
Assert.Empty(remover.DatItemRemover.MachineFields);
Assert.Empty(remover.DatItemRemover.DatItemFields);
}
[Fact]
public void PopulateExclusionMachineFieldTest()
{
// Setup the list
List<string> exclusions = new List<string>
{
"machine.name",
};
// Setup the remover
var remover = new Remover();
remover.PopulateExclusionsFromList(exclusions);
// Check the exclusion lists
Assert.Empty(remover.DatHeaderRemover.DatHeaderFields);
Assert.Single(remover.DatItemRemover.MachineFields);
Assert.Empty(remover.DatItemRemover.DatItemFields);
}
[Fact]
public void PopulateExclusionDatItemFieldTest()
{
// Setup the list
List<string> exclusions = new List<string>
{
"item.name",
};
// Setup the remover
var remover = new Remover();
remover.PopulateExclusionsFromList(exclusions);
// Check the exclusion lists
Assert.Empty(remover.DatHeaderRemover.DatHeaderFields);
Assert.Empty(remover.DatItemRemover.MachineFields);
Assert.Single(remover.DatItemRemover.DatItemFields);
}
[Fact]
public void PopulateFilterNullListTest()
{
// Setup the list
List<string> filters = null;
// Setup the filter
var filter = new Filter();
filter.PopulateFiltersFromList(filters);
// Check the filters
Assert.NotNull(filter.MachineFilter);
Assert.NotNull(filter.DatItemFilter);
}
[Fact]
public void PopulateFilterEmptyListTest()
{
// Setup the list
List<string> filters = new List<string>();
// Setup the filter
var filter = new Filter();
filter.PopulateFiltersFromList(filters);
// Check the filters
Assert.NotNull(filter.MachineFilter);
Assert.NotNull(filter.DatItemFilter);
}
[Fact]
public void PopulateFilterMachineFieldTest()
{
// Setup the list
List<string> filters = new List<string>
{
"machine.name:foo",
"!machine.name:bar",
};
// Setup the filter
var filter = new Filter();
filter.PopulateFiltersFromList(filters);
// Check the filters
Assert.Contains("foo", filter.MachineFilter.Name.PositiveSet);
Assert.Contains("bar", filter.MachineFilter.Name.NegativeSet);
Assert.NotNull(filter.DatItemFilter);
}
[Fact]
public void PopulateFilterDatItemFieldTest()
{
// Setup the list
List<string> filters = new List<string>
{
"item.name:foo",
"!item.name:bar"
};
// Setup the filter
var filter = new Filter();
filter.PopulateFiltersFromList(filters);
// Check the filters
Assert.NotNull(filter.MachineFilter);
Assert.Contains("foo", filter.DatItemFilter.Name.PositiveSet);
Assert.Contains("bar", filter.DatItemFilter.Name.NegativeSet);
}
}
}