32 lines
1.2 KiB
C#
32 lines
1.2 KiB
C#
using AcDream.Core.Items;
|
|
using Xunit;
|
|
|
|
namespace AcDream.Core.Tests.Items;
|
|
|
|
public class ClientObjectTableBurdenTests
|
|
{
|
|
private const uint Player = 0x50000001u;
|
|
|
|
[Fact]
|
|
public void SumCarriedBurden_sums_pack_sidebag_and_wielded_but_not_unrelated()
|
|
{
|
|
var t = new ClientObjectTable();
|
|
// loose pack item
|
|
t.AddOrUpdate(new ClientObject { ObjectId = 0xA, ContainerId = Player, Burden = 100 });
|
|
// side bag in pack
|
|
t.AddOrUpdate(new ClientObject { ObjectId = 0xB, ContainerId = Player, Burden = 50,
|
|
Type = ItemType.Container });
|
|
// item inside the side bag (2-deep)
|
|
t.AddOrUpdate(new ClientObject { ObjectId = 0xC, ContainerId = 0xB, Burden = 30 });
|
|
// wielded (ContainerId 0, WielderId = player)
|
|
t.AddOrUpdate(new ClientObject { ObjectId = 0xD, WielderId = Player, Burden = 200 });
|
|
// unrelated object in the world
|
|
t.AddOrUpdate(new ClientObject { ObjectId = 0xE, ContainerId = 0, Burden = 999 });
|
|
|
|
Assert.Equal(380, t.SumCarriedBurden(Player)); // 100+50+30+200
|
|
}
|
|
|
|
[Fact]
|
|
public void SumCarriedBurden_unknown_owner_is_zero()
|
|
=> Assert.Equal(0, new ClientObjectTable().SumCarriedBurden(Player));
|
|
}
|