Added support for Identified (Issue #34) and Corrupted (Issue #42) block items

Changed block item output order (Issue #41)
This commit is contained in:
Ben Wallis
2016-12-03 11:58:18 +00:00
parent e7a40c8c6d
commit 884651bce9
31 changed files with 287 additions and 51 deletions

View File

@@ -233,6 +233,40 @@ namespace Filtration.Parser.Tests.Services
Assert.AreEqual(FilterPredicateOperator.Equal, blockItem.FilterPredicate.PredicateOperator);
}
[Test]
public void TranslateStringToItemFilterBlock_Corrupted_ReturnsCorrectObject()
{
// Arrange
var inputString = "Show" + Environment.NewLine +
" Corrupted True";
// Act
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
// Assert
Assert.AreEqual(1, result.BlockItems.Count(b => b is CorruptedBlockItem));
var blockItem = result.BlockItems.OfType<CorruptedBlockItem>().First();
Assert.IsTrue(blockItem.BooleanValue);
}
[Test]
public void TranslateStringToItemFilterBlock_Identified_ReturnsCorrectObject()
{
// Arrange
var inputString = "Show" + Environment.NewLine +
" Identified True";
// Act
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
// Assert
Assert.AreEqual(1, result.BlockItems.Count(b => b is IdentifiedBlockItem));
var blockItem = result.BlockItems.OfType<IdentifiedBlockItem>().First();
Assert.IsTrue(blockItem.BooleanValue);
}
[Test]
public void TranslateStringToItemFilterBlock_Quality_ReturnsCorrectObject()
{
@@ -624,6 +658,8 @@ namespace Filtration.Parser.Tests.Services
" DropLevel < 70" + Environment.NewLine +
" Quality = 15" + Environment.NewLine +
" Rarity <= Unique" + Environment.NewLine +
" Identified True" + Environment.NewLine +
" Corrupted false" + Environment.NewLine +
@" Class ""My Item Class"" AnotherClass ""AndAnotherClass""" + Environment.NewLine +
@" BaseType MyBaseType ""Another BaseType""" + Environment.NewLine +
" JunkLine Let's ignore this one!" + Environment.NewLine +
@@ -646,6 +682,12 @@ namespace Filtration.Parser.Tests.Services
Assert.AreEqual(FilterPredicateOperator.GreaterThanOrEqual, itemLevelblockItem.FilterPredicate.PredicateOperator);
Assert.AreEqual(50, itemLevelblockItem.FilterPredicate.PredicateOperand);
var corruptedBlockItem = result.BlockItems.OfType<CorruptedBlockItem>().First();
Assert.IsFalse(corruptedBlockItem.BooleanValue);
var identifiedBlockItem = result.BlockItems.OfType<IdentifiedBlockItem>().First();
Assert.IsTrue(identifiedBlockItem.BooleanValue);
var dropLevelblockItem = result.BlockItems.OfType<DropLevelBlockItem>().First();
Assert.AreEqual(FilterPredicateOperator.LessThan, dropLevelblockItem.FilterPredicate.PredicateOperator);
Assert.AreEqual(70, dropLevelblockItem.FilterPredicate.PredicateOperand);
@@ -1027,6 +1069,70 @@ namespace Filtration.Parser.Tests.Services
Assert.AreEqual(expectedResult, result);
}
[Test]
public void TranslateItemFilterBlockToString_IdentifiedTrue_ReturnsCorrectString()
{
// Arrange
var expectedResult = "Show" + Environment.NewLine +
" Identified True";
_testUtility.TestBlock.BlockItems.Add(new IdentifiedBlockItem(true));
// Act
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
// Assert
Assert.AreEqual(expectedResult, result);
}
[Test]
public void TranslateItemFilterBlockToString_IdentifiedFalse_ReturnsCorrectString()
{
// Arrange
var expectedResult = "Show" + Environment.NewLine +
" Identified False";
_testUtility.TestBlock.BlockItems.Add(new IdentifiedBlockItem(false));
// Act
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
// Assert
Assert.AreEqual(expectedResult, result);
}
[Test]
public void TranslateItemFilterBlockToString_CorruptedTrue_ReturnsCorrectString()
{
// Arrange
var expectedResult = "Show" + Environment.NewLine +
" Corrupted True";
_testUtility.TestBlock.BlockItems.Add(new CorruptedBlockItem(true));
// Act
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
// Assert
Assert.AreEqual(expectedResult, result);
}
[Test]
public void TranslateItemFilterBlockToString_CorruptedFalse_ReturnsCorrectString()
{
// Arrange
var expectedResult = "Show" + Environment.NewLine +
" Corrupted False";
_testUtility.TestBlock.BlockItems.Add(new CorruptedBlockItem(false));
// Act
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
// Assert
Assert.AreEqual(expectedResult, result);
}
[Test]
public void TranslateItemFilterBlockToString_DropLevel_ReturnsCorrectString()
{
@@ -1417,25 +1523,30 @@ namespace Filtration.Parser.Tests.Services
{
// Arrange
var expectedResult = "Show" + Environment.NewLine +
" ItemLevel > 70" + Environment.NewLine +
" ItemLevel <= 85" + Environment.NewLine +
" DropLevel > 56" + Environment.NewLine +
" Quality > 2" + Environment.NewLine +
" Rarity = Unique" + Environment.NewLine +
" Sockets <= 6" + Environment.NewLine +
" LinkedSockets >= 4" + Environment.NewLine +
" Width = 3" + Environment.NewLine +
" Sockets <= 6" + Environment.NewLine +
" Quality > 2" + Environment.NewLine +
" Identified True" + Environment.NewLine +
" Corrupted False" + Environment.NewLine +
" Height <= 6" + Environment.NewLine +
" Height >= 2" + Environment.NewLine +
" Width = 3" + Environment.NewLine +
" DropLevel > 56" + Environment.NewLine +
" Class \"Body Armour\" \"Gloves\" \"Belt\" \"Two Hand Axes\"" + Environment.NewLine +
" BaseType \"Greater Life Flask\" \"Simple Robe\" \"Full Wyrmscale\"" +
Environment.NewLine +
" BaseType \"Greater Life Flask\" \"Simple Robe\" \"Full Wyrmscale\"" + Environment.NewLine +
" Rarity = Unique" + Environment.NewLine +
" ItemLevel > 70" + Environment.NewLine +
" ItemLevel <= 85" + Environment.NewLine +
" SetTextColor 255 89 0 56" + Environment.NewLine +
" SetBackgroundColor 0 0 0" + Environment.NewLine +
" SetBorderColor 255 1 254" + Environment.NewLine +
" SetFontSize 50" + Environment.NewLine +
" PlayAlertSound 6 90";
_testUtility.TestBlock.BlockItems.Add(new ActionBlockItem(BlockAction.Show));
_testUtility.TestBlock.BlockItems.Add(new IdentifiedBlockItem(true));
_testUtility.TestBlock.BlockItems.Add(new CorruptedBlockItem(false));
_testUtility.TestBlock.BlockItems.Add(new ActionBlockItem(BlockAction.Show));
_testUtility.TestBlock.BlockItems.Add(new ItemLevelBlockItem(FilterPredicateOperator.GreaterThan, 70));
_testUtility.TestBlock.BlockItems.Add(new ItemLevelBlockItem(FilterPredicateOperator.LessThanOrEqual, 85));