Merge remote-tracking branch 'upstream/master'
This commit is contained in:
@@ -40,21 +40,17 @@
|
||||
<HintPath>..\packages\Castle.Core.3.3.3\lib\net45\Castle.Core.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="FluentAssertions, Version=4.13.1.0, Culture=neutral, PublicKeyToken=33f2691a05b67b6a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\FluentAssertions.4.13.1\lib\net45\FluentAssertions.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Reference Include="FluentAssertions, Version=4.19.2.0, Culture=neutral, PublicKeyToken=33f2691a05b67b6a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\FluentAssertions.4.19.2\lib\net45\FluentAssertions.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="FluentAssertions.Core, Version=4.13.1.0, Culture=neutral, PublicKeyToken=33f2691a05b67b6a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\FluentAssertions.4.13.1\lib\net45\FluentAssertions.Core.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Reference Include="FluentAssertions.Core, Version=4.19.2.0, Culture=neutral, PublicKeyToken=33f2691a05b67b6a, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\FluentAssertions.4.19.2\lib\net45\FluentAssertions.Core.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Moq, Version=4.5.21.0, Culture=neutral, PublicKeyToken=69f491c39445e920, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Moq.4.5.21\lib\net45\Moq.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Reference Include="Moq, Version=4.5.30.0, Culture=neutral, PublicKeyToken=69f491c39445e920, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Moq.4.5.30\lib\net45\Moq.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="nunit.framework, Version=3.4.1.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\NUnit.3.4.1\lib\net45\nunit.framework.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
<Reference Include="nunit.framework, Version=3.6.1.0, Culture=neutral, PublicKeyToken=2638cd05610744eb, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\NUnit.3.6.1\lib\net45\nunit.framework.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="PresentationCore" />
|
||||
<Reference Include="System" />
|
||||
@@ -113,6 +109,9 @@
|
||||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Resources\testscript2.txt" />
|
||||
</ItemGroup>
|
||||
<Choose>
|
||||
<When Condition="'$(VisualStudioVersion)' == '10.0' And '$(IsCodedUITest)' == 'True'">
|
||||
<ItemGroup>
|
||||
|
||||
@@ -91,6 +91,37 @@ namespace Filtration.Parser.Tests.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to #Script description
|
||||
///#Script description
|
||||
///#Script description
|
||||
///#Script description
|
||||
///
|
||||
///#Comment
|
||||
///#SomeComment
|
||||
///
|
||||
///#Blockdescription
|
||||
///Show #Flasks - Endgame - Life/Mana - Divine/Eternal - Q10+ - Normal
|
||||
/// Class "Life Flasks" "Mana Flasks"
|
||||
/// Rarity Normal
|
||||
/// DropLevel >= 60
|
||||
/// Quality >= 10
|
||||
/// SetFontSize 28
|
||||
/// SetTextColor 240 240 240 #Normal Item Highlight
|
||||
///
|
||||
///#commentymccommentface
|
||||
///
|
||||
///Show #Flasks - Endgame - Life/Mana - Divine/Eternal - Q10+ - Normal
|
||||
/// Class "Life Flasks" "Mana Flasks"
|
||||
/// Rarity Normal
|
||||
/// DropL [rest of string was truncated]";.
|
||||
/// </summary>
|
||||
public static string testscript2 {
|
||||
get {
|
||||
return ResourceManager.GetString("testscript2", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to ###BETA VERSION 1.0.0.1-8
|
||||
///#Please test and let me know via pm on reddit /u/brute_force or @Thiole in game if i am online
|
||||
|
||||
@@ -118,10 +118,13 @@
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="ThioleItemFilter" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ThioleItemFilter.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
|
||||
</data>
|
||||
<data name="testscript" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\testscript.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
|
||||
</data>
|
||||
<data name="testscript2" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\testscript2.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
|
||||
</data>
|
||||
<data name="ThioleItemFilter" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ThioleItemFilter.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
|
||||
</data>
|
||||
</root>
|
||||
31
Filtration.Parser.Tests/Resources/testscript2.txt
Normal file
31
Filtration.Parser.Tests/Resources/testscript2.txt
Normal file
@@ -0,0 +1,31 @@
|
||||
#Script description
|
||||
#Script description
|
||||
#Script description
|
||||
#Script description
|
||||
|
||||
#Blockdescription
|
||||
Show #Flasks - Endgame - Life/Mana - Divine/Eternal - Q10+ - Normal
|
||||
Class "Life Flasks" "Mana Flasks"
|
||||
Rarity Normal
|
||||
SetFontSize 28
|
||||
|
||||
|
||||
|
||||
# commentymccommentface
|
||||
|
||||
Show
|
||||
Class "Life Flasks" "Mana Flasks"
|
||||
Rarity Normal
|
||||
DropLevel >= 60
|
||||
|
||||
#commment
|
||||
#morecomment
|
||||
#blah
|
||||
|
||||
#anothercomment
|
||||
|
||||
#notpartofblockdescription
|
||||
#blockdescription2
|
||||
Show #TestBlock
|
||||
Class "Life Flasks" "Mana Flasks"
|
||||
Rarity Normal
|
||||
@@ -26,6 +26,54 @@ namespace Filtration.Parser.Tests.Services
|
||||
_testUtility = new ItemFilterBlockTranslatorTestUtility();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToItemFilterBlockComment_ReturnsItemFilterBlockCommentWithSpacesNotRemoved()
|
||||
{
|
||||
//Arrange
|
||||
var testInputString = "# This is a comment\r\n# Line 2 \r\n # Test";
|
||||
|
||||
//Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterCommentBlock(testInputString, Mock.Of<IItemFilterScript>());
|
||||
|
||||
//Assert
|
||||
Assert.AreEqual(" This is a comment\r\n Line 2 \r\n Test", result.Comment);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToItemFilterBlock_BlockGroupsEnabled_ActionBlockItemCommentIsNull()
|
||||
{
|
||||
|
||||
// Arrange
|
||||
var inputString = "Show # Test - Test2 - Test3" + Environment.NewLine;
|
||||
|
||||
var inputBlockGroup = new ItemFilterBlockGroup("TestBlockGroup", null);
|
||||
_testUtility.MockBlockGroupHierarchyBuilder
|
||||
.Setup(b => b.IntegrateStringListIntoBlockGroupHierarchy(It.IsAny<IEnumerable<string>>()))
|
||||
.Returns(inputBlockGroup);
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, Mock.Of<IItemFilterScript>(i => i.ItemFilterScriptSettings.BlockGroupsEnabled));
|
||||
|
||||
//Assert
|
||||
Assert.IsTrue(string.IsNullOrEmpty(result.ActionBlockItem.Comment));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToItemFilterBlock_BlockGroupsDisabled_ActionBlockItemCommentIsSetCorrectly()
|
||||
{
|
||||
|
||||
// Arrange
|
||||
var testInputExpectedComment = " this is a comment that should be preserved";
|
||||
|
||||
var inputString = $"Show #{testInputExpectedComment}" + Environment.NewLine;
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, Mock.Of<IItemFilterScript>(i => i.ItemFilterScriptSettings.BlockGroupsEnabled == false));
|
||||
|
||||
//Assert
|
||||
Assert.AreEqual(testInputExpectedComment, result.ActionBlockItem.Comment);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToItemFilterBlock_NotDisabled_SetsBlockEnabledTrue()
|
||||
{
|
||||
@@ -34,7 +82,7 @@ namespace Filtration.Parser.Tests.Services
|
||||
" ItemLevel >= 55";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(true, result.Enabled);
|
||||
@@ -48,7 +96,7 @@ namespace Filtration.Parser.Tests.Services
|
||||
" ItemLevel >= 55";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(2, result.BlockItems.Count);
|
||||
@@ -64,7 +112,7 @@ namespace Filtration.Parser.Tests.Services
|
||||
" ItemLevel >= 55";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is ItemLevelBlockItem));
|
||||
@@ -74,7 +122,7 @@ namespace Filtration.Parser.Tests.Services
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToItemFilterBlock_BlockGroupComment_CallsBlockGroupHierarchyBuilder()
|
||||
public void TranslateStringToItemFilterBlock_BlockGroupsEnabled_ShowBlock_SetsBlockGroupIsCheckedCorrectly()
|
||||
{
|
||||
// Arrange
|
||||
var inputString = "Show # TestBlockGroup" + Environment.NewLine;
|
||||
@@ -82,29 +130,14 @@ namespace Filtration.Parser.Tests.Services
|
||||
|
||||
// Act
|
||||
_testUtility.MockBlockGroupHierarchyBuilder.Setup(b => b.IntegrateStringListIntoBlockGroupHierarchy(It.IsAny<IEnumerable<string>>())).Returns(inputBlockGroup).Verifiable();
|
||||
_testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
|
||||
// Assert
|
||||
_testUtility.MockBlockGroupHierarchyBuilder.Verify();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToItemFilterBlock_ShowBlock_SetsBlockGroupIsCheckedCorrectly()
|
||||
{
|
||||
// Arrange
|
||||
var inputString = "Show # TestBlockGroup" + Environment.NewLine;
|
||||
var inputBlockGroup = new ItemFilterBlockGroup("TestBlockGroup", null);
|
||||
|
||||
// Act
|
||||
_testUtility.MockBlockGroupHierarchyBuilder.Setup(b => b.IntegrateStringListIntoBlockGroupHierarchy(It.IsAny<IEnumerable<string>>())).Returns(inputBlockGroup).Verifiable();
|
||||
_testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
_testUtility.Translator.TranslateStringToItemFilterBlock(inputString, Mock.Of<IItemFilterScript>(i => i.ItemFilterScriptSettings.BlockGroupsEnabled));
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(true, inputBlockGroup.IsChecked);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToItemFilterBlock_HideBlock_SetsBlockGroupIsCheckedCorrectly()
|
||||
public void TranslateStringToItemFilterBlock_BlockGroupsEnabled_HideBlock_SetsBlockGroupIsCheckedCorrectly()
|
||||
{
|
||||
// Arrange
|
||||
var inputString = "Hide # TestBlockGroup" + Environment.NewLine;
|
||||
@@ -112,56 +145,108 @@ namespace Filtration.Parser.Tests.Services
|
||||
|
||||
// Act
|
||||
_testUtility.MockBlockGroupHierarchyBuilder.Setup(b => b.IntegrateStringListIntoBlockGroupHierarchy(It.IsAny<IEnumerable<string>>())).Returns(inputBlockGroup).Verifiable();
|
||||
_testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
_testUtility.Translator.TranslateStringToItemFilterBlock(inputString, Mock.Of<IItemFilterScript>(i => i.ItemFilterScriptSettings.BlockGroupsEnabled));
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(false, inputBlockGroup.IsChecked);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToItemFilterBlock_NoBlockGroupComment_CallsBlockGroupHierarchyBuilder()
|
||||
public void TranslateStringToItemFilterBlock_BlockGroupsEnabled_BlockGroupComment_CallsBlockGroupHierarchyBuilder()
|
||||
{
|
||||
// Arrange
|
||||
var inputString = "Show # TestBlockGroup" + Environment.NewLine;
|
||||
var inputBlockGroup = new ItemFilterBlockGroup("TestBlockGroup", null);
|
||||
|
||||
// Act
|
||||
_testUtility.MockBlockGroupHierarchyBuilder.Setup(b => b.IntegrateStringListIntoBlockGroupHierarchy(It.IsAny<IEnumerable<string>>())).Returns(inputBlockGroup).Verifiable();
|
||||
_testUtility.Translator.TranslateStringToItemFilterBlock(inputString, Mock.Of<IItemFilterScript>(i => i.ItemFilterScriptSettings.BlockGroupsEnabled));
|
||||
|
||||
// Assert
|
||||
_testUtility.MockBlockGroupHierarchyBuilder.Verify();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToItemFilterBlock_BlockGroupsEnabled_NoBlockGroupComment_DoesNotCallBlockGroupHierarchyBuilder()
|
||||
{
|
||||
// Arrange
|
||||
var inputString = "Show" + Environment.NewLine;
|
||||
|
||||
// Act
|
||||
_testUtility.MockBlockGroupHierarchyBuilder.Setup(b => b.IntegrateStringListIntoBlockGroupHierarchy(It.IsAny<IEnumerable<string>>())).Verifiable();
|
||||
_testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
_testUtility.Translator.TranslateStringToItemFilterBlock(inputString, Mock.Of<IItemFilterScript>(i => i.ItemFilterScriptSettings.BlockGroupsEnabled));
|
||||
|
||||
// Assert
|
||||
_testUtility.MockBlockGroupHierarchyBuilder.Verify(b => b.IntegrateStringListIntoBlockGroupHierarchy(It.IsAny<IEnumerable<string>>()), Times.Never);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToItemFilterBlock_BlockGroupCommentWithNoGroups_DoesNotThrow()
|
||||
public void TranslateStringToItemFilterBlock_BlockGroupsEnabled_BlockGroupCommentWithNoGroups_DoesNotThrow()
|
||||
{
|
||||
// Arrange
|
||||
var inputString = "Show #" + Environment.NewLine;
|
||||
|
||||
// Act
|
||||
_testUtility.MockBlockGroupHierarchyBuilder.Setup(b => b.IntegrateStringListIntoBlockGroupHierarchy(It.IsAny<IEnumerable<string>>())).Verifiable();
|
||||
_testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
_testUtility.Translator.TranslateStringToItemFilterBlock(inputString, Mock.Of<IItemFilterScript>(i => i.ItemFilterScriptSettings.BlockGroupsEnabled));
|
||||
|
||||
// Assert
|
||||
_testUtility.MockBlockGroupHierarchyBuilder.Verify(b => b.IntegrateStringListIntoBlockGroupHierarchy(It.IsAny<IEnumerable<string>>()), Times.Never);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToItemFilterBlock_BlockGroupComment_SetsBlockItemGroupCorrectly()
|
||||
public void TranslateStringToItemFilterBlock_BlockGroupsEnabled_BlockGroupComment_SetsBlockItemGroupCorrectly()
|
||||
{
|
||||
// Arrange
|
||||
var inputString = "Show # Test Block Group - Test Sub Block Group - Test Another Block Group" + Environment.NewLine;
|
||||
var testBlockGroup = new ItemFilterBlockGroup("zzzzz", null);
|
||||
|
||||
// Act
|
||||
_testUtility.MockBlockGroupHierarchyBuilder.Setup(b => b.IntegrateStringListIntoBlockGroupHierarchy(It.IsAny<IEnumerable<string>>())).Returns(testBlockGroup).Verifiable();
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
_testUtility.MockBlockGroupHierarchyBuilder
|
||||
.Setup(b => b.IntegrateStringListIntoBlockGroupHierarchy(It.Is<IEnumerable<string>>(s => s.Contains("Test Block Group") && s.Contains("Test Sub Block Group") && s.Contains("Test Another Block Group"))))
|
||||
.Returns(testBlockGroup)
|
||||
.Verifiable();
|
||||
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, Mock.Of<IItemFilterScript>(i => i.ItemFilterScriptSettings.BlockGroupsEnabled));
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(testBlockGroup, result.BlockGroup);
|
||||
_testUtility.MockBlockGroupHierarchyBuilder.Verify();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToItemFilterBlock_BlockGroupsEnabled_BlockGroupComment_NoSpacingAroundHyphens_SetsBlockItemGroupCorrectly()
|
||||
{
|
||||
// Arrange
|
||||
var inputString = "Show # AAA-BBB-CCC" + Environment.NewLine;
|
||||
var testBlockGroup = new ItemFilterBlockGroup("zzzzz", null);
|
||||
|
||||
// Act
|
||||
_testUtility.MockBlockGroupHierarchyBuilder
|
||||
.Setup(b => b.IntegrateStringListIntoBlockGroupHierarchy(It.Is<IEnumerable<string>>(s => s.Contains("AAA-BBB-CCC"))))
|
||||
.Returns(testBlockGroup)
|
||||
.Verifiable();
|
||||
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, Mock.Of<IItemFilterScript>(i => i.ItemFilterScriptSettings.BlockGroupsEnabled));
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(testBlockGroup, result.BlockGroup);
|
||||
_testUtility.MockBlockGroupHierarchyBuilder.Verify();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToItemFilterBlock_BlockGroupsDisabled_BlockGroupComment_DoesNotCallBlockGroupHierarchyBuilder()
|
||||
{
|
||||
// Arrange
|
||||
var inputString = "Show # AAA - BBB - CCC" + Environment.NewLine;
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, Mock.Of<IItemFilterScript>(i => i.ItemFilterScriptSettings.BlockGroupsEnabled == false));
|
||||
|
||||
// Assert
|
||||
Assert.IsNull(result.BlockGroup);
|
||||
_testUtility.MockBlockGroupHierarchyBuilder.Verify(b => b.IntegrateStringListIntoBlockGroupHierarchy(It.IsAny<IEnumerable<string>>()), Times.Never);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToItemFilterBlock_Hide_ReturnsCorrectObject()
|
||||
{
|
||||
@@ -169,7 +254,7 @@ namespace Filtration.Parser.Tests.Services
|
||||
var inputString = "Hide" + Environment.NewLine;
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is ActionBlockItem));
|
||||
@@ -185,7 +270,7 @@ namespace Filtration.Parser.Tests.Services
|
||||
" ItemLevel >= 55";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual("This is a test Block", result.Description);
|
||||
@@ -205,7 +290,7 @@ namespace Filtration.Parser.Tests.Services
|
||||
" ItemLevel >= 55";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual("Second Line", result.Description);
|
||||
@@ -223,7 +308,7 @@ namespace Filtration.Parser.Tests.Services
|
||||
" DropLevel = 40";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||
|
||||
// Assert
|
||||
|
||||
@@ -241,7 +326,7 @@ namespace Filtration.Parser.Tests.Services
|
||||
" Corrupted True";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||
|
||||
// Assert
|
||||
|
||||
@@ -309,7 +394,7 @@ namespace Filtration.Parser.Tests.Services
|
||||
" Identified True";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||
|
||||
// Assert
|
||||
|
||||
@@ -326,7 +411,7 @@ namespace Filtration.Parser.Tests.Services
|
||||
" Quality < 18";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||
|
||||
// Assert
|
||||
|
||||
@@ -344,7 +429,7 @@ namespace Filtration.Parser.Tests.Services
|
||||
" Rarity > Normal";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||
|
||||
// Assert
|
||||
|
||||
@@ -362,7 +447,7 @@ namespace Filtration.Parser.Tests.Services
|
||||
" Rarity Normal";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is RarityBlockItem));
|
||||
@@ -379,7 +464,7 @@ namespace Filtration.Parser.Tests.Services
|
||||
@" Class ""Test Class 1"" ""TestOneWordClassInQuotes"" TestOneWordClassNotInQuotes ""Test Class 2""";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is ClassBlockItem));
|
||||
@@ -398,7 +483,7 @@ namespace Filtration.Parser.Tests.Services
|
||||
@" BaseType ""Test Base Type 1"" ""TestOneWordBaseTypeInQuotes"" TestOneWordBaseTypeNotInQuotes ""Test BaseType 2""";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is BaseTypeBlockItem));
|
||||
@@ -417,7 +502,7 @@ namespace Filtration.Parser.Tests.Services
|
||||
" Sockets > 2";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||
|
||||
// Assert
|
||||
|
||||
@@ -435,7 +520,7 @@ namespace Filtration.Parser.Tests.Services
|
||||
" LinkedSockets > 1";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||
|
||||
// Assert
|
||||
|
||||
@@ -453,7 +538,7 @@ namespace Filtration.Parser.Tests.Services
|
||||
" Width = 1";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||
|
||||
// Assert
|
||||
|
||||
@@ -471,7 +556,7 @@ namespace Filtration.Parser.Tests.Services
|
||||
" Height <= 3";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||
|
||||
// Assert
|
||||
|
||||
@@ -489,7 +574,7 @@ namespace Filtration.Parser.Tests.Services
|
||||
" Height <=3";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is HeightBlockItem));
|
||||
@@ -506,7 +591,7 @@ namespace Filtration.Parser.Tests.Services
|
||||
" SocketGroup RRGB";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is SocketGroupBlockItem));
|
||||
@@ -524,7 +609,7 @@ namespace Filtration.Parser.Tests.Services
|
||||
" SetTextColor 255 20 100";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is TextColorBlockItem));
|
||||
@@ -542,7 +627,7 @@ namespace Filtration.Parser.Tests.Services
|
||||
" SetTextColor 65 0 255 12";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is TextColorBlockItem));
|
||||
@@ -561,7 +646,7 @@ namespace Filtration.Parser.Tests.Services
|
||||
" SetBackgroundColor 255 20 100";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is BackgroundColorBlockItem));
|
||||
@@ -580,7 +665,7 @@ namespace Filtration.Parser.Tests.Services
|
||||
" SetBorderColor 255 20 100";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is BorderColorBlockItem));
|
||||
@@ -599,8 +684,8 @@ namespace Filtration.Parser.Tests.Services
|
||||
|
||||
// Act
|
||||
|
||||
Assert.DoesNotThrow(() => _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null));
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
Assert.DoesNotThrow(() => _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript));
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is BorderColorBlockItem));
|
||||
@@ -620,7 +705,7 @@ namespace Filtration.Parser.Tests.Services
|
||||
var testInputThemeComponentCollection = new ThemeComponentCollection { testComponent };
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, testInputThemeComponentCollection);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, Mock.Of<IItemFilterScript>(i => i.ItemFilterScriptSettings.ThemeComponentCollection == testInputThemeComponentCollection));
|
||||
|
||||
// Assert
|
||||
var blockItem = result.BlockItems.OfType<TextColorBlockItem>().First();
|
||||
@@ -638,7 +723,7 @@ namespace Filtration.Parser.Tests.Services
|
||||
" SetFontSize 15";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is FontSizeBlockItem));
|
||||
@@ -655,7 +740,7 @@ namespace Filtration.Parser.Tests.Services
|
||||
" PlayAlertSound 4";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is SoundBlockItem));
|
||||
@@ -673,7 +758,7 @@ namespace Filtration.Parser.Tests.Services
|
||||
" PlayAlertSound 2 95";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is SoundBlockItem));
|
||||
@@ -717,21 +802,6 @@ namespace Filtration.Parser.Tests.Services
|
||||
Assert.AreEqual("7", blockItem.Value);
|
||||
Assert.AreEqual(95, blockItem.SecondValue);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToItemFilterBlock_SectionComment_ReturnsItemFilterSectionObjectWithCorrectDescription()
|
||||
{
|
||||
// Arrange
|
||||
const string testInputSectionDescription = "Wonderful items that you definitely won't want to miss!";
|
||||
var inputString = "# Section: " + testInputSectionDescription;
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
|
||||
// Assert
|
||||
Assert.IsInstanceOf<ItemFilterSection>(result);
|
||||
Assert.AreEqual(testInputSectionDescription, result.Description);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToItemFilterBlock_Everything_ReturnsCorrectObject()
|
||||
@@ -764,7 +834,7 @@ namespace Filtration.Parser.Tests.Services
|
||||
" PlayAlertSound 3" + Environment.NewLine;
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual("Test filter with everything", result.Description);
|
||||
@@ -861,7 +931,7 @@ namespace Filtration.Parser.Tests.Services
|
||||
" Quality < 17";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(2, result.BlockItems.Count(b => b is ItemLevelBlockItem));
|
||||
@@ -890,7 +960,7 @@ namespace Filtration.Parser.Tests.Services
|
||||
" SetTextColor 255 20 100";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is TextColorBlockItem));
|
||||
@@ -911,7 +981,7 @@ namespace Filtration.Parser.Tests.Services
|
||||
" SetFontSize 27" + Environment.NewLine;
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is FontSizeBlockItem));
|
||||
@@ -930,7 +1000,7 @@ namespace Filtration.Parser.Tests.Services
|
||||
" PlayAlertSound 2" + Environment.NewLine;
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is SoundBlockItem));
|
||||
@@ -948,7 +1018,7 @@ namespace Filtration.Parser.Tests.Services
|
||||
" SetBackgroundColor 255 20 100";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is BackgroundColorBlockItem));
|
||||
@@ -967,7 +1037,7 @@ namespace Filtration.Parser.Tests.Services
|
||||
" SetBorderColor 255 20 100";
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is BorderColorBlockItem));
|
||||
@@ -995,7 +1065,7 @@ namespace Filtration.Parser.Tests.Services
|
||||
_testUtility.TestBlock.BlockItems.Add(new WidthBlockItem(FilterPredicateOperator.Equal, 4));
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is RarityBlockItem));
|
||||
@@ -1022,7 +1092,7 @@ namespace Filtration.Parser.Tests.Services
|
||||
_testUtility.TestBlock.BlockItems.Add(new WidthBlockItem(FilterPredicateOperator.Equal, 4));
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is ActionBlockItem));
|
||||
@@ -1057,7 +1127,7 @@ namespace Filtration.Parser.Tests.Services
|
||||
_testUtility.TestBlock.BlockItems.Add(new WidthBlockItem(FilterPredicateOperator.Equal, 4));
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, null);
|
||||
var result = _testUtility.Translator.TranslateStringToItemFilterBlock(inputString, _testUtility.MockItemFilterScript);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(1, result.BlockItems.Count(b => b is ActionBlockItem));
|
||||
@@ -1105,6 +1175,22 @@ namespace Filtration.Parser.Tests.Services
|
||||
Assert.AreEqual(expectedResult, result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateItemFilterBlockToString_HasActionBlockComment_ReturnsCorrectString()
|
||||
{
|
||||
// Arrange
|
||||
var testInputActionBlockComment = "this is a test";
|
||||
var expectedResult = $"Show #{testInputActionBlockComment}";
|
||||
|
||||
_testUtility.TestBlock.BlockItems.OfType<ActionBlockItem>().First().Comment = testInputActionBlockComment;
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(expectedResult, result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateItemFilterBlockToString_FilterTypeHide_ReturnsCorrectString()
|
||||
{
|
||||
@@ -1581,22 +1667,6 @@ namespace Filtration.Parser.Tests.Services
|
||||
Assert.AreEqual(expectedResult, result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateItemFilterBlockToString_Section_ReturnsCorrectString()
|
||||
{
|
||||
// Arrange
|
||||
const string testInputSectionText = "Ermagerd it's a section!";
|
||||
var expectedResult = "# Section: " + testInputSectionText;
|
||||
|
||||
_testUtility.TestBlock = new ItemFilterSection { Description = testInputSectionText };
|
||||
|
||||
// Act
|
||||
var result = _testUtility.Translator.TranslateItemFilterBlockToString(_testUtility.TestBlock);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(expectedResult, result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateItemFilterBlockToString_DisabledBlock_ReturnsCorrectString()
|
||||
{
|
||||
@@ -1893,6 +1963,7 @@ namespace Filtration.Parser.Tests.Services
|
||||
// Assert
|
||||
|
||||
}
|
||||
|
||||
private class ItemFilterBlockTranslatorTestUtility
|
||||
{
|
||||
public ItemFilterBlockTranslatorTestUtility()
|
||||
@@ -1902,6 +1973,7 @@ namespace Filtration.Parser.Tests.Services
|
||||
|
||||
// Mock setups
|
||||
MockBlockGroupHierarchyBuilder = new Mock<IBlockGroupHierarchyBuilder>();
|
||||
MockItemFilterScript = Mock.Of<IItemFilterScript>(i => i.ItemFilterScriptSettings.ThemeComponentCollection == new ThemeComponentCollection());
|
||||
|
||||
// Class under test instantiation
|
||||
Translator = new ItemFilterBlockTranslator(MockBlockGroupHierarchyBuilder.Object);
|
||||
@@ -1910,6 +1982,8 @@ namespace Filtration.Parser.Tests.Services
|
||||
public ItemFilterBlock TestBlock { get; set; }
|
||||
public Mock<IBlockGroupHierarchyBuilder> MockBlockGroupHierarchyBuilder { get; }
|
||||
public ItemFilterBlockTranslator Translator { get; }
|
||||
|
||||
public IItemFilterScript MockItemFilterScript { get; }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,14 +1,17 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Linq;
|
||||
using Filtration.ObjectModel;
|
||||
using Filtration.ObjectModel.BlockItemTypes;
|
||||
using Filtration.ObjectModel.Enums;
|
||||
using Filtration.ObjectModel.Factories;
|
||||
using Filtration.ObjectModel.ThemeEditor;
|
||||
using Filtration.Parser.Interface.Services;
|
||||
using Filtration.Parser.Services;
|
||||
using Filtration.Parser.Tests.Properties;
|
||||
using Filtration.Properties;
|
||||
using FluentAssertions;
|
||||
using Moq;
|
||||
using NUnit.Framework;
|
||||
|
||||
@@ -17,12 +20,9 @@ namespace Filtration.Parser.Tests.Services
|
||||
[TestFixture]
|
||||
public class TestItemFilterScriptTranslator
|
||||
{
|
||||
private ItemFilterScriptTranslatorTestUtility _testUtility;
|
||||
|
||||
[SetUp]
|
||||
public void ItemFilterScriptTranslatorTestSetup()
|
||||
{
|
||||
_testUtility = new ItemFilterScriptTranslatorTestUtility();
|
||||
Settings.Default.Reset();
|
||||
}
|
||||
|
||||
@@ -31,15 +31,16 @@ namespace Filtration.Parser.Tests.Services
|
||||
{
|
||||
// Arrange
|
||||
var testInput = Resources.testscript;
|
||||
|
||||
_testUtility.MockItemFilterBlockTranslator.Setup(t => t.TranslateStringToItemFilterBlock(It.IsAny<string>(), It.IsAny<ThemeComponentCollection>())).Verifiable();
|
||||
|
||||
var mockItemFilterBlockTranslator = new Mock<IItemFilterBlockTranslator>();
|
||||
var translator = CreateItemFilterScriptTranslator(itemFilterBlockTranslator: mockItemFilterBlockTranslator.Object);
|
||||
|
||||
// Act
|
||||
var script = _testUtility.ScriptTranslator.TranslateStringToItemFilterScript(testInput);
|
||||
var script = translator.TranslateStringToItemFilterScript(testInput);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(5, script.ItemFilterBlocks.Count);
|
||||
_testUtility.MockItemFilterBlockTranslator.Verify();
|
||||
mockItemFilterBlockTranslator.Verify(t => t.TranslateStringToItemFilterBlock(It.IsAny<string>(), It.IsAny<IItemFilterScript>(), false));
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -54,11 +55,10 @@ namespace Filtration.Parser.Tests.Services
|
||||
Environment.NewLine +
|
||||
"End Script Description";
|
||||
|
||||
var mockItemFilterBlockTranslator = new Mock<IItemFilterBlockTranslator>();
|
||||
mockItemFilterBlockTranslator.Setup(t => t.TranslateStringToItemFilterBlock(It.IsAny<string>(), It.IsAny<ThemeComponentCollection>())).Verifiable();
|
||||
var translator = CreateItemFilterScriptTranslator();
|
||||
|
||||
// Act
|
||||
var script = _testUtility.ScriptTranslator.TranslateStringToItemFilterScript(testInput);
|
||||
var script = translator.TranslateStringToItemFilterScript(testInput);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(expectedDescription, script.Description);
|
||||
@@ -70,8 +70,8 @@ namespace Filtration.Parser.Tests.Services
|
||||
// Arrange
|
||||
var testInput = Resources.ThioleItemFilter;
|
||||
|
||||
var blockTranslator = new ItemFilterBlockTranslator(_testUtility.MockBlockGroupHierarchyBuilder.Object);
|
||||
var translator = new ItemFilterScriptTranslator(blockTranslator, _testUtility.MockBlockGroupHierarchyBuilder.Object);
|
||||
var blockTranslator = new ItemFilterBlockTranslator(Mock.Of<IBlockGroupHierarchyBuilder>());
|
||||
var translator = CreateItemFilterScriptTranslator(itemFilterBlockTranslator: blockTranslator);
|
||||
|
||||
// Act
|
||||
translator.TranslateStringToItemFilterScript(testInput);
|
||||
@@ -80,6 +80,36 @@ namespace Filtration.Parser.Tests.Services
|
||||
// Not crashing out when loading a huge script means this integration test has passed!
|
||||
}
|
||||
|
||||
[Test]
|
||||
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);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateItemFilterScriptToString_OneBlock_CallsTranslator()
|
||||
{
|
||||
@@ -92,15 +122,20 @@ namespace Filtration.Parser.Tests.Services
|
||||
const string blockOutput = "Test Script Output";
|
||||
|
||||
testScript.ItemFilterBlocks.Add(testBlock);
|
||||
|
||||
var mockItemFilterBlockTranslator = new Mock<IItemFilterBlockTranslator>();
|
||||
mockItemFilterBlockTranslator
|
||||
.Setup(t => t.TranslateItemFilterBlockToString(testBlock))
|
||||
.Returns(blockOutput)
|
||||
.Verifiable();
|
||||
|
||||
_testUtility.MockItemFilterBlockTranslator.Setup(t => t.TranslateItemFilterBlockToString(testBlock)).Returns(blockOutput).Verifiable();
|
||||
|
||||
var translator = CreateItemFilterScriptTranslator(itemFilterBlockTranslator: mockItemFilterBlockTranslator.Object);
|
||||
|
||||
// Act
|
||||
_testUtility.ScriptTranslator.TranslateItemFilterScriptToString(testScript);
|
||||
translator.TranslateItemFilterScriptToString(testScript);
|
||||
|
||||
// Assert
|
||||
_testUtility.MockItemFilterBlockTranslator.Verify();
|
||||
mockItemFilterBlockTranslator.Verify();
|
||||
}
|
||||
|
||||
[Test]
|
||||
@@ -129,9 +164,8 @@ namespace Filtration.Parser.Tests.Services
|
||||
" Width = 3" + Environment.NewLine +
|
||||
" SetFontSize 7" + Environment.NewLine;
|
||||
|
||||
var blockTranslator = new ItemFilterBlockTranslator(_testUtility.MockBlockGroupHierarchyBuilder.Object);
|
||||
var translator = new ItemFilterScriptTranslator(blockTranslator,
|
||||
_testUtility.MockBlockGroupHierarchyBuilder.Object);
|
||||
var blockTranslator = new ItemFilterBlockTranslator(Mock.Of<IBlockGroupHierarchyBuilder>());
|
||||
var translator = CreateItemFilterScriptTranslator(itemFilterBlockTranslator: blockTranslator);
|
||||
|
||||
// Act
|
||||
var result = translator.TranslateItemFilterScriptToString(script);
|
||||
@@ -174,9 +208,8 @@ namespace Filtration.Parser.Tests.Services
|
||||
" 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);
|
||||
var blockTranslator = new ItemFilterBlockTranslator(Mock.Of<IBlockGroupHierarchyBuilder>());
|
||||
var translator = CreateItemFilterScriptTranslator(itemFilterBlockTranslator: blockTranslator);
|
||||
|
||||
// Act
|
||||
var result = translator.TranslateItemFilterScriptToString(script);
|
||||
@@ -198,40 +231,15 @@ namespace Filtration.Parser.Tests.Services
|
||||
Environment.NewLine +
|
||||
"# Test script description" + Environment.NewLine + Environment.NewLine;
|
||||
|
||||
var translator = CreateItemFilterScriptTranslator();
|
||||
|
||||
// Act
|
||||
var result = _testUtility.ScriptTranslator.TranslateItemFilterScriptToString(script);
|
||||
var result = translator.TranslateItemFilterScriptToString(script);
|
||||
|
||||
// Assert
|
||||
Assert.AreEqual(expectedOutput, result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
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);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TranslateStringToItemFilterScript_OneLineDescriptionNoBlockDescriptionAddsDescriptionToScript()
|
||||
{
|
||||
@@ -240,16 +248,15 @@ namespace Filtration.Parser.Tests.Services
|
||||
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);
|
||||
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.First();
|
||||
var firstBlock = result.ItemFilterBlocks.OfType<ItemFilterBlock>().First();
|
||||
Assert.IsNull(firstBlock.Description);
|
||||
}
|
||||
|
||||
@@ -274,9 +281,8 @@ namespace Filtration.Parser.Tests.Services
|
||||
" SetTextColor 255 255 0";
|
||||
|
||||
|
||||
var blockTranslator = new ItemFilterBlockTranslator(_testUtility.MockBlockGroupHierarchyBuilder.Object);
|
||||
var translator = new ItemFilterScriptTranslator(blockTranslator,
|
||||
_testUtility.MockBlockGroupHierarchyBuilder.Object);
|
||||
var blockTranslator = new ItemFilterBlockTranslator(Mock.Of<IBlockGroupHierarchyBuilder>());
|
||||
var translator = CreateItemFilterScriptTranslator(itemFilterBlockTranslator: blockTranslator);
|
||||
|
||||
// Act
|
||||
var result = translator.TranslateStringToItemFilterScript(testInputScript);
|
||||
@@ -306,9 +312,8 @@ namespace Filtration.Parser.Tests.Services
|
||||
" SetTextColor 255 255 0";
|
||||
|
||||
|
||||
var blockTranslator = new ItemFilterBlockTranslator(_testUtility.MockBlockGroupHierarchyBuilder.Object);
|
||||
var translator = new ItemFilterScriptTranslator(blockTranslator,
|
||||
_testUtility.MockBlockGroupHierarchyBuilder.Object);
|
||||
var blockTranslator = new ItemFilterBlockTranslator(Mock.Of<IBlockGroupHierarchyBuilder>());
|
||||
var translator = CreateItemFilterScriptTranslator(itemFilterBlockTranslator: blockTranslator);
|
||||
|
||||
// Act
|
||||
var result = translator.TranslateStringToItemFilterScript(testInputScript);
|
||||
@@ -316,9 +321,9 @@ namespace Filtration.Parser.Tests.Services
|
||||
// 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();
|
||||
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);
|
||||
@@ -340,19 +345,20 @@ namespace Filtration.Parser.Tests.Services
|
||||
"#Disabled Block End";
|
||||
|
||||
|
||||
var blockTranslator = new ItemFilterBlockTranslator(_testUtility.MockBlockGroupHierarchyBuilder.Object);
|
||||
var translator = new ItemFilterScriptTranslator(blockTranslator,
|
||||
_testUtility.MockBlockGroupHierarchyBuilder.Object);
|
||||
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.Skip(1).First();
|
||||
var secondBlock = result.ItemFilterBlocks.OfType<ItemFilterBlock>().Skip(1).First();
|
||||
Assert.AreEqual("This is a disabled block", secondBlock.Description);
|
||||
}
|
||||
|
||||
// TODO: Reinstate this test
|
||||
[Ignore("Ignored until toggling block group parsing can be controlled from the filter script input")]
|
||||
[Test]
|
||||
public void TranslateStringToItemFilterScript_DisabledBlockWithBlockGroup_ReturnsCorrectBlock()
|
||||
{
|
||||
@@ -368,39 +374,37 @@ namespace Filtration.Parser.Tests.Services
|
||||
"#Disabled Block End";
|
||||
|
||||
|
||||
var blockTranslator = new ItemFilterBlockTranslator(_testUtility.MockBlockGroupHierarchyBuilder.Object);
|
||||
_testUtility.MockBlockGroupHierarchyBuilder.Setup(
|
||||
b => b.IntegrateStringListIntoBlockGroupHierarchy(It.IsAny<IEnumerable<string>>()))
|
||||
var mockBlockGroupHierarchyBuilder = new Mock<IBlockGroupHierarchyBuilder>();
|
||||
mockBlockGroupHierarchyBuilder.Setup(
|
||||
b => b.IntegrateStringListIntoBlockGroupHierarchy(It.IsAny<IEnumerable<string>>()))
|
||||
.Returns(new ItemFilterBlockGroup("My Block Group", null));
|
||||
|
||||
var translator = new ItemFilterScriptTranslator(blockTranslator,
|
||||
_testUtility.MockBlockGroupHierarchyBuilder.Object);
|
||||
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.Skip(1).First();
|
||||
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);
|
||||
}
|
||||
|
||||
private class ItemFilterScriptTranslatorTestUtility
|
||||
private ItemFilterScriptTranslator CreateItemFilterScriptTranslator(IBlockGroupHierarchyBuilder blockGroupHierarchyBuilder = null,
|
||||
IItemFilterBlockTranslator itemFilterBlockTranslator = null,
|
||||
IItemFilterScriptFactory itemFilterScriptFactory = null)
|
||||
{
|
||||
public ItemFilterScriptTranslatorTestUtility()
|
||||
{
|
||||
// Mock setups
|
||||
MockItemFilterBlockTranslator = new Mock<IItemFilterBlockTranslator>();
|
||||
MockBlockGroupHierarchyBuilder = new Mock<IBlockGroupHierarchyBuilder>();
|
||||
var mockItemFilterScriptFactory = new Mock<IItemFilterScriptFactory>();
|
||||
mockItemFilterScriptFactory
|
||||
.Setup(i => i.Create())
|
||||
.Returns(new ItemFilterScript());
|
||||
|
||||
// Class under test instantiation
|
||||
ScriptTranslator = new ItemFilterScriptTranslator(MockItemFilterBlockTranslator.Object, MockBlockGroupHierarchyBuilder.Object);
|
||||
}
|
||||
|
||||
public ItemFilterScriptTranslator ScriptTranslator { get; }
|
||||
public Mock<IItemFilterBlockTranslator> MockItemFilterBlockTranslator { get; }
|
||||
public Mock<IBlockGroupHierarchyBuilder> MockBlockGroupHierarchyBuilder { get; }
|
||||
return new ItemFilterScriptTranslator(blockGroupHierarchyBuilder ?? new Mock<IBlockGroupHierarchyBuilder>().Object,
|
||||
itemFilterBlockTranslator ?? new Mock<IItemFilterBlockTranslator>().Object,
|
||||
itemFilterScriptFactory ?? mockItemFilterScriptFactory.Object);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="Castle.Core" version="3.3.3" targetFramework="net461" />
|
||||
<package id="FluentAssertions" version="4.13.1" targetFramework="net461" />
|
||||
<package id="Moq" version="4.5.21" targetFramework="net461" />
|
||||
<package id="NUnit" version="3.4.1" targetFramework="net461" />
|
||||
<package id="FluentAssertions" version="4.19.2" targetFramework="net461" />
|
||||
<package id="Moq" version="4.5.30" targetFramework="net461" />
|
||||
<package id="NUnit" version="3.6.1" targetFramework="net461" />
|
||||
</packages>
|
||||
Reference in New Issue
Block a user