Fix Show/Hide parsing (#133)
* Fix Show/Hide parsing * Improve disabled block test
This commit is contained in:
parent
4862452188
commit
dea0378a16
|
@ -322,7 +322,13 @@ namespace Filtration.Parser.Tests.Services
|
||||||
Environment.NewLine +
|
Environment.NewLine +
|
||||||
"Show" + Environment.NewLine +
|
"Show" + Environment.NewLine +
|
||||||
" ItemLevel > 20" + Environment.NewLine +
|
" ItemLevel > 20" + Environment.NewLine +
|
||||||
" SetTextColor 255 255 0";
|
" 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 blockTranslator = new ItemFilterBlockTranslator(Mock.Of<IBlockGroupHierarchyBuilder>());
|
||||||
|
@ -332,15 +338,21 @@ namespace Filtration.Parser.Tests.Services
|
||||||
var result = translator.TranslateStringToItemFilterScript(testInputScript);
|
var result = translator.TranslateStringToItemFilterScript(testInputScript);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.AreEqual(3, result.ItemFilterBlocks.Count);
|
Assert.AreEqual(5, result.ItemFilterBlocks.Count);
|
||||||
|
|
||||||
var firstBlock = result.ItemFilterBlocks.OfType<ItemFilterBlock>().First();
|
var firstBlock = result.ItemFilterBlocks.OfType<ItemFilterBlock>().First();
|
||||||
var secondBlock = result.ItemFilterBlocks.OfType<ItemFilterBlock>().Skip(1).First();
|
var secondBlock = result.ItemFilterBlocks.OfType<ItemFilterBlock>().Skip(1).First();
|
||||||
var thirdBlock = result.ItemFilterBlocks.OfType<ItemFilterBlock>().Skip(2).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(3, firstBlock.BlockItems.Count);
|
||||||
Assert.AreEqual(5, secondBlock.BlockItems.Count);
|
Assert.AreEqual(5, secondBlock.BlockItems.Count);
|
||||||
Assert.AreEqual(3, thirdBlock.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);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
|
|
@ -61,8 +61,7 @@ namespace Filtration.Parser.Services
|
||||||
lines[i] = lines[i].Trim();
|
lines[i] = lines[i].Trim();
|
||||||
if(!lines[i].StartsWith("#"))
|
if(!lines[i].StartsWith("#"))
|
||||||
{
|
{
|
||||||
string curLine = Regex.Replace(lines[i], @"\s+", "");
|
if ((lines[i].StartsWith("Show") || lines[i].StartsWith("Hide")) && (lines[i].Length == 4 || lines[i][4] == ' ')) // found
|
||||||
if ((curLine.StartsWith("Show") || curLine.StartsWith("Hide")) && (curLine.Length == 4 || curLine[4] == '#')) // found
|
|
||||||
{
|
{
|
||||||
inBlock[i] = true;
|
inBlock[i] = true;
|
||||||
break;
|
break;
|
||||||
|
@ -98,8 +97,8 @@ namespace Filtration.Parser.Services
|
||||||
{
|
{
|
||||||
if (!inDisabledBlock && lines[i].StartsWith("#"))
|
if (!inDisabledBlock && lines[i].StartsWith("#"))
|
||||||
{
|
{
|
||||||
string curLine = Regex.Replace(lines[i].Substring(1), @"\s+", "");
|
string curLine = lines[i].Substring(1).Trim();
|
||||||
if ((curLine.StartsWith("Show") || curLine.StartsWith("Hide")) && (curLine.Length == 4 || curLine[4] == '#') && !inBlock[i])
|
if ((curLine.StartsWith("Show") || curLine.StartsWith("Hide")) && (curLine.Length == 4 || curLine[4] == ' ') && !inBlock[i])
|
||||||
{
|
{
|
||||||
inDisabledBlock = true;
|
inDisabledBlock = true;
|
||||||
lines[i] = lines[i].Substring(1).TrimStart(' ');
|
lines[i] = lines[i].Substring(1).TrimStart(' ');
|
||||||
|
|
Loading…
Reference in New Issue