using System; using Server.Network; using Xunit; namespace Server.Tests.Network { public class ItemPacketTests : IClassFixture { [Fact] public void TestWorldItemPacket() { Serial serial = (Serial)0x1024; var itemId = 1; // Move to fixture TileData.ItemTable[itemId] = new ItemData( "Test Item Data", TileFlag.Generic, 1, 1, 1, 1, 1, 1 ); var item = new Item(serial) { ItemID = itemId, Hue = 0x1024, Amount = 10, Location = new Point3D(1000, 100, -10), Direction = Direction.Left }; var expected = new WorldItem(item).Compile(); var ns = PacketTestUtilities.CreateTestNetState(); ns.SendWorldItem(item); var result = ns.SendPipe.Reader.TryRead(); AssertThat.Equal(result.Buffer[0].AsSpan(0), expected); } [Fact] public void TestWorldItemSAPacket() { Serial serial = (Serial)0x1024; ushort itemId = 1; // Move to fixture TileData.ItemTable[itemId] = new ItemData( "Test Item Data", TileFlag.Generic, 1, 1, 1, 1, 1, 1 ); var item = new Item(serial) { ItemID = itemId, Hue = 0x1024, Amount = 10, Location = new Point3D(1000, 100, -10) }; var expected = new WorldItemSA(item).Compile(); var ns = PacketTestUtilities.CreateTestNetState(); ns.ProtocolChanges = ProtocolChanges.StygianAbyss; ns.SendWorldItem(item); var result = ns.SendPipe.Reader.TryRead(); AssertThat.Equal(result.Buffer[0].AsSpan(0), expected); } [Fact] public void TestWorldItemHSPacket() { Serial serial = (Serial)0x1024; var itemId = 1; // Move to fixture TileData.ItemTable[itemId] = new ItemData( "Test Item Data", TileFlag.Generic, 1, 1, 1, 1, 1, 1 ); var item = new Item(serial) { ItemID = itemId, Hue = 0x1024, Amount = 10, Location = new Point3D(1000, 100, -10) }; var expected = new WorldItemHS(item).Compile(); var ns = PacketTestUtilities.CreateTestNetState(); ns.ProtocolChanges = ProtocolChanges.StygianAbyss | ProtocolChanges.HighSeas; ns.SendWorldItem(item); var result = ns.SendPipe.Reader.TryRead(); AssertThat.Equal(result.Buffer[0].AsSpan(0), expected); } } }