Add tests and fix theme bug
This commit is contained in:
parent
3851ad51e1
commit
6be29dbd28
|
@ -405,6 +405,24 @@ namespace Filtration.Parser.Tests.Services
|
||||||
Assert.IsTrue(blockItem.BooleanValue);
|
Assert.IsTrue(blockItem.BooleanValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TranslateStringToItemFilterBlock_MapTier_ReturnsCorrectObject()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var inputString = "Show" + Environment.NewLine +
|
||||||
|
" MapTier >= 15";
|
||||||
|
|
||||||
|
// Act
|
||||||
|
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
|
||||||
|
Assert.AreEqual(1, result.BlockItems.Count(b => b is MapTierBlockItem));
|
||||||
|
var blockItem = result.BlockItems.OfType<MapTierBlockItem>().First();
|
||||||
|
Assert.AreEqual(15, blockItem.FilterPredicate.PredicateOperand);
|
||||||
|
Assert.AreEqual(FilterPredicateOperator.GreaterThanOrEqual, blockItem.FilterPredicate.PredicateOperator);
|
||||||
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void TranslateStringToItemFilterBlock_ShapedMap_ReturnsCorrectObject()
|
public void TranslateStringToItemFilterBlock_ShapedMap_ReturnsCorrectObject()
|
||||||
{
|
{
|
||||||
|
@ -925,7 +943,10 @@ namespace Filtration.Parser.Tests.Services
|
||||||
" SetBorderColor 0 0 0" + Environment.NewLine +
|
" SetBorderColor 0 0 0" + Environment.NewLine +
|
||||||
" SetFontSize 50" + Environment.NewLine +
|
" SetFontSize 50" + Environment.NewLine +
|
||||||
" PlayAlertSound 3" + Environment.NewLine +
|
" PlayAlertSound 3" + Environment.NewLine +
|
||||||
" DisableDropSound False" + Environment.NewLine;
|
" DisableDropSound False" + Environment.NewLine +
|
||||||
|
" CustomAlertSound \"test.mp3\" # customSoundTheme" + Environment.NewLine +
|
||||||
|
" MinimapIcon 2 Green Triangle # iconTheme" + Environment.NewLine +
|
||||||
|
" PlayEffect Green Temp # effectTheme" + Environment.NewLine;
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||||
|
@ -1023,13 +1044,41 @@ namespace Filtration.Parser.Tests.Services
|
||||||
|
|
||||||
var fontSizeblockItem = result.BlockItems.OfType<FontSizeBlockItem>().First();
|
var fontSizeblockItem = result.BlockItems.OfType<FontSizeBlockItem>().First();
|
||||||
Assert.AreEqual(50, fontSizeblockItem.Value);
|
Assert.AreEqual(50, fontSizeblockItem.Value);
|
||||||
|
|
||||||
var soundblockItem = result.BlockItems.OfType<SoundBlockItem>().First();
|
Assert.AreEqual(0, result.BlockItems.OfType<SoundBlockItem>().Count());
|
||||||
Assert.AreEqual("3", soundblockItem.Value);
|
|
||||||
Assert.AreEqual(79, soundblockItem.SecondValue);
|
|
||||||
|
|
||||||
var disableDropSoundBlockItem = result.BlockItems.OfType<DisableDropSoundBlockItem>().First();
|
var disableDropSoundBlockItem = result.BlockItems.OfType<DisableDropSoundBlockItem>().First();
|
||||||
Assert.IsFalse(disableDropSoundBlockItem.BooleanValue);
|
Assert.IsFalse(disableDropSoundBlockItem.BooleanValue);
|
||||||
|
|
||||||
|
var customSoundBlockItem = result.BlockItems.OfType<CustomSoundBlockItem>().First();
|
||||||
|
Assert.AreEqual("test.mp3", customSoundBlockItem.Value);
|
||||||
|
Assert.AreNotEqual(null, customSoundBlockItem.ThemeComponent);
|
||||||
|
Assert.AreEqual(ThemeComponentType.CustomSound, customSoundBlockItem.ThemeComponent.ComponentType);
|
||||||
|
Assert.AreEqual("customSoundTheme", customSoundBlockItem.ThemeComponent.ComponentName);
|
||||||
|
Assert.AreEqual(typeof(StringThemeComponent), customSoundBlockItem.ThemeComponent.GetType());
|
||||||
|
Assert.AreEqual("test.mp3", ((StringThemeComponent)customSoundBlockItem.ThemeComponent).Value);
|
||||||
|
|
||||||
|
var mapIconBlockItem = result.BlockItems.OfType<MapIconBlockItem>().First();
|
||||||
|
Assert.AreEqual(IconSize.Small, mapIconBlockItem.Size);
|
||||||
|
Assert.AreEqual(IconColor.Green, mapIconBlockItem.Color);
|
||||||
|
Assert.AreEqual(IconShape.Triangle, mapIconBlockItem.Shape);
|
||||||
|
Assert.AreNotEqual(null, mapIconBlockItem.ThemeComponent);
|
||||||
|
Assert.AreEqual(ThemeComponentType.Icon, mapIconBlockItem.ThemeComponent.ComponentType);
|
||||||
|
Assert.AreEqual("iconTheme", mapIconBlockItem.ThemeComponent.ComponentName);
|
||||||
|
Assert.AreEqual(typeof(IconThemeComponent), mapIconBlockItem.ThemeComponent.GetType());
|
||||||
|
Assert.AreEqual(IconSize.Small, ((IconThemeComponent)mapIconBlockItem.ThemeComponent).IconSize);
|
||||||
|
Assert.AreEqual(IconColor.Green, ((IconThemeComponent)mapIconBlockItem.ThemeComponent).IconColor);
|
||||||
|
Assert.AreEqual(IconShape.Triangle, ((IconThemeComponent)mapIconBlockItem.ThemeComponent).IconShape);
|
||||||
|
|
||||||
|
var effectColorBlockItem = result.BlockItems.OfType<EffectColorBlockItem>().First();
|
||||||
|
Assert.AreEqual(EffectColor.Green, effectColorBlockItem.Color);
|
||||||
|
Assert.IsTrue(effectColorBlockItem.Temporary);
|
||||||
|
Assert.AreNotEqual(null, effectColorBlockItem.ThemeComponent);
|
||||||
|
Assert.AreEqual(ThemeComponentType.Effect, effectColorBlockItem.ThemeComponent.ComponentType);
|
||||||
|
Assert.AreEqual("effectTheme", effectColorBlockItem.ThemeComponent.ComponentName);
|
||||||
|
Assert.AreEqual(typeof(EffectColorThemeComponent), effectColorBlockItem.ThemeComponent.GetType());
|
||||||
|
Assert.AreEqual(EffectColor.Green, ((EffectColorThemeComponent)effectColorBlockItem.ThemeComponent).EffectColor);
|
||||||
|
Assert.IsTrue(((EffectColorThemeComponent)effectColorBlockItem.ThemeComponent).Temporary);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
|
|
|
@ -86,8 +86,7 @@ namespace Filtration.Parser.Services
|
||||||
var fullLine = line.Trim();
|
var fullLine = line.Trim();
|
||||||
var trimmedLine = fullLine;
|
var trimmedLine = fullLine;
|
||||||
var blockComment = "";
|
var blockComment = "";
|
||||||
var nextBlockIndex = block.BlockItems.Count;
|
var themeComponentType = -1;
|
||||||
ThemeComponentType themeComponentType = ThemeComponentType.AlertSound;
|
|
||||||
if(trimmedLine.IndexOf('#') > 0)
|
if(trimmedLine.IndexOf('#') > 0)
|
||||||
{
|
{
|
||||||
blockComment = trimmedLine.Substring(trimmedLine.IndexOf('#') + 1);
|
blockComment = trimmedLine.Substring(trimmedLine.IndexOf('#') + 1);
|
||||||
|
@ -221,7 +220,7 @@ namespace Filtration.Parser.Services
|
||||||
var blockItem = new TextColorBlockItem();
|
var blockItem = new TextColorBlockItem();
|
||||||
blockItem.Color = GetColorFromString(result[0].Groups[1].Value);
|
blockItem.Color = GetColorFromString(result[0].Groups[1].Value);
|
||||||
block.BlockItems.Add(blockItem);
|
block.BlockItems.Add(blockItem);
|
||||||
themeComponentType = ThemeComponentType.TextColor;
|
themeComponentType = (int)ThemeComponentType.TextColor;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "SetBackgroundColor":
|
case "SetBackgroundColor":
|
||||||
|
@ -234,7 +233,7 @@ namespace Filtration.Parser.Services
|
||||||
var blockItem = new BackgroundColorBlockItem();
|
var blockItem = new BackgroundColorBlockItem();
|
||||||
blockItem.Color = GetColorFromString(result[0].Groups[1].Value);
|
blockItem.Color = GetColorFromString(result[0].Groups[1].Value);
|
||||||
block.BlockItems.Add(blockItem);
|
block.BlockItems.Add(blockItem);
|
||||||
themeComponentType = ThemeComponentType.BackgroundColor;
|
themeComponentType = (int)ThemeComponentType.BackgroundColor;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "SetBorderColor":
|
case "SetBorderColor":
|
||||||
|
@ -247,7 +246,7 @@ namespace Filtration.Parser.Services
|
||||||
var blockItem = new BorderColorBlockItem();
|
var blockItem = new BorderColorBlockItem();
|
||||||
blockItem.Color = GetColorFromString(result[0].Groups[1].Value);
|
blockItem.Color = GetColorFromString(result[0].Groups[1].Value);
|
||||||
block.BlockItems.Add(blockItem);
|
block.BlockItems.Add(blockItem);
|
||||||
themeComponentType = ThemeComponentType.BorderColor;
|
themeComponentType = (int)ThemeComponentType.BorderColor;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "SetFontSize":
|
case "SetFontSize":
|
||||||
|
@ -260,8 +259,8 @@ namespace Filtration.Parser.Services
|
||||||
{
|
{
|
||||||
var blockItem = new FontSizeBlockItem(Convert.ToInt16(match[0].Groups[2].Value));
|
var blockItem = new FontSizeBlockItem(Convert.ToInt16(match[0].Groups[2].Value));
|
||||||
block.BlockItems.Add(blockItem);
|
block.BlockItems.Add(blockItem);
|
||||||
|
themeComponentType = (int)ThemeComponentType.FontSize;
|
||||||
}
|
}
|
||||||
themeComponentType = ThemeComponentType.FontSize;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "PlayAlertSound":
|
case "PlayAlertSound":
|
||||||
|
@ -305,9 +304,9 @@ namespace Filtration.Parser.Services
|
||||||
SecondValue = secondValue
|
SecondValue = secondValue
|
||||||
};
|
};
|
||||||
block.BlockItems.Add(blockItemValue);
|
block.BlockItems.Add(blockItemValue);
|
||||||
}
|
}
|
||||||
}
|
themeComponentType = (int)ThemeComponentType.AlertSound;
|
||||||
themeComponentType = ThemeComponentType.AlertSound;
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "GemLevel":
|
case "GemLevel":
|
||||||
|
@ -364,8 +363,8 @@ namespace Filtration.Parser.Services
|
||||||
blockItemValue.ThemeComponent = themeComponent;
|
blockItemValue.ThemeComponent = themeComponent;
|
||||||
}
|
}
|
||||||
block.BlockItems.Add(blockItemValue);
|
block.BlockItems.Add(blockItemValue);
|
||||||
|
themeComponentType = (int)ThemeComponentType.Icon;
|
||||||
}
|
}
|
||||||
themeComponentType = ThemeComponentType.Icon;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "PlayEffect":
|
case "PlayEffect":
|
||||||
|
@ -383,9 +382,9 @@ namespace Filtration.Parser.Services
|
||||||
Color = EnumHelper.GetEnumValueFromDescription<EffectColor>(match.Groups[1].Value),
|
Color = EnumHelper.GetEnumValueFromDescription<EffectColor>(match.Groups[1].Value),
|
||||||
Temporary = match.Groups[2].Value.Trim().ToLower() == "temp"
|
Temporary = match.Groups[2].Value.Trim().ToLower() == "temp"
|
||||||
};
|
};
|
||||||
block.BlockItems.Add(blockItemValue);
|
block.BlockItems.Add(blockItemValue);
|
||||||
|
themeComponentType = (int)ThemeComponentType.Effect;
|
||||||
}
|
}
|
||||||
themeComponentType = ThemeComponentType.Effect;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "CustomAlertSound":
|
case "CustomAlertSound":
|
||||||
|
@ -403,9 +402,9 @@ namespace Filtration.Parser.Services
|
||||||
{
|
{
|
||||||
Value = match.Groups[1].Value
|
Value = match.Groups[1].Value
|
||||||
};
|
};
|
||||||
block.BlockItems.Add(blockItemValue);
|
block.BlockItems.Add(blockItemValue);
|
||||||
}
|
themeComponentType = (int)ThemeComponentType.CustomSound;
|
||||||
themeComponentType = ThemeComponentType.CustomSound;
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "MapTier":
|
case "MapTier":
|
||||||
|
@ -422,9 +421,9 @@ namespace Filtration.Parser.Services
|
||||||
{
|
{
|
||||||
block.BlockItems.Last().Comment = blockComment;
|
block.BlockItems.Last().Comment = blockComment;
|
||||||
}
|
}
|
||||||
else if(nextBlockIndex == block.BlockItems.Count - 1) // If these 2 are not equal, this theme doesn't belong to last block
|
else
|
||||||
{
|
{
|
||||||
switch(themeComponentType)
|
switch((ThemeComponentType)themeComponentType)
|
||||||
{
|
{
|
||||||
case ThemeComponentType.AlertSound:
|
case ThemeComponentType.AlertSound:
|
||||||
{
|
{
|
||||||
|
@ -461,7 +460,7 @@ namespace Filtration.Parser.Services
|
||||||
ThemeComponent themeComponent = _masterComponentCollection.AddComponent(ThemeComponentType.CustomSound,
|
ThemeComponent themeComponent = _masterComponentCollection.AddComponent(ThemeComponentType.CustomSound,
|
||||||
blockComment.Trim(), ((CustomSoundBlockItem)blockItemWithTheme).Value);
|
blockComment.Trim(), ((CustomSoundBlockItem)blockItemWithTheme).Value);
|
||||||
blockItemWithTheme.ThemeComponent = themeComponent;
|
blockItemWithTheme.ThemeComponent = themeComponent;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ThemeComponentType.Effect:
|
case ThemeComponentType.Effect:
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue