Filtration/Filtration.Parser.Tests/Services/TestBlockGroupHierarchyBuil...

122 lines
4.7 KiB
C#
Raw Permalink Normal View History

2015-07-02 12:57:43 -04:00
using System.Collections.Generic;
using Filtration.ObjectModel;
using Filtration.Parser.Services;
2015-07-02 12:57:43 -04:00
using NUnit.Framework;
namespace Filtration.Parser.Tests.Services
2015-07-02 12:57:43 -04:00
{
[TestFixture]
public class TestBlockGroupHierarchyBuilder
{
[Test]
public void IntegrateStringListIntoBlockGroupHierarchy_ReturnsBlockGroupWithCorrectName()
{
// Arrange
var inputStrings = new List<string> {"Block Group", "Sub Block Group"};
var rootBlock = new ItemFilterBlockGroup("Root", null);
var builder = new BlockGroupHierarchyBuilder();
// Act
2018-09-06 06:54:54 -04:00
var result = builder.IntegrateStringListIntoBlockGroupHierarchy(inputStrings, rootBlock, true, true);
2015-07-02 12:57:43 -04:00
// Assert
Assert.AreEqual(1, rootBlock.ChildGroups.Count);
2018-09-06 10:17:03 -04:00
Assert.AreEqual("Sub Block Group", result.ParentGroup.GroupName);
2015-07-02 12:57:43 -04:00
}
[Test]
public void IntegrateStringListIntoBlockGroupHierarchy_SingleBlockGroup()
{
// Arrange
var inputStrings = new List<string> { "Block Group" };
var rootBlock = new ItemFilterBlockGroup("Root", null);
var builder = new BlockGroupHierarchyBuilder();
// Act
2018-09-06 06:54:54 -04:00
var result = builder.IntegrateStringListIntoBlockGroupHierarchy(inputStrings, rootBlock, true, true);
2015-07-02 12:57:43 -04:00
// Assert
Assert.AreEqual(1, rootBlock.ChildGroups.Count);
2018-09-06 10:17:03 -04:00
Assert.AreEqual("Block Group", result.ParentGroup.GroupName);
2015-07-02 12:57:43 -04:00
}
[Test]
public void IntegrateStringListIntoBlockGroupHierarchy_AdvancedBlockGroup_MarksBlockGroupAsAdvanced()
{
// Arrange
var inputStrings = new List<string> { "~Block Group" };
var rootBlock = new ItemFilterBlockGroup("Root", null);
var builder = new BlockGroupHierarchyBuilder();
// Act
2018-09-06 06:54:54 -04:00
var result = builder.IntegrateStringListIntoBlockGroupHierarchy(inputStrings, rootBlock, true, true);
2015-07-02 12:57:43 -04:00
// Assert
Assert.AreEqual(1, rootBlock.ChildGroups.Count);
2018-09-06 10:17:03 -04:00
Assert.AreEqual("Block Group", result.ParentGroup.GroupName);
Assert.AreEqual(true, result.ParentGroup.Advanced);
2015-07-02 12:57:43 -04:00
}
[Test]
public void IntegrateStringListIntoBlockGroupHierarchy_AdvancedBlockGroup_ChildrenAreCreatedAsAdvanced()
{
// Arrange
var inputStrings = new List<string> { "~Advanced Block Group", "This should be advanced too" };
var rootBlock = new ItemFilterBlockGroup("Root", null);
var builder = new BlockGroupHierarchyBuilder();
// Act
2018-09-06 06:54:54 -04:00
var result = builder.IntegrateStringListIntoBlockGroupHierarchy(inputStrings, rootBlock, true, true);
2015-07-02 12:57:43 -04:00
// Assert
Assert.AreEqual(1, rootBlock.ChildGroups.Count);
2018-09-06 10:17:03 -04:00
Assert.AreEqual(true, result.ParentGroup.Advanced);
2015-07-02 12:57:43 -04:00
}
[Test]
public void IntegrateStringListIntoBlockGroupHierarchy_ExistingAdvancedBlockGroup_SetsParentCorrectly()
{
// Arrange
var inputStrings = new List<string> { "~Block Group" };
var rootBlock = new ItemFilterBlockGroup("Root", null);
var subBlock = new ItemFilterBlockGroup("Block Group", rootBlock, true);
rootBlock.ChildGroups.Add(subBlock);
var builder = new BlockGroupHierarchyBuilder();
// Act
2018-09-06 06:54:54 -04:00
var result = builder.IntegrateStringListIntoBlockGroupHierarchy(inputStrings, rootBlock, true, true);
2015-07-02 12:57:43 -04:00
// Assert
Assert.AreEqual(1, rootBlock.ChildGroups.Count);
2018-09-06 06:54:54 -04:00
Assert.AreEqual("Block Group", result.ParentGroup.GroupName);
Assert.AreEqual(true, result.ParentGroup.Advanced);
2015-07-02 12:57:43 -04:00
}
[Test]
public void IntegrateStringListIntoBlockGroupHierarchy_MultipleBlockGroups()
{
// Arrange
var rootBlock = new ItemFilterBlockGroup("Root", null);
var builder = new BlockGroupHierarchyBuilder();
// Act
var inputStrings = new List<string> { "Block Group" };
2018-09-06 06:54:54 -04:00
builder.IntegrateStringListIntoBlockGroupHierarchy(inputStrings, rootBlock, true, true);
2015-07-02 12:57:43 -04:00
inputStrings = new List<string> { "Block Group 2" };
2018-09-06 06:54:54 -04:00
builder.IntegrateStringListIntoBlockGroupHierarchy(inputStrings, rootBlock, true, true);
2015-07-02 12:57:43 -04:00
inputStrings = new List<string> { "Block Group", "Sub Block Group" };
2018-09-06 06:54:54 -04:00
var result = builder.IntegrateStringListIntoBlockGroupHierarchy(inputStrings, rootBlock, true, true);
2015-07-02 12:57:43 -04:00
// Assert
Assert.AreEqual(2, rootBlock.ChildGroups.Count);
2018-09-06 10:17:03 -04:00
Assert.AreEqual("Sub Block Group", result.ParentGroup.GroupName);
2015-07-02 12:57:43 -04:00
}
}
}