public void ProcessItemsAgainstItemFilterScript_IntegrationTest() { //Arrange var testInputScriptFile = Resources.MuldiniFilterScript; var blockGroupHierarchyBuilder = new BlockGroupHierarchyBuilder(); var scriptTranslator = new ItemFilterScriptTranslator(new ItemFilterBlockTranslator(blockGroupHierarchyBuilder), blockGroupHierarchyBuilder); var script = scriptTranslator.TranslateStringToItemFilterScript(testInputScriptFile); var testInputItem = new Item { BaseType = "BlahdeBlah", ItemClass = "Wands", ItemRarity = ItemRarity.Magic, ItemLevel = 9, DropLevel = 9, Height = 3, Width = 1, SocketGroups = new List<SocketGroup> {new SocketGroup(new List<Socket> {new Socket(SocketColor.Red)}, false)} }; var itemFilterProcessor = new ItemFilterProcessor(new BlockItemMatcher()); //Act var result = itemFilterProcessor.ProcessItemsAgainstItemFilterScript(script, new List<IItem> { testInputItem }); //Assert Assert.AreEqual("Wands", result.First().ItemFilterBlock.BlockItems.OfType<ClassBlockItem>().First().Items.First()); }
public void IntegrateStringListIntoBlockGroupHierarchy_AdvancedBlockGroup_ChildrenAreCreatedAsAdvanced() { // Arrange var inputStrings = new List<string> { "~Advanced Block Group", "This should be advanced too" }; var rootBlock = new ItemFilterBlockGroup("Root", null); var builder = new BlockGroupHierarchyBuilder(); // Act var result = builder.IntegrateStringListIntoBlockGroupHierarchy(inputStrings, rootBlock); // Assert Assert.AreEqual(1, rootBlock.ChildGroups.Count); Assert.AreEqual(true, result.Advanced); }
public void IntegrateStringListIntoBlockGroupHierarchy_AdvancedBlockGroup_MarksBlockGroupAsAdvanced() { // Arrange var inputStrings = new List<string> { "~Block Group" }; var rootBlock = new ItemFilterBlockGroup("Root", null); var builder = new BlockGroupHierarchyBuilder(); // Act var result = builder.IntegrateStringListIntoBlockGroupHierarchy(inputStrings, rootBlock); // Assert Assert.AreEqual(1, rootBlock.ChildGroups.Count); Assert.AreEqual("Block Group", result.GroupName); Assert.AreEqual(true, result.Advanced); }
public void IntegrateStringListIntoBlockGroupHierarchy_MultipleBlockGroups() { // Arrange var rootBlock = new ItemFilterBlockGroup("Root", null); var builder = new BlockGroupHierarchyBuilder(); // Act var inputStrings = new List<string> { "Block Group" }; builder.IntegrateStringListIntoBlockGroupHierarchy(inputStrings, rootBlock); inputStrings = new List<string> { "Block Group 2" }; builder.IntegrateStringListIntoBlockGroupHierarchy(inputStrings, rootBlock); inputStrings = new List<string> { "Block Group", "Sub Block Group" }; var result = builder.IntegrateStringListIntoBlockGroupHierarchy(inputStrings, rootBlock); // Assert Assert.AreEqual(2, rootBlock.ChildGroups.Count); Assert.AreEqual("Sub Block Group", result.GroupName); }