parent
f52e63f320
commit
f4dd7c8e7f
16 changed files with 459 additions and 197 deletions
80
Projects/UOContent.Tests/Tests/Engines/Party/Packets.cs
Normal file
80
Projects/UOContent.Tests/Tests/Engines/Party/Packets.cs
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
using Server.Network;
|
||||
|
||||
namespace Server.Engines.PartySystem
|
||||
{
|
||||
public sealed class PartyEmptyList : Packet
|
||||
{
|
||||
public PartyEmptyList(Serial m) : base(0xBF)
|
||||
{
|
||||
EnsureCapacity(7);
|
||||
|
||||
Stream.Write((short)0x0006);
|
||||
Stream.Write((byte)0x02);
|
||||
Stream.Write((byte)0);
|
||||
Stream.Write(m);
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class PartyMemberList : Packet
|
||||
{
|
||||
public PartyMemberList(Party p) : base(0xBF)
|
||||
{
|
||||
EnsureCapacity(7 + p.Count * 4);
|
||||
|
||||
Stream.Write((short)0x0006);
|
||||
Stream.Write((byte)0x01);
|
||||
Stream.Write((byte)p.Count);
|
||||
|
||||
for (var i = 0; i < p.Count; ++i)
|
||||
{
|
||||
Stream.Write(p[i].Mobile.Serial);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class PartyRemoveMember : Packet
|
||||
{
|
||||
public PartyRemoveMember(Serial removed, Party p) : base(0xBF)
|
||||
{
|
||||
EnsureCapacity(11 + p.Count * 4);
|
||||
|
||||
Stream.Write((short)0x0006);
|
||||
Stream.Write((byte)0x02);
|
||||
Stream.Write((byte)p.Count);
|
||||
|
||||
Stream.Write(removed);
|
||||
|
||||
for (var i = 0; i < p.Count; ++i)
|
||||
{
|
||||
Stream.Write(p[i].Mobile.Serial);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class PartyTextMessage : Packet
|
||||
{
|
||||
public PartyTextMessage(bool toAll, Serial from, string text) : base(0xBF)
|
||||
{
|
||||
text ??= "";
|
||||
|
||||
EnsureCapacity(12 + text.Length * 2);
|
||||
|
||||
Stream.Write((short)0x0006);
|
||||
Stream.Write((byte)(toAll ? 0x04 : 0x03));
|
||||
Stream.Write(from);
|
||||
Stream.WriteBigUniNull(text);
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class PartyInvitation : Packet
|
||||
{
|
||||
public PartyInvitation(Serial leader) : base(0xBF)
|
||||
{
|
||||
EnsureCapacity(10);
|
||||
|
||||
Stream.Write((short)0x0006);
|
||||
Stream.Write((byte)0x07);
|
||||
Stream.Write(leader);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,99 @@
|
|||
using System;
|
||||
using Server;
|
||||
using Server.Engines.PartySystem;
|
||||
using Server.Tests;
|
||||
using Server.Tests.Network;
|
||||
using Xunit;
|
||||
|
||||
namespace UOContent.Tests
|
||||
{
|
||||
public class PartyPacketTests : IClassFixture<ServerFixture>
|
||||
{
|
||||
[Fact]
|
||||
public void TestPartyEmptyList()
|
||||
{
|
||||
Serial m = 0x1024u;
|
||||
|
||||
var expected = new PartyEmptyList(m).Compile();
|
||||
|
||||
using var ns = PacketTestUtilities.CreateTestNetState();
|
||||
ns.SendPartyRemoveMember(m);
|
||||
|
||||
var result = ns.SendPipe.Reader.TryRead();
|
||||
AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestPartyRemoveMember()
|
||||
{
|
||||
var leader = new Mobile(0x1024u);
|
||||
leader.DefaultMobileInit();
|
||||
|
||||
var member = new Mobile(0x2048u);
|
||||
member.DefaultMobileInit();
|
||||
|
||||
var p = new Party(leader);
|
||||
p.Add(member);
|
||||
|
||||
var expected = new PartyRemoveMember(member.Serial, p).Compile();
|
||||
|
||||
using var ns = PacketTestUtilities.CreateTestNetState();
|
||||
ns.SendPartyRemoveMember(member.Serial, p);
|
||||
|
||||
var result = ns.SendPipe.Reader.TryRead();
|
||||
AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestPartyMemberList()
|
||||
{
|
||||
var leader = new Mobile(0x1024u);
|
||||
leader.DefaultMobileInit();
|
||||
|
||||
var member = new Mobile(0x2048u);
|
||||
member.DefaultMobileInit();
|
||||
|
||||
var p = new Party(leader);
|
||||
p.Add(member);
|
||||
|
||||
var expected = new PartyMemberList(p).Compile();
|
||||
|
||||
using var ns = PacketTestUtilities.CreateTestNetState();
|
||||
ns.SendPartyMemberList(p);
|
||||
|
||||
var result = ns.SendPipe.Reader.TryRead();
|
||||
AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData(true)]
|
||||
[InlineData(false)]
|
||||
public void TestPartyTextMessage(bool toAll)
|
||||
{
|
||||
Serial serial = 0x1024u;
|
||||
var text = "[Party] Stuff Happens";
|
||||
|
||||
var expected = new PartyTextMessage(toAll, serial, text).Compile();
|
||||
|
||||
using var ns = PacketTestUtilities.CreateTestNetState();
|
||||
ns.SendPartyTextMessage(serial, text, toAll);
|
||||
|
||||
var result = ns.SendPipe.Reader.TryRead();
|
||||
AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TestPartyInvitation()
|
||||
{
|
||||
Serial m = 0x1024u;
|
||||
|
||||
var expected = new PartyInvitation(m).Compile();
|
||||
|
||||
using var ns = PacketTestUtilities.CreateTestNetState();
|
||||
ns.SendPartyInvitation(m);
|
||||
|
||||
var result = ns.SendPipe.Reader.TryRead();
|
||||
AssertThat.Equal(result.Buffer[0].AsSpan(0), expected);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -8,7 +8,7 @@ using Xunit;
|
|||
|
||||
namespace UOContent.Tests
|
||||
{
|
||||
public class PacketTests : IClassFixture<ServerFixture>
|
||||
public class CorpsePacketTests : IClassFixture<ServerFixture>
|
||||
{
|
||||
[Fact]
|
||||
public void TestCorpseEquipPacket()
|
||||
|
|
@ -1,5 +1,4 @@
|
|||
using System.IO;
|
||||
using Server;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Network
|
||||
|
|
|
|||
|
|
@ -3,10 +3,9 @@
|
|||
<IsPackable>false</IsPackable>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.9.0-preview-20201123-03" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.9.0-preview-20210106-01" />
|
||||
<PackageReference Include="xunit" Version="2.4.1" />
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3" />
|
||||
<PackageReference Include="coverlet.collector" Version="1.3.0" />
|
||||
<ProjectReference Include="..\Server\Server.csproj" />
|
||||
<ProjectReference Include="..\Server.Tests\Server.Tests.csproj" />
|
||||
<ProjectReference Include="..\UOContent\UOContent.csproj" />
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue