public void TranslateItemFilterScriptToString_ExtraLineBetweenBlocksSettingFalse_ReturnsCorrectOutput() { Settings.Default.ExtraLineBetweenBlocks = false; var script = new ItemFilterScript(); var block1 = new ItemFilterBlock { Description = "Test Filter 1" }; block1.BlockItems.Add(new ItemLevelBlockItem(FilterPredicateOperator.GreaterThan, 5)); var block2 = new ItemFilterBlock(); block2.BlockItems.Add(new QualityBlockItem(FilterPredicateOperator.LessThan, 15)); block2.BlockItems.Add(new FontSizeBlockItem(7)); block2.BlockItems.Add(new WidthBlockItem(FilterPredicateOperator.Equal, 3)); script.ItemFilterBlocks.Add(block1); script.ItemFilterBlocks.Add(block2); var expectedOutput = "# Script edited with Filtration - https://github.com/ben-wallis/Filtration" + Environment.NewLine + "# Test Filter 1" + Environment.NewLine + "Show" + Environment.NewLine + " ItemLevel > 5" + Environment.NewLine + "Show" + Environment.NewLine + " Quality < 15" + Environment.NewLine + " Width = 3" + Environment.NewLine + " SetFontSize 7" + Environment.NewLine; var blockTranslator = new ItemFilterBlockTranslator(_testUtility.MockBlockGroupHierarchyBuilder.Object); var translator = new ItemFilterScriptTranslator(blockTranslator, _testUtility.MockBlockGroupHierarchyBuilder.Object); // Act var result = translator.TranslateItemFilterScriptToString(script); // Assert Assert.AreEqual(expectedOutput, result); }
public void TranslateStringToItemFilterScript_Blah() { // Arrange var testInput = Resources.testscript2; var blockTranslator = new ItemFilterBlockTranslator(Mock.Of <IBlockGroupHierarchyBuilder>()); var translator = CreateItemFilterScriptTranslator(itemFilterBlockTranslator: blockTranslator); // Act var result = translator.TranslateStringToItemFilterScript(testInput); // Assert var expectedResult = Mock.Of <IItemFilterScript>(s => s.ItemFilterBlocks == new ObservableCollection <IItemFilterBlockBase> { Mock.Of <IItemFilterBlock>(c => c.Description == "Blockdescription"), Mock.Of <IItemFilterCommentBlock>(c => c.Comment == " commentymccommentface"), Mock.Of <IItemFilterBlock>(), Mock.Of <IItemFilterCommentBlock>(c => c.Comment == "commment\r\nmorecomment\r\nblah"), Mock.Of <IItemFilterCommentBlock>(c => c.Comment == "anothercomment"), Mock.Of <IItemFilterCommentBlock>(c => c.Comment == "notpartofblockdescription "), Mock.Of <IItemFilterBlock>(c => c.Description == "blockdescription2") } && s.ItemFilterBlockGroups == new ObservableCollection <ItemFilterBlockGroup> { new ItemFilterBlockGroup("Root", null, false) } && s.ThemeComponents == new ThemeComponentCollection() && s.ItemFilterScriptSettings == new ItemFilterScriptSettings(new ThemeComponentCollection()) && s.Description == "Script description\r\nScript description\r\nScript description\r\nScript description"); result.ShouldBeEquivalentTo(expectedResult); }
public void TranslateStringToItemFilterScript_DisabledBlock_ReturnsCorrectBlocks() { // Arrange var testInputScript = "Show" + Environment.NewLine + " ItemLevel > 2" + Environment.NewLine + " SetTextColor 255 40 0" + Environment.NewLine + Environment.NewLine + "#Show" + Environment.NewLine + "# ItemLevel > 2" + Environment.NewLine + "# SetTextColor 255 215 0" + Environment.NewLine + "# SetBorderColor 255 105 180" + Environment.NewLine + "# SetFontSize 32" + Environment.NewLine + Environment.NewLine + "Show" + Environment.NewLine + " ItemLevel > 20" + Environment.NewLine + " SetTextColor 255 255 0"; var blockTranslator = new ItemFilterBlockTranslator(Mock.Of <IBlockGroupHierarchyBuilder>()); var translator = CreateItemFilterScriptTranslator(itemFilterBlockTranslator: blockTranslator); // Act var result = translator.TranslateStringToItemFilterScript(testInputScript); // Assert Assert.AreEqual(3, result.ItemFilterBlocks.Count); var firstBlock = result.ItemFilterBlocks.OfType <ItemFilterBlock>().First(); var secondBlock = result.ItemFilterBlocks.OfType <ItemFilterBlock>().Skip(1).First(); var thirdBlock = result.ItemFilterBlocks.OfType <ItemFilterBlock>().Skip(2).First(); Assert.AreEqual(3, firstBlock.BlockItems.Count); Assert.AreEqual(5, secondBlock.BlockItems.Count); Assert.AreEqual(3, thirdBlock.BlockItems.Count); }
public void TranslateStringToItemFilterScript_DisabledBlock_BlockDescriptionNotLost() { // 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" + Environment.NewLine + "# ItemLevel > 2" + Environment.NewLine + "#Disabled Block End"; var blockTranslator = new ItemFilterBlockTranslator(_testUtility.MockBlockGroupHierarchyBuilder.Object); 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); }
public void TranslateStringToItemFilterScript_DisabledBlockWithBlockGroup_ReturnsCorrectBlock() { // Arrange var testInputScript = "Show" + Environment.NewLine + " ItemLevel > 2" + Environment.NewLine + " SetTextColor 255 40 0" + Environment.NewLine + Environment.NewLine + "# This is a disabled block" + Environment.NewLine + "#Show#My Block Group" + Environment.NewLine + "# ItemLevel > 2"; var mockBlockGroupHierarchyBuilder = new Mock <IBlockGroupHierarchyBuilder>(); mockBlockGroupHierarchyBuilder.Setup( b => b.IntegrateStringListIntoBlockGroupHierarchy(It.IsAny <IEnumerable <string> >())) .Returns(new ItemFilterBlockGroup("My Block Group", null)); var blockTranslator = new ItemFilterBlockTranslator(mockBlockGroupHierarchyBuilder.Object); var translator = CreateItemFilterScriptTranslator(itemFilterBlockTranslator: blockTranslator); // Act var result = translator.TranslateStringToItemFilterScript(testInputScript); // Assert Assert.AreEqual(2, result.ItemFilterBlocks.Count); var secondBlock = result.ItemFilterBlocks.OfType <ItemFilterBlock>().Skip(1).First(); Assert.AreEqual("This is a disabled block", secondBlock.Description); Assert.AreEqual("My Block Group", secondBlock.BlockGroup.GroupName); }
public void TranslateStringToItemFilterScript_SectionDirectlyBeforeBlockWithoutDescription_ReturnsCorrectObject() { // Arrange var testInputScript = "# My Script" + Environment.NewLine + Environment.NewLine + "# Section: Chance Bases" + Environment.NewLine + "Show" + Environment.NewLine + " BaseType \"Lapis Amulet\" \"Amber Amulet\"" + Environment.NewLine + " SetBorderColor 255 0 255" + Environment.NewLine + " SetFontSize 25"; var blockTranslator = new ItemFilterBlockTranslator(_testUtility.MockBlockGroupHierarchyBuilder.Object); var translator = new ItemFilterScriptTranslator(blockTranslator, _testUtility.MockBlockGroupHierarchyBuilder.Object); // Act var result = translator.TranslateStringToItemFilterScript(testInputScript); // Assert Assert.AreEqual(2, result.ItemFilterBlocks.Count); var block = result.ItemFilterBlocks.First(l => l.GetType() != typeof(ItemFilterSection)); Assert.AreEqual(4, block.BlockItems.Count); var baseTypeItem = block.BlockItems.OfType <BaseTypeBlockItem>().First(); Assert.AreEqual(2, baseTypeItem.Items.Count); }
public void TranslateStringToItemFilterScript_DisabledBlock_ReturnsCorrectBlockCount() { // Arrange var testInputScript = "Show" + Environment.NewLine + " ItemLevel > 2" + Environment.NewLine + " SetTextColor 255 40 0" + Environment.NewLine + Environment.NewLine + "#Disabled Block Start" + Environment.NewLine + "#Show" + Environment.NewLine + "# ItemLevel > 2" + Environment.NewLine + "# SetTextColor 255 215 0" + Environment.NewLine + "# SetBorderColor 255 105 180" + Environment.NewLine + "# SetFontSize 32" + Environment.NewLine + "#Disabled Block End" + Environment.NewLine + Environment.NewLine + "Show" + Environment.NewLine + " ItemLevel > 20" + Environment.NewLine + " SetTextColor 255 255 0"; var blockTranslator = new ItemFilterBlockTranslator(_testUtility.MockBlockGroupHierarchyBuilder.Object); var translator = new ItemFilterScriptTranslator(blockTranslator, _testUtility.MockBlockGroupHierarchyBuilder.Object); // Act var result = translator.TranslateStringToItemFilterScript(testInputScript); // Assert Assert.AreEqual(3, result.ItemFilterBlocks.Count); }
public void TranslateStringToItemFilterScript_ThioleItemFilterTest() { // Arrange var testInput = Resources.ThioleItemFilter; var blockTranslator = new ItemFilterBlockTranslator(_testUtility.MockBlockGroupHierarchyBuilder.Object); var translator = new ItemFilterScriptTranslator(blockTranslator, _testUtility.MockBlockGroupHierarchyBuilder.Object); // Act translator.TranslateStringToItemFilterScript(testInput); // Assert // Not crashing out when loading a huge script means this integration test has passed! }
public void TranslateStringToItemFilterScript_ThioleItemFilterTest() { // Arrange var testInput = Resources.ThioleItemFilter; var blockTranslator = new ItemFilterBlockTranslator(Mock.Of <IBlockGroupHierarchyBuilder>()); var translator = CreateItemFilterScriptTranslator(itemFilterBlockTranslator: blockTranslator); // Act translator.TranslateStringToItemFilterScript(testInput); // Assert // Not crashing out when loading a huge script means this integration test has passed! }
public void TranslateItemFilterScriptToString_FullScript_ReturnsCorrectOutput() { var script = new ItemFilterScript { Description = "Test script description" + Environment.NewLine + "This is a really great script!" + Environment.NewLine + "Multiple line script descriptions are fun!" }; var block1 = new ItemFilterBlock { Description = "Test Filter 1" }; block1.BlockItems.Add(new ItemLevelBlockItem(FilterPredicateOperator.GreaterThan, 5)); var block2 = new ItemFilterBlock(); block2.BlockItems.Add(new QualityBlockItem(FilterPredicateOperator.LessThan, 15)); block2.BlockItems.Add(new FontSizeBlockItem(7)); block2.BlockItems.Add(new WidthBlockItem(FilterPredicateOperator.Equal, 3)); script.ItemFilterBlocks.Add(block1); script.ItemFilterBlocks.Add(block2); var expectedOutput = "# Script edited with Filtration - https://github.com/ben-wallis/Filtration" + Environment.NewLine + "# Test script description" + Environment.NewLine + "# This is a really great script!" + Environment.NewLine + "# Multiple line script descriptions are fun!" + Environment.NewLine + Environment.NewLine + "# Test Filter 1" + Environment.NewLine + "Show" + Environment.NewLine + " ItemLevel > 5" + Environment.NewLine + Environment.NewLine + "Show" + Environment.NewLine + " Quality < 15" + Environment.NewLine + " Width = 3" + Environment.NewLine + " SetFontSize 7" + Environment.NewLine + Environment.NewLine; var blockTranslator = new ItemFilterBlockTranslator(_testUtility.MockBlockGroupHierarchyBuilder.Object); var translator = new ItemFilterScriptTranslator(blockTranslator, _testUtility.MockBlockGroupHierarchyBuilder.Object); // Act var result = translator.TranslateItemFilterScriptToString(script); // Assert Assert.AreEqual(expectedOutput, result); }
public void TranslateStringToItemFilterScript_DisabledBlock_ReturnsCorrectBlocks() { // Arrange var testInputScript = "Show" + Environment.NewLine + " ItemLevel > 2" + Environment.NewLine + " SetTextColor 255 40 0" + Environment.NewLine + Environment.NewLine + "#Show" + Environment.NewLine + "# ItemLevel > 2" + Environment.NewLine + "# SetTextColor 255 215 0" + Environment.NewLine + "# SetBorderColor 255 105 180" + Environment.NewLine + "# SetFontSize 32" + Environment.NewLine + Environment.NewLine + "Show" + Environment.NewLine + " ItemLevel > 20" + Environment.NewLine + " SetTextColor 255 255 0" + Environment.NewLine + Environment.NewLine + "#Show $Recipes->Glassblower->15% %D1" + Environment.NewLine + "# SetTextColor 255 255 0" + Environment.NewLine + Environment.NewLine + "#Hide simple text without any special character" + Environment.NewLine + "# SetTextColor 255 255 0"; var blockTranslator = new ItemFilterBlockTranslator(Mock.Of <IBlockGroupHierarchyBuilder>()); var translator = CreateItemFilterScriptTranslator(itemFilterBlockTranslator: blockTranslator); // Act var result = translator.TranslateStringToItemFilterScript(testInputScript); // Assert Assert.AreEqual(5, result.ItemFilterBlocks.Count); var firstBlock = result.ItemFilterBlocks.OfType <ItemFilterBlock>().First(); var secondBlock = result.ItemFilterBlocks.OfType <ItemFilterBlock>().Skip(1).First(); var thirdBlock = result.ItemFilterBlocks.OfType <ItemFilterBlock>().Skip(2).First(); var fourthBlock = result.ItemFilterBlocks.OfType <ItemFilterBlock>().Skip(3).First(); var fifthBlock = result.ItemFilterBlocks.OfType <ItemFilterBlock>().Skip(4).First(); Assert.AreEqual(3, firstBlock.BlockItems.Count); Assert.AreEqual(5, secondBlock.BlockItems.Count); Assert.AreEqual(3, thirdBlock.BlockItems.Count); Assert.AreEqual(2, fourthBlock.BlockItems.Count); Assert.AreEqual(2, fifthBlock.BlockItems.Count); Assert.AreEqual(false, fourthBlock.Enabled); Assert.AreEqual(false, fifthBlock.Enabled); }
public void TranslateStringToItemFilterScript_Blah() { // Arrange var testInput = Resources.testscript2; var blockTranslator = new ItemFilterBlockTranslator(Mock.Of <IBlockGroupHierarchyBuilder>()); var translator = CreateItemFilterScriptTranslator(itemFilterBlockTranslator: blockTranslator); // Act var result = translator.TranslateStringToItemFilterScript(testInput); // Assert var expectedResult = Mock.Of <IItemFilterScript>(s => s.ItemFilterBlocks == new ObservableCollection <IItemFilterBlockBase> { Mock.Of <IItemFilterBlock>(c => c.Description == "Blockdescription" && c.OriginalText == "#Blockdescription" + Environment.NewLine + "Show #Flasks - Endgame - Life/Mana - Divine/Eternal - Q10+ - Normal"+ Environment.NewLine + " Class \"Life Flasks\" \"Mana Flasks\""+ Environment.NewLine + " Rarity Normal"+ Environment.NewLine + " SetFontSize 28" ), Mock.Of <IItemFilterCommentBlock>(c => c.Comment == " commentymccommentface" && c.OriginalText == "# commentymccommentface"), Mock.Of <IItemFilterBlock>(c => c.OriginalText == "Show" + Environment.NewLine + " Class \"Life Flasks\" \"Mana Flasks\""+ Environment.NewLine + " Rarity Normal"+ Environment.NewLine + " DropLevel >= 60" ), Mock.Of <IItemFilterCommentBlock>(c => c.Comment == "commment\r\nmorecomment\r\nblah" && c.OriginalText == "#commment" + Environment.NewLine + "#morecomment" + Environment.NewLine + "#blah"), Mock.Of <IItemFilterCommentBlock>(c => c.Comment == "anothercomment" && c.OriginalText == "#anothercomment"), Mock.Of <IItemFilterCommentBlock>(c => c.Comment == "notpartofblockdescription " && c.OriginalText == "#notpartofblockdescription "), Mock.Of <IItemFilterBlock>(c => c.Description == "blockdescription2" && c.OriginalText == "#blockdescription2" + Environment.NewLine + "Show #TestBlock"+ Environment.NewLine + " Class \"Life Flasks\" \"Mana Flasks\""+ Environment.NewLine + " Rarity Normal " ) } && s.ItemFilterBlockGroups == new ObservableCollection <ItemFilterBlockGroup> { new ItemFilterBlockGroup("Root", null, false) } && s.ThemeComponents == new ThemeComponentCollection() && s.ItemFilterScriptSettings == new ItemFilterScriptSettings(new ThemeComponentCollection()) && s.Description == "Script description\r\nScript description\r\nScript description\r\nScript description"); result.ShouldBeEquivalentTo(expectedResult); }
public void TranslateStringToItemFilterScript_OneLineDescriptionNoBlockDescriptionAddsDescriptionToScript() { // Arrange var testInputScript = "# Script edited with Filtration - https://github.com/ben-wallis/Filtration" + Environment.NewLine + "Show" + Environment.NewLine + "BaseType \"Maelström Staff\"" + Environment.NewLine + Environment.NewLine; var blockTranslator = new ItemFilterBlockTranslator(Mock.Of <IBlockGroupHierarchyBuilder>()); var translator = CreateItemFilterScriptTranslator(itemFilterBlockTranslator: blockTranslator); // Act var result = translator.TranslateStringToItemFilterScript(testInputScript); // Assert Assert.AreEqual("Script edited with Filtration - https://github.com/ben-wallis/Filtration", result.Description); var firstBlock = result.ItemFilterBlocks.OfType <ItemFilterBlock>().First(); Assert.IsNull(firstBlock.Description); }
public void TranslateItemFilterScriptToString_ExtraLineBetweenBlocksSettingFalse_ReturnsCorrectOutput() { Settings.Default.ExtraLineBetweenBlocks = false; var script = new ItemFilterScript(); var block1 = new ItemFilterBlock { Description = "Test Filter 1" }; block1.BlockItems.Add(new ItemLevelBlockItem(FilterPredicateOperator.GreaterThan, 5)); var block2 = new ItemFilterBlock(); block2.BlockItems.Add(new QualityBlockItem(FilterPredicateOperator.LessThan, 15)); block2.BlockItems.Add(new FontSizeBlockItem(7)); block2.BlockItems.Add(new WidthBlockItem(FilterPredicateOperator.Equal, 3)); script.ItemFilterBlocks.Add(block1); script.ItemFilterBlocks.Add(block2); var expectedOutput = "# Script edited with Filtration - https://github.com/ben-wallis/Filtration" + Environment.NewLine + Environment.NewLine + "# Test Filter 1" + Environment.NewLine + "Show" + Environment.NewLine + " ItemLevel > 5" + Environment.NewLine + "Show" + Environment.NewLine + " Quality < 15" + Environment.NewLine + " Width = 3" + Environment.NewLine + " SetFontSize 7" + Environment.NewLine; var blockTranslator = new ItemFilterBlockTranslator(Mock.Of <IBlockGroupHierarchyBuilder>()); var translator = CreateItemFilterScriptTranslator(itemFilterBlockTranslator: blockTranslator); // Act var result = translator.TranslateItemFilterScriptToString(script); // Assert Assert.AreEqual(expectedOutput, result); }
public void TranslateStringToItemFilterScript_DisabledBlock_BlockDescriptionNotLost() { // Arrange var testInputScript = "Show" + Environment.NewLine + " ItemLevel > 2" + Environment.NewLine + " SetTextColor 255 40 0" + Environment.NewLine + Environment.NewLine + "# This is a disabled block" + Environment.NewLine + "#Show" + Environment.NewLine + "# ItemLevel > 2"; var blockTranslator = new ItemFilterBlockTranslator(Mock.Of <IBlockGroupHierarchyBuilder>()); var translator = CreateItemFilterScriptTranslator(itemFilterBlockTranslator: blockTranslator); // Act var result = translator.TranslateStringToItemFilterScript(testInputScript); // Assert Assert.AreEqual(2, result.ItemFilterBlocks.Count); var secondBlock = result.ItemFilterBlocks.OfType <ItemFilterBlock>().Skip(1).First(); Assert.AreEqual("This is a disabled block", secondBlock.Description); }
public ItemFilterBlockTranslatorTestUtility() { // Test Data TestBlock = new ItemFilterBlock(); // Mock setups MockBlockGroupHierarchyBuilder = new Mock<IBlockGroupHierarchyBuilder>(); // Class under test instantiation Translator = new ItemFilterBlockTranslator(MockBlockGroupHierarchyBuilder.Object); }
public void TranslateStringToItemFilterScript_DisabledBlock_ReturnsCorrectBlocks() { // Arrange var testInputScript = "Show" + Environment.NewLine + " ItemLevel > 2" + Environment.NewLine + " SetTextColor 255 40 0" + Environment.NewLine + Environment.NewLine + "#Disabled Block Start" + Environment.NewLine + "#Show" + Environment.NewLine + "# ItemLevel > 2" + Environment.NewLine + "# SetTextColor 255 215 0" + Environment.NewLine + "# SetBorderColor 255 105 180" + Environment.NewLine + "# SetFontSize 32" + Environment.NewLine + "#Disabled Block End" + Environment.NewLine + Environment.NewLine + "Show" + Environment.NewLine + " ItemLevel > 20" + Environment.NewLine + " SetTextColor 255 255 0"; var blockTranslator = new ItemFilterBlockTranslator(_testUtility.MockBlockGroupHierarchyBuilder.Object); var translator = new ItemFilterScriptTranslator(blockTranslator, _testUtility.MockBlockGroupHierarchyBuilder.Object); // Act var result = translator.TranslateStringToItemFilterScript(testInputScript); // Assert Assert.AreEqual(3, result.ItemFilterBlocks.Count); var firstBlock = result.ItemFilterBlocks.First(); var secondBlock = result.ItemFilterBlocks.Skip(1).First(); var thirdBlock = result.ItemFilterBlocks.Skip(2).First(); Assert.AreEqual(3, firstBlock.BlockItems.Count); Assert.AreEqual(5, secondBlock.BlockItems.Count); Assert.AreEqual(3, thirdBlock.BlockItems.Count); }
public void TranslateStringToItemFilterScript_OneLineDescriptionNoBlockDescriptionAddsDescriptionToScript() { // Arrange var testInputScript = "# Script edited with Filtration - https://github.com/ben-wallis/Filtration" + Environment.NewLine + "Show" + Environment.NewLine + "BaseType \"Maelström Staff\"" + Environment.NewLine + Environment.NewLine; var blockTranslator = new ItemFilterBlockTranslator(_testUtility.MockBlockGroupHierarchyBuilder.Object); var translator = new ItemFilterScriptTranslator(blockTranslator, _testUtility.MockBlockGroupHierarchyBuilder.Object); // Act var result = translator.TranslateStringToItemFilterScript(testInputScript); // Assert Assert.AreEqual("Script edited with Filtration - https://github.com/ben-wallis/Filtration", result.Description); var firstBlock = result.ItemFilterBlocks.First(); Assert.IsNull(firstBlock.Description); }
public void TranslateStringToItemFilterScript_SectionDirectlyBeforeBlockWithoutDescription_ReturnsCorrectObject() { // Arrange var testInputScript = "# My Script" + Environment.NewLine + Environment.NewLine + "# Section: Chance Bases" + Environment.NewLine + "Show" + Environment.NewLine + " BaseType \"Lapis Amulet\" \"Amber Amulet\"" + Environment.NewLine + " SetBorderColor 255 0 255" + Environment.NewLine + " SetFontSize 25"; var blockTranslator = new ItemFilterBlockTranslator(_testUtility.MockBlockGroupHierarchyBuilder.Object); var translator = new ItemFilterScriptTranslator(blockTranslator, _testUtility.MockBlockGroupHierarchyBuilder.Object); // Act var result = translator.TranslateStringToItemFilterScript(testInputScript); // Assert Assert.AreEqual(2, result.ItemFilterBlocks.Count); var block = result.ItemFilterBlocks.First(l => l.GetType() != typeof(ItemFilterSection)); Assert.AreEqual(4, block.BlockItems.Count); var baseTypeItem = block.BlockItems.OfType<BaseTypeBlockItem>().First(); Assert.AreEqual(2, baseTypeItem.Items.Count); }
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<IEnumerable<string>>())) .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); }