diff --git a/Filtration.Tests/Translators/TestItemFilterScriptTranslator.cs b/Filtration.Tests/Translators/TestItemFilterScriptTranslator.cs index c1082f8..8d1b196 100644 --- a/Filtration.Tests/Translators/TestItemFilterScriptTranslator.cs +++ b/Filtration.Tests/Translators/TestItemFilterScriptTranslator.cs @@ -353,6 +353,39 @@ namespace Filtration.Tests.Translators Assert.AreEqual("This is a disabled block", secondBlock.Description); } + [Test] + public void TranslateStringToItemFilterScript_DisabledBlockWithBlockGroup_ReturnsCorrectBlock() + { + // Arrange + var testInputScript = "Show" + Environment.NewLine + + " ItemLevel > 2" + Environment.NewLine + + " SetTextColor 255 40 0" + Environment.NewLine + + Environment.NewLine + + "#Disabled Block Start" + Environment.NewLine + + "# This is a disabled block" + Environment.NewLine + + "#Show#My Block Group" + Environment.NewLine + + "# ItemLevel > 2" + Environment.NewLine + + "#Disabled Block End"; + + + var blockTranslator = new ItemFilterBlockTranslator(_testUtility.MockBlockGroupHierarchyBuilder.Object); + _testUtility.MockBlockGroupHierarchyBuilder.Setup( + b => b.IntegrateStringListIntoBlockGroupHierarchy(It.IsAny>())) + .Returns(new ItemFilterBlockGroup("My Block Group", null)); + + var translator = new ItemFilterScriptTranslator(blockTranslator, + _testUtility.MockBlockGroupHierarchyBuilder.Object); + + // Act + var result = translator.TranslateStringToItemFilterScript(testInputScript); + + // Assert + Assert.AreEqual(2, result.ItemFilterBlocks.Count); + var secondBlock = result.ItemFilterBlocks.Skip(1).First(); + Assert.AreEqual("This is a disabled block", secondBlock.Description); + Assert.AreEqual("My Block Group", secondBlock.BlockGroup.GroupName); + } + private class ItemFilterScriptTranslatorTestUtility { public ItemFilterScriptTranslatorTestUtility() diff --git a/Filtration/Properties/AssemblyInfo.cs b/Filtration/Properties/AssemblyInfo.cs index e28c716..be0d6ee 100644 --- a/Filtration/Properties/AssemblyInfo.cs +++ b/Filtration/Properties/AssemblyInfo.cs @@ -50,7 +50,7 @@ using System.Windows; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("0.6.*")] +[assembly: AssemblyVersion("0.8.*")] [assembly: InternalsVisibleTo("Filtration.Tests")] [assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")] \ No newline at end of file diff --git a/Filtration/Translators/ItemFilterScriptTranslator.cs b/Filtration/Translators/ItemFilterScriptTranslator.cs index 13a6c08..fe3e25e 100644 --- a/Filtration/Translators/ItemFilterScriptTranslator.cs +++ b/Filtration/Translators/ItemFilterScriptTranslator.cs @@ -56,6 +56,7 @@ namespace Filtration.Translators } lines[i] = lines[i].TrimStart('#'); + lines[i] = lines[i].Replace("#", " # "); var spaceOrEndOfLinePos = lines[i].IndexOf(" ", StringComparison.Ordinal) > 0 ? lines[i].IndexOf(" ", StringComparison.Ordinal) : lines[i].Length; var lineOption = lines[i].Substring(0, spaceOrEndOfLinePos);