public void ItemBlockItemMatch_SocketGroupBlockItem_MultipleItemSocketGroup_SingleBlockItemSocketGroup_Match_ReturnsCorrectResult() { //Arrange var testInputBlockItem = new SocketGroupBlockItem(); testInputBlockItem.Items.Add("RGB"); testInputBlockItem.Items.Add("RGWW"); testInputBlockItem.Items.Add("RGWG"); testInputBlockItem.Items.Add("WWWW"); var testInputItem = Mock.Of <IItem>(i => i.LinkedSocketGroups == new List <SocketGroup> { new SocketGroup(new List <Socket> { new Socket(SocketColor.Red), new Socket(SocketColor.Green), new Socket(SocketColor.White), new Socket(SocketColor.Green) }, true) }); //Act var result = _testUtility.BlockItemMatcher.ItemBlockItemMatch(testInputBlockItem, testInputItem); //Assert Assert.IsTrue(result); }
private static bool SocketGroupBlockItemMatch(SocketGroupBlockItem socketGroupBlockItem, IItem item) { foreach (var blockItemSocketGroup in socketGroupBlockItem.SocketGroups) // for each group of sockets in the block item { foreach (var itemLinkedSocketGroup in item.LinkedSocketGroups) // for each linked socket group in the item { if (SocketGroupHasRequiredSocketColors(itemLinkedSocketGroup, blockItemSocketGroup)) { return(true); } } } return(false); }