FIL-1 Changed Block Group Parsing to use " - " as delimiter instead of "-"

This commit is contained in:
Ben Wallis 2017-05-14 12:12:42 +01:00
parent 2d98f7de36
commit bb77138854
2 changed files with 31 additions and 5 deletions

View File

@ -119,7 +119,7 @@ namespace Filtration.Parser.Tests.Services
}
[Test]
public void TranslateStringToItemFilterBlock_NoBlockGroupComment_CallsBlockGroupHierarchyBuilder()
public void TranslateStringToItemFilterBlock_NoBlockGroupComment_DoesNotCallBlockGroupHierarchyBuilder()
{
// Arrange
var inputString = "Show" + Environment.NewLine;
@ -139,7 +139,6 @@ namespace Filtration.Parser.Tests.Services
var inputString = "Show #" + Environment.NewLine;
// Act
_testUtility.MockBlockGroupHierarchyBuilder.Setup(b => b.IntegrateStringListIntoBlockGroupHierarchy(It.IsAny<IEnumerable<string>>())).Verifiable();
_testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
// Assert
@ -154,7 +153,31 @@ namespace Filtration.Parser.Tests.Services
var testBlockGroup = new ItemFilterBlockGroup("zzzzz", null);
// Act
_testUtility.MockBlockGroupHierarchyBuilder.Setup(b => b.IntegrateStringListIntoBlockGroupHierarchy(It.IsAny<IEnumerable<string>>())).Returns(testBlockGroup).Verifiable();
_testUtility.MockBlockGroupHierarchyBuilder
.Setup(b => b.IntegrateStringListIntoBlockGroupHierarchy(It.Is<IEnumerable<string>>(s => s.Contains("Test Block Group") && s.Contains("Test Sub Block Group") && s.Contains("Test Another Block Group"))))
.Returns(testBlockGroup)
.Verifiable();
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
// Assert
Assert.AreEqual(testBlockGroup, result.BlockGroup);
_testUtility.MockBlockGroupHierarchyBuilder.Verify();
}
[Test]
public void TranslateStringToItemFilterBlock_BlockGroupComment_NoSpacingAroundHyphens_SetsBlockItemGroupCorrectly()
{
// Arrange
var inputString = "Show # AAA-BBB-CCC" + Environment.NewLine;
var testBlockGroup = new ItemFilterBlockGroup("zzzzz", null);
// Act
_testUtility.MockBlockGroupHierarchyBuilder
.Setup(b => b.IntegrateStringListIntoBlockGroupHierarchy(It.Is<IEnumerable<string>>(s => s.Contains("AAA-BBB-CCC"))))
.Returns(testBlockGroup)
.Verifiable();
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
// Assert

View File

@ -56,7 +56,7 @@ namespace Filtration.Parser.Services
}
var adjustedLine = line.Replace("#", " # ");
var trimmedLine = adjustedLine.TrimStart(' ').TrimEnd(' ');
var trimmedLine = adjustedLine.Trim();
var spaceOrEndOfLinePos = trimmedLine.IndexOf(" ", StringComparison.Ordinal) > 0 ? trimmedLine.IndexOf(" ", StringComparison.Ordinal) : trimmedLine.Length;
@ -395,7 +395,10 @@ namespace Filtration.Parser.Services
if (blockGroupStart <= 0) return;
var blockGroupText = inputString.Substring(blockGroupStart + 1);
var blockGroups = blockGroupText.Split('-').ToList();
var blockGroups = blockGroupText.Split(new[] { " - " }, StringSplitOptions.RemoveEmptyEntries)
.Select(s => s.Trim())
.ToList();
if (blockGroups.Count(b => !string.IsNullOrEmpty(b.Trim())) > 0)
{
block.BlockGroup = _blockGroupHierarchyBuilder.IntegrateStringListIntoBlockGroupHierarchy(blockGroups);