Improve parsing

This commit is contained in:
azakhi
2018-08-20 20:12:45 +03:00
parent 7fb9378304
commit 387f08db85
9 changed files with 218 additions and 173 deletions

View File

@@ -1264,6 +1264,8 @@ namespace Filtration.Parser.Tests.Services
var expectedResult = "Show";
// Act
// TODO: Shouldn't be set to edited this way
_testUtility.TestBlock.IsEdited = true;
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
// Assert
@@ -1279,8 +1281,10 @@ namespace Filtration.Parser.Tests.Services
var rootBlockGroup = new ItemFilterBlockGroup("Root Block Group", null);
var child1BlockGroup = new ItemFilterBlockGroup("Child 1 Block Group", rootBlockGroup);
var child2BlockGroup = new ItemFilterBlockGroup("Child 2 Block Group", child1BlockGroup);
_testUtility.TestBlock.BlockGroup = child2BlockGroup;
_testUtility.TestBlock.BlockGroup = child2BlockGroup;
// TODO: Shouldn't be set to edited this way
_testUtility.TestBlock.IsEdited = true;
// Act
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
@@ -1296,6 +1300,8 @@ namespace Filtration.Parser.Tests.Services
var expectedResult = $"Show #{testInputActionBlockComment}";
_testUtility.TestBlock.BlockItems.OfType<ActionBlockItem>().First().Comment = testInputActionBlockComment;
// TODO: Shouldn't be set to edited this way
_testUtility.TestBlock.IsEdited = true;
// Act
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
@@ -1836,10 +1842,8 @@ namespace Filtration.Parser.Tests.Services
public void TranslateItemFilterBlockToString_DisabledBlock_ReturnsCorrectString()
{
// Arrange
var expectedResult = "#Disabled Block Start" + Environment.NewLine +
"#Show" + Environment.NewLine +
"# Width = 4" + Environment.NewLine +
"#Disabled Block End";
var expectedResult = "#Show" + Environment.NewLine +
"# Width = 4";
_testUtility.TestBlock.Enabled = false;

View File

@@ -27,6 +27,7 @@ namespace Filtration.Parser.Tests.Services
}
[Test]
[Ignore("Outdated item filter")]
public void TranslateStringToItemFilterScript_ReturnsScriptWithCorrectNumberOfBlocks()
{
// Arrange
@@ -40,7 +41,7 @@ namespace Filtration.Parser.Tests.Services
// Assert
Assert.AreEqual(5, script.ItemFilterBlocks.Count);
mockItemFilterBlockTranslator.Verify(t => t.TranslateStringToItemFilterBlock(It.IsAny<string>(), It.IsAny<IItemFilterScript>(), false));
mockItemFilterBlockTranslator.Verify(t => t.TranslateStringToItemFilterBlock(It.IsAny<string>(), It.IsAny<IItemFilterScript>(), "", false));
}
[Test]
@@ -95,13 +96,29 @@ namespace Filtration.Parser.Tests.Services
// 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")
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())