122 lines
3.6 KiB
C#
122 lines
3.6 KiB
C#
using SPTarkov.Server.Core.Helpers;
|
|
using SPTarkov.Server.Core.Models.Common;
|
|
using SPTarkov.Server.Core.Models.Eft.Common.Tables;
|
|
using SPTarkov.Server.Core.Utils;
|
|
|
|
namespace UnitTests.Tests.Helpers
|
|
{
|
|
[TestClass]
|
|
public class InventoryHelperTests
|
|
{
|
|
private InventoryHelper _helper;
|
|
private PresetHelper _presetHelper;
|
|
|
|
[TestInitialize]
|
|
public void Initialize()
|
|
{
|
|
_helper = DI.GetService<InventoryHelper>();
|
|
var databaseImporter = DI.GetService<DatabaseImporter>();
|
|
_presetHelper = DI.GetService<PresetHelper>();
|
|
Task.Factory.StartNew(() =>
|
|
{
|
|
databaseImporter.OnLoad();
|
|
});
|
|
}
|
|
|
|
[TestMethod]
|
|
public void GetItemSize_vss_val()
|
|
{
|
|
var vssValPreset = _presetHelper.GetDefaultPreset(
|
|
ItemTpl.MARKSMANRIFLE_VSS_VINTOREZ_9X39_SPECIAL_SNIPER_RIFLE
|
|
);
|
|
|
|
var result = _helper.GetItemSize(
|
|
ItemTpl.MARKSMANRIFLE_VSS_VINTOREZ_9X39_SPECIAL_SNIPER_RIFLE,
|
|
vssValPreset.Parent,
|
|
vssValPreset.Items
|
|
);
|
|
|
|
Assert.AreEqual(5, result.Item1);
|
|
Assert.AreEqual(2, result.Item2);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void GetItemSize_m4a1()
|
|
{
|
|
var vssValPreset = _presetHelper.GetDefaultPreset(
|
|
ItemTpl.ASSAULTRIFLE_COLT_M4A1_556X45_ASSAULT_RIFLE
|
|
);
|
|
|
|
var result = _helper.GetItemSize(
|
|
ItemTpl.ASSAULTRIFLE_COLT_M4A1_556X45_ASSAULT_RIFLE,
|
|
vssValPreset.Parent,
|
|
vssValPreset.Items
|
|
);
|
|
|
|
Assert.AreEqual(5, result.Item1);
|
|
Assert.AreEqual(2, result.Item2);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void GetItemSize_glock_17()
|
|
{
|
|
var vssValPreset = _presetHelper.GetDefaultPreset(ItemTpl.PISTOL_GLOCK_17_9X19);
|
|
|
|
var result = _helper.GetItemSize(
|
|
ItemTpl.PISTOL_GLOCK_17_9X19,
|
|
vssValPreset.Parent,
|
|
vssValPreset.Items
|
|
);
|
|
|
|
Assert.AreEqual(2, result.Item1);
|
|
Assert.AreEqual(1, result.Item2);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void GetItemSize_custom_vpo_136_6x2()
|
|
{
|
|
var rootWeaponId = new MongoId();
|
|
|
|
var weaponWithChildren = new List<Item>();
|
|
var root = new Item
|
|
{
|
|
Id = rootWeaponId,
|
|
Template = ItemTpl.ASSAULTRIFLE_MOLOT_ARMS_VPO136_VEPRKM_762X39_CARBINE,
|
|
};
|
|
weaponWithChildren.Add(root);
|
|
|
|
var stock = new Item
|
|
{
|
|
Id = new MongoId(),
|
|
Template = ItemTpl.STOCK_VPO136_VEPRKM_WOODEN,
|
|
ParentId = root.Id,
|
|
SlotId = "mod_stock",
|
|
};
|
|
weaponWithChildren.Add(stock);
|
|
|
|
var magazine = new Item
|
|
{
|
|
Id = new MongoId(),
|
|
Template = ItemTpl.MAGAZINE_366TKM_AK_AL_10RND,
|
|
ParentId = root.Id,
|
|
SlotId = "mod_magazine",
|
|
};
|
|
weaponWithChildren.Add(magazine);
|
|
|
|
var muzzle = new Item
|
|
{
|
|
Id = new MongoId(),
|
|
Template = ItemTpl.SILENCER_AKM_HEXAGON_762X39_SOUND_SUPPRESSOR,
|
|
ParentId = root.Id,
|
|
SlotId = "mod_muzzle",
|
|
};
|
|
weaponWithChildren.Add(muzzle);
|
|
|
|
var result = _helper.GetItemSize(root.Template, rootWeaponId, weaponWithChildren);
|
|
|
|
Assert.AreEqual(6, result.Item1);
|
|
Assert.AreEqual(2, result.Item2);
|
|
}
|
|
}
|
|
}
|