Rename method to GetItemWithChildren

This commit is contained in:
Chomp
2025-07-22 20:43:08 +01:00
parent 7bf52b9240
commit 731b79519f
19 changed files with 52 additions and 56 deletions
@@ -410,7 +410,7 @@ public class InsuranceController(
if (parentAttachmentsMap.ContainsKey(insuredItem.Id)) if (parentAttachmentsMap.ContainsKey(insuredItem.Id))
{ {
// This call will also return the parent item itself, queueing it for deletion as well. // This call will also return the parent item itself, queueing it for deletion as well.
var itemAndChildren = insured.Items.FindAndReturnChildrenAsItems( var itemAndChildren = insured.Items.GetItemWithChildren(
insuredItem.Id insuredItem.Id
); );
foreach (var item in itemAndChildren) foreach (var item in itemAndChildren)
@@ -299,7 +299,7 @@ public class ProfileController(
foreach (var rootItems in hideoutRootItems) foreach (var rootItems in hideoutRootItems)
{ {
// Check each root items for children and add // Check each root items for children and add
var itemWithChildren = profileToViewPmc.Inventory.Items.FindAndReturnChildrenAsItems( var itemWithChildren = profileToViewPmc.Inventory.Items.GetItemWithChildren(
rootItems.Id rootItems.Id
); );
itemsToReturn.AddRange(itemWithChildren); itemsToReturn.AddRange(itemWithChildren);
@@ -312,9 +312,7 @@ public class QuestController(
else else
{ {
// Remove item with children // Remove item with children
var toRemove = pmcData.Inventory.Items.FindAndReturnChildrenByItems( var toRemove = pmcData.Inventory.Items.GetItemWithChildrenTpls(itemHandover.Id);
itemHandover.Id
);
var index = pmcData.Inventory.Items.Count; var index = pmcData.Inventory.Items.Count;
// Important: don't tell the client to remove the attachments, it will handle it // Important: don't tell the client to remove the attachments, it will handle it
@@ -335,7 +333,7 @@ public class QuestController(
// element `location` properties of the parent so they are sequential, while retaining order // element `location` properties of the parent so they are sequential, while retaining order
if (removedItem.Location?.GetType() == typeof(int)) if (removedItem.Location?.GetType() == typeof(int))
{ {
var childItems = pmcData.Inventory.Items.FindAndReturnChildrenAsItems( var childItems = pmcData.Inventory.Items.GetItemWithChildren(
removedItem.ParentId removedItem.ParentId
); );
childItems.RemoveAt(0); // Remove the parent childItems.RemoveAt(0); // Remove the parent
@@ -591,7 +591,7 @@ public class RagfairController(
// multi-offers are all the same item, // multi-offers are all the same item,
// Get first item and its children and use as template // Get first item and its children and use as template
var inventoryItems = pmcData.Inventory.Items.FindAndReturnChildrenAsItems( var inventoryItems = pmcData.Inventory.Items.GetItemWithChildren(
firstOfferItemId // Choose first item as they're all the same item firstOfferItemId // Choose first item as they're all the same item
); );
@@ -707,7 +707,7 @@ public class RagfairController(
// multi-offers are all the same item, // multi-offers are all the same item,
// Get first item and its children and use as template // Get first item and its children and use as template
var firstInventoryItemAndChildren = pmcData.Inventory.Items.FindAndReturnChildrenAsItems( var firstInventoryItemAndChildren = pmcData.Inventory.Items.GetItemWithChildren(
offerRequest.Items.FirstOrDefault() offerRequest.Items.FirstOrDefault()
); );
@@ -1090,7 +1090,7 @@ public class RagfairController(
rootItem.FixItemStackCount(); rootItem.FixItemStackCount();
itemsToReturn.Add(pmcData.Inventory.Items.FindAndReturnChildrenAsItems(itemId)); itemsToReturn.Add(pmcData.Inventory.Items.GetItemWithChildren(itemId));
} }
if (itemsToReturn.Count == 0) if (itemsToReturn.Count == 0)
@@ -341,7 +341,7 @@ public class TradeController(
TraderBase traderDetails TraderBase traderDetails
) )
{ {
var itemWithChildren = items.FindAndReturnChildrenAsItems(parentItemId); var itemWithChildren = items.GetItemWithChildren(parentItemId);
var totalPrice = 0; var totalPrice = 0;
foreach (var itemToSell in itemWithChildren) foreach (var itemToSell in itemWithChildren)
@@ -199,7 +199,7 @@ namespace SPTarkov.Server.Core.Extensions
/// <param name="items">List of items (item + possible children)</param> /// <param name="items">List of items (item + possible children)</param>
/// <param name="baseItemId">Parent item's id</param> /// <param name="baseItemId">Parent item's id</param>
/// <returns>list of child item ids</returns> /// <returns>list of child item ids</returns>
public static List<MongoId> FindAndReturnChildrenByItems( public static List<MongoId> GetItemWithChildrenTpls(
this IEnumerable<Item> items, this IEnumerable<Item> items,
MongoId baseItemId MongoId baseItemId
) )
@@ -210,7 +210,7 @@ namespace SPTarkov.Server.Core.Extensions
{ {
if (childItem.ParentId == baseItemId.ToString()) if (childItem.ParentId == baseItemId.ToString())
{ {
list.AddRange(FindAndReturnChildrenByItems(items, childItem.Id)); list.AddRange(GetItemWithChildrenTpls(items, childItem.Id));
} }
} }
@@ -267,16 +267,16 @@ namespace SPTarkov.Server.Core.Extensions
} }
/// <summary> /// <summary>
/// A variant of FindAndReturnChildren where the output is list of item objects instead of their ids. /// Get an item with its attachments (children)
/// </summary> /// </summary>
/// <param name="items">List of items (item + possible children)</param> /// <param name="items">List of items (item + possible children)</param>
/// <param name="baseItemId">Parent item's id</param> /// <param name="baseItemId">Parent item's id</param>
/// <param name="modsOnly">OPTIONAL - Include only mod items, exclude items stored inside root item</param> /// <param name="excludeStoredItems">OPTIONAL - Include only mod items, exclude items stored inside root item</param>
/// <returns>list of Item objects</returns> /// <returns>list of Item objects</returns>
public static List<Item> FindAndReturnChildrenAsItems( public static List<Item> GetItemWithChildren(
this IEnumerable<Item> items, this IEnumerable<Item> items,
MongoId baseItemId, MongoId baseItemId,
bool modsOnly = false bool excludeStoredItems = false
) )
{ {
// Use dictionary to make key lookup faster, convert to list before being returned // Use dictionary to make key lookup faster, convert to list before being returned
@@ -308,13 +308,13 @@ namespace SPTarkov.Server.Core.Extensions
} }
// Is stored in parent and disallowed // Is stored in parent and disallowed
if (modsOnly && item.Location is not null) if (excludeStoredItems && item.Location is not null)
{ {
continue; continue;
} }
// Item may have children, check // Item may have children, check
foreach (var subItem in FindAndReturnChildrenAsItems(itemList, item.Id)) foreach (var subItem in GetItemWithChildren(itemList, item.Id))
{ {
result.Add(subItem.Id, subItem); result.Add(subItem.Id, subItem);
} }
@@ -375,7 +375,7 @@ namespace SPTarkov.Server.Core.Extensions
return []; return [];
} }
var itemsInSecureContainer = items.FindAndReturnChildrenByItems(secureContainer.Id); var itemsInSecureContainer = items.GetItemWithChildrenTpls(secureContainer.Id);
// Return all items returned and exclude the secure container item itself // Return all items returned and exclude the secure container item itself
return itemsInSecureContainer.Where(x => x != secureContainer.Id).ToList(); return itemsInSecureContainer.Where(x => x != secureContainer.Id).ToList();
@@ -34,7 +34,7 @@ namespace SPTarkov.Server.Core.Extensions
assort.LoyalLevelItems.Remove(itemId); assort.LoyalLevelItems.Remove(itemId);
// The item being removed may have children linked to it, find and remove them too // The item being removed may have children linked to it, find and remove them too
var idsToRemove = assort.Items.FindAndReturnChildrenByItems(itemId); var idsToRemove = assort.Items.GetItemWithChildrenTpls(itemId);
assort.Items.RemoveAll(item => idsToRemove.Contains(item.Id)); assort.Items.RemoveAll(item => idsToRemove.Contains(item.Id));
return assort; return assort;
@@ -1170,7 +1170,7 @@ public class LocationLootGenerator(
{ {
// Also used by armors to get child mods // Also used by armors to get child mods
// Get item + children and add into array we return // Get item + children and add into array we return
var itemWithChildren = lootItems.FindAndReturnChildrenAsItems(chosenItem.Id); var itemWithChildren = lootItems.GetItemWithChildren(chosenItem.Id);
// Ensure all IDs are unique // Ensure all IDs are unique
itemWithChildren = _cloner.Clone(itemWithChildren).ReplaceIDs().ToList(); itemWithChildren = _cloner.Clone(itemWithChildren).ReplaceIDs().ToList();
@@ -735,7 +735,7 @@ public class BotGeneratorHelper(
// Check item in container for children, store for later insertion into `containerItemsToCheck` // Check item in container for children, store for later insertion into `containerItemsToCheck`
// (used later when figuring out how much space weapon takes up) // (used later when figuring out how much space weapon takes up)
List<Item> itemsToFilter = [.. itemsWithoutLocation, rootItem]; List<Item> itemsToFilter = [.. itemsWithoutLocation, rootItem];
var itemWithChildItems = itemsToFilter.FindAndReturnChildrenAsItems(rootItem.Id); var itemWithChildItems = itemsToFilter.GetItemWithChildren(rootItem.Id);
// Item had children, replace existing data with item + its children // Item had children, replace existing data with item + its children
result.AddRange(itemWithChildItems); result.AddRange(itemWithChildItems);
@@ -80,12 +80,12 @@ public class InRaidHelper(
); );
// Get all items that have a parent of `serverProfile.Inventory.equipment` (All items player had on them at end of raid) // Get all items that have a parent of `serverProfile.Inventory.equipment` (All items player had on them at end of raid)
var postRaidInventoryItems = postRaidProfile.Inventory.Items.FindAndReturnChildrenAsItems( var postRaidInventoryItems = postRaidProfile.Inventory.Items.GetItemWithChildren(
postRaidProfile.Inventory.Equipment.Value postRaidProfile.Inventory.Equipment.Value
); );
// Get all items that have a parent of `serverProfile.Inventory.questRaidItems` (Quest items player had on them at end of raid) // Get all items that have a parent of `serverProfile.Inventory.questRaidItems` (Quest items player had on them at end of raid)
var postRaidQuestItems = postRaidProfile.Inventory.Items.FindAndReturnChildrenAsItems( var postRaidQuestItems = postRaidProfile.Inventory.Items.GetItemWithChildren(
postRaidProfile.Inventory.QuestRaidItems.Value postRaidProfile.Inventory.QuestRaidItems.Value
); );
@@ -492,7 +492,7 @@ public class InventoryHelper(
} }
// Get children of item, they get deleted too // Get children of item, they get deleted too
var itemAndChildrenToRemove = profile.Inventory.Items.FindAndReturnChildrenAsItems(itemId); var itemAndChildrenToRemove = profile.Inventory.Items.GetItemWithChildren(itemId);
if (!itemAndChildrenToRemove.Any()) if (!itemAndChildrenToRemove.Any())
{ {
if (logger.IsLogEnabled(LogLevel.Debug)) if (logger.IsLogEnabled(LogLevel.Debug))
@@ -569,7 +569,7 @@ public class InventoryHelper(
if (messageWithReward is not null) if (messageWithReward is not null)
{ {
// Find item + any possible children and remove them from mails items array // Find item + any possible children and remove them from mails items array
var itemWithChildren = messageWithReward.Items.Data.FindAndReturnChildrenAsItems( var itemWithChildren = messageWithReward.Items.Data.GetItemWithChildren(
removeRequest.Item removeRequest.Item
); );
foreach (var itemToDelete in itemWithChildren) foreach (var itemToDelete in itemWithChildren)
@@ -626,7 +626,7 @@ public class InventoryHelper(
} }
// Goal is to keep removing items until we can remove part of an items stack // Goal is to keep removing items until we can remove part of an items stack
var itemsToReduce = pmcData.Inventory.Items.FindAndReturnChildrenAsItems(itemId); var itemsToReduce = pmcData.Inventory.Items.GetItemWithChildren(itemId);
var remainingCount = countToRemove; var remainingCount = countToRemove;
foreach (var itemToReduce in itemsToReduce) foreach (var itemToReduce in itemsToReduce)
{ {
@@ -1139,7 +1139,7 @@ public class InventoryHelper(
HandleCartridgeMove(sourceItems, request); HandleCartridgeMove(sourceItems, request);
// Get all children item has, they need to move with item // Get all children item has, they need to move with item
var idsToMove = sourceItems.FindAndReturnChildrenByItems(request.Item.Value); var idsToMove = sourceItems.GetItemWithChildrenTpls(request.Item.Value);
foreach (var itemId in idsToMove) foreach (var itemId in idsToMove)
{ {
var itemToMove = sourceItems.FirstOrDefault(item => item.Id == itemId); var itemToMove = sourceItems.FirstOrDefault(item => item.Id == itemId);
@@ -1313,7 +1313,7 @@ public class ItemHelper(
var forcedLeft = 0; var forcedLeft = 0;
var forcedRight = 0; var forcedRight = 0;
var children = items.FindAndReturnChildrenAsItems(rootItemId); var children = items.GetItemWithChildren(rootItemId);
foreach (var child in children) foreach (var child in children)
{ {
var itemTemplate = GetItem(child.Template).Value; var itemTemplate = GetItem(child.Template).Value;
@@ -373,9 +373,7 @@ public class ProfileHelper(
if (secureContainer is not null) if (secureContainer is not null)
{ {
// Find and remove container + children // Find and remove container + children
var childItemsInSecureContainer = items.FindAndReturnChildrenByItems( var childItemsInSecureContainer = items.GetItemWithChildrenTpls(secureContainer.Id);
secureContainer.Id
);
// Remove child items + secure container // Remove child items + secure container
profile.Inventory.Items = items profile.Inventory.Items = items
@@ -646,7 +644,7 @@ public class ProfileHelper(
foreach (var itemId in profile.Inventory?.FavoriteItems ?? []) foreach (var itemId in profile.Inventory?.FavoriteItems ?? [])
{ {
// When viewing another users profile, the client expects a full item with children, so get that // When viewing another users profile, the client expects a full item with children, so get that
var itemAndChildren = profile.Inventory.Items.FindAndReturnChildrenAsItems(itemId); var itemAndChildren = profile.Inventory.Items.GetItemWithChildren(itemId);
if (itemAndChildren?.Count > 0) if (itemAndChildren?.Count > 0)
{ {
// To get the client to actually see the items, we set the main item's parent to null, so it's treated as a root item // To get the client to actually see the items, we set the main item's parent to null, so it's treated as a root item
@@ -154,7 +154,7 @@ public class TradeHelper(
return; return;
} }
offerItems = fenceItems.FindAndReturnChildrenAsItems(buyRequestData.ItemId); offerItems = fenceItems.GetItemWithChildren(buyRequestData.ItemId);
} }
else else
{ {
@@ -222,7 +222,7 @@ public class TradeHelper(
.Items; .Items;
// Get item + children for purchase // Get item + children for purchase
var relevantItems = traderItems.FindAndReturnChildrenAsItems(buyRequestData.ItemId); var relevantItems = traderItems.GetItemWithChildren(buyRequestData.ItemId);
if (relevantItems.Count == 0) if (relevantItems.Count == 0)
{ {
logger.Error( logger.Error(
@@ -188,7 +188,7 @@ public record WalletLootSettings
/// What wallets will have money in them /// What wallets will have money in them
/// </summary> /// </summary>
[JsonPropertyName("walletTplPool")] [JsonPropertyName("walletTplPool")]
public required List<string> WalletTplPool { get; set; } public required List<MongoId> WalletTplPool { get; set; }
} }
public record EquipmentFilters public record EquipmentFilters
@@ -333,7 +333,7 @@ public class CircleOfCultistService(
List<Item> sacrificedItems = []; List<Item> sacrificedItems = [];
foreach (var rootItem in inventoryRootItemsInCultistGrid) foreach (var rootItem in inventoryRootItemsInCultistGrid)
{ {
var rootItemWithChildren = pmcData.Inventory.Items.FindAndReturnChildrenAsItems( var rootItemWithChildren = pmcData.Inventory.Items.GetItemWithChildren(
rootItem.Id rootItem.Id
); );
sacrificedItems.AddRange(rootItemWithChildren); sacrificedItems.AddRange(rootItemWithChildren);
@@ -146,7 +146,7 @@ public class FenceService(
{ {
// HUGE THANKS TO LACYWAY AND LEAVES FOR PROVIDING THIS SOLUTION FOR SPT TO IMPLEMENT!! // HUGE THANKS TO LACYWAY AND LEAVES FOR PROVIDING THIS SOLUTION FOR SPT TO IMPLEMENT!!
// Copy the item and its children // Copy the item and its children
var clonedItems = _cloner.Clone(items.FindAndReturnChildrenAsItems(mainItem.Id)); var clonedItems = _cloner.Clone(items.GetItemWithChildren(mainItem.Id));
// I BLAME LACY FOR THIS ISSUE, I SPENT HOURS FIXING IT /s // I BLAME LACY FOR THIS ISSUE, I SPENT HOURS FIXING IT /s
// i think on node the one with hideout usually came first // i think on node the one with hideout usually came first
var root = clonedItems.FirstOrDefault(x => x.SlotId == "hideout"); var root = clonedItems.FirstOrDefault(x => x.SlotId == "hideout");
@@ -422,7 +422,7 @@ public class FenceService(
// Check if same type of item exists + its on list of item types to always stack // Check if same type of item exists + its on list of item types to always stack
if (existingRootItem != null && ItemInPreventDupeCategoryList(newRootItem.Template)) if (existingRootItem != null && ItemInPreventDupeCategoryList(newRootItem.Template))
{ {
var existingFullItemTree = existingFenceAssorts.Items.FindAndReturnChildrenAsItems( var existingFullItemTree = existingFenceAssorts.Items.GetItemWithChildren(
existingRootItem.Id existingRootItem.Id
); );
if ( if (
@@ -578,7 +578,7 @@ public class FenceService(
} }
// Remove item + child mods (if any) // Remove item + child mods (if any)
var itemWithChildren = assort.Items.FindAndReturnChildrenAsItems(rootItemToAdjust.Id); var itemWithChildren = assort.Items.GetItemWithChildren(rootItemToAdjust.Id);
foreach (var itemToDelete in itemWithChildren) foreach (var itemToDelete in itemWithChildren)
// Delete item from assort items array // Delete item from assort items array
{ {
@@ -857,7 +857,7 @@ public class FenceService(
// MUST randomise Ids as its possible to add the same base fence assort twice = duplicate IDs = dead client // MUST randomise Ids as its possible to add the same base fence assort twice = duplicate IDs = dead client
var desiredAssortItemAndChildrenClone = _cloner var desiredAssortItemAndChildrenClone = _cloner
.Clone( .Clone(
childItemsAndSingleRoot.FindAndReturnChildrenAsItems(chosenBaseAssortRoot.Id) childItemsAndSingleRoot.GetItemWithChildren(chosenBaseAssortRoot.Id)
) )
.ReplaceIDs() .ReplaceIDs()
.ToList(); .ToList();
@@ -1112,7 +1112,7 @@ public class FenceService(
var rootItemDb = itemHelper.GetItem(randomPresetRoot.Template).Value; var rootItemDb = itemHelper.GetItem(randomPresetRoot.Template).Value;
var presetWithChildrenClone = _cloner.Clone( var presetWithChildrenClone = _cloner.Clone(
baseFenceAssort.Items.FindAndReturnChildrenAsItems(randomPresetRoot.Id) baseFenceAssort.Items.GetItemWithChildren(randomPresetRoot.Id)
); );
RandomiseItemUpdProperties(rootItemDb, presetWithChildrenClone[0]); RandomiseItemUpdProperties(rootItemDb, presetWithChildrenClone[0]);
@@ -1192,7 +1192,7 @@ public class FenceService(
var rootItemDb = itemHelper.GetItem(randomPresetRoot.Template).Value; var rootItemDb = itemHelper.GetItem(randomPresetRoot.Template).Value;
var presetWithChildrenClone = _cloner.Clone( var presetWithChildrenClone = _cloner.Clone(
baseFenceAssort.Items.FindAndReturnChildrenAsItems(randomPresetRoot.Id) baseFenceAssort.Items.GetItemWithChildren(randomPresetRoot.Id)
); );
// Need to add mods to armors so they don't show as red in the trade screen // Need to add mods to armors so they don't show as red in the trade screen
@@ -1488,7 +1488,7 @@ public class FenceService(
} }
// Remove item and its sub-items to prevent orphans // Remove item and its sub-items to prevent orphans
toDelete.UnionWith(itemAndMods.FindAndReturnChildrenByItems(itemMod.Id)); toDelete.UnionWith(itemAndMods.GetItemWithChildrenTpls(itemMod.Id));
} }
} }
@@ -1790,7 +1790,7 @@ public class FenceService(
protected void DeleteOffer(MongoId assortId, List<Item> assorts) protected void DeleteOffer(MongoId assortId, List<Item> assorts)
{ {
// Assort could have child items, remove those too // Assort could have child items, remove those too
var itemWithChildrenToRemove = assorts.FindAndReturnChildrenAsItems(assortId); var itemWithChildrenToRemove = assorts.GetItemWithChildren(assortId);
foreach (var itemToRemove in itemWithChildrenToRemove) foreach (var itemToRemove in itemWithChildrenToRemove)
{ {
var indexToRemove = assorts.FindIndex(item => item.Id == itemToRemove.Id); var indexToRemove = assorts.FindIndex(item => item.Id == itemToRemove.Id);
@@ -164,7 +164,7 @@ public class RagfairTaxService(
if (isRootItem) if (isRootItem)
{ {
// Since we get a flat list of all child items, we only want to recurse from parent item // Since we get a flat list of all child items, we only want to recurse from parent item
var itemChildren = pmcData.Inventory.Items.FindAndReturnChildrenAsItems(item.Id); var itemChildren = pmcData.Inventory.Items.GetItemWithChildren(item.Id);
if (itemChildren.Count > 1) if (itemChildren.Count > 1)
{ {
var itemChildrenClone = cloner.Clone(itemChildren); // Clone is expensive, only run if necessary var itemChildrenClone = cloner.Clone(itemChildren); // Clone is expensive, only run if necessary
+10 -10
View File
@@ -12,7 +12,7 @@ public class ItemTests
public void Initialize() { } public void Initialize() { }
[Test] [Test]
public void FindAndReturnChildrenAsItems_one_child_mods_only() public void GetItemWithChildren_one_child_mods_only()
{ {
var testData = new List<Item>(); var testData = new List<Item>();
var rootItem = new Item var rootItem = new Item
@@ -29,13 +29,13 @@ public class ItemTests
testData.Add(rootItem); testData.Add(rootItem);
testData.Add(childItem); testData.Add(childItem);
var result = testData.FindAndReturnChildrenAsItems(rootItem.Id, true); var result = testData.GetItemWithChildren(rootItem.Id, true);
Assert.AreEqual(result[1].Id, childItem.Id); Assert.AreEqual(result[1].Id, childItem.Id);
} }
[Test] [Test]
public void FindAndReturnChildrenAsItems_mods_only_one_inventory_item() public void GetItemWithChildren_mods_only_one_inventory_item()
{ {
var testData = new List<Item>(); var testData = new List<Item>();
var rootItem = new Item var rootItem = new Item
@@ -60,14 +60,14 @@ public class ItemTests
testData.Add(childItem); testData.Add(childItem);
testData.Add(childItem2); testData.Add(childItem2);
var result = testData.FindAndReturnChildrenAsItems(rootItem.Id, true); var result = testData.GetItemWithChildren(rootItem.Id, true);
Assert.AreEqual(result[1].Id, childItem2.Id); Assert.AreEqual(result[1].Id, childItem2.Id);
Assert.AreEqual(result.Count, 2); Assert.AreEqual(result.Count, 2);
} }
[Test] [Test]
public void FindAndReturnChildrenAsItems_mods_and_inventory_item() public void GetItemWithChildren_mods_and_inventory_item()
{ {
var testData = new List<Item>(); var testData = new List<Item>();
var rootItem = new Item var rootItem = new Item
@@ -92,14 +92,14 @@ public class ItemTests
testData.Add(childItem); testData.Add(childItem);
testData.Add(childItem2); testData.Add(childItem2);
var result = testData.FindAndReturnChildrenAsItems(rootItem.Id, false); var result = testData.GetItemWithChildren(rootItem.Id, false);
Assert.AreEqual(result[1].Id, childItem.Id); Assert.AreEqual(result[1].Id, childItem.Id);
Assert.AreEqual(result.Count, 3); Assert.AreEqual(result.Count, 3);
} }
[Test] [Test]
public void FindAndReturnChildrenAsItems_mod_with_child() public void GetItemWithChildren_mod_with_child()
{ {
var testData = new List<Item>(); var testData = new List<Item>();
var rootItem = new Item var rootItem = new Item
@@ -123,14 +123,14 @@ public class ItemTests
testData.Add(childItem); testData.Add(childItem);
testData.Add(childOfChild); testData.Add(childOfChild);
var result = testData.FindAndReturnChildrenAsItems(rootItem.Id, true); var result = testData.GetItemWithChildren(rootItem.Id, true);
Assert.AreEqual(result[1].Id, childItem.Id); Assert.AreEqual(result[1].Id, childItem.Id);
Assert.AreEqual(result.Count, 3); Assert.AreEqual(result.Count, 3);
} }
[Test] [Test]
public void FindAndReturnChildrenAsItems_no_matching_children() public void GetItemWithChildren_no_matching_children()
{ {
var testData = new List<Item>(); var testData = new List<Item>();
var rootItem = new Item var rootItem = new Item
@@ -154,7 +154,7 @@ public class ItemTests
testData.Add(childItem); testData.Add(childItem);
testData.Add(childOfChild); testData.Add(childOfChild);
var result = testData.FindAndReturnChildrenAsItems(rootItem.Id, true); var result = testData.GetItemWithChildren(rootItem.Id, true);
Assert.AreEqual(result[0].Id, rootItem.Id); Assert.AreEqual(result[0].Id, rootItem.Id);
Assert.AreEqual(result.Count, 1); Assert.AreEqual(result.Count, 1);