acdream/tests/AcDream.Core.Net.Tests/WorldSessionAdministrationCommandTests.cs
Erik f7aa8e0eb7
All checks were successful
CI / linux-portable (push) Successful in 3m41s
CI / windows-gate (push) Successful in 6m49s
CI / release (push) Successful in 3m22s
fix: complete retail parity stability pass
2026-08-28 20:01:39 +02:00

95 lines
4.7 KiB
C#

using System.Net;
using AcDream.Core.Net.Messages;
namespace AcDream.Core.Net.Tests;
public sealed class WorldSessionAdministrationCommandTests
{
[Fact]
public void EveryAdministrationWrapper_UsesSharedSequenceAndExactBuilder()
{
using var session = new WorldSession(
new IPEndPoint(IPAddress.Loopback, 65000));
var actual = new List<byte[]>();
session.GameActionCapture = actual.Add;
session.SendBreakAllegianceBoot("Bob", true);
session.SendAllegianceChatBoot("Bob", "Reason");
session.SendAllegianceChatGag("Bob", false);
session.SendAddAllegianceBan("Bob");
session.SendRemoveAllegianceBan("Bob");
session.SendListAllegianceBans();
session.SendSetAllegianceOfficer("Bob", 2u);
session.SendRemoveAllegianceOfficer("Bob");
session.SendListAllegianceOfficers();
session.SendClearAllegianceOfficers();
session.SendSetAllegianceOfficerTitle(2u, "Regent");
session.SendListAllegianceOfficerTitles();
session.SendClearAllegianceOfficerTitles();
session.SendQueryAllegianceName();
session.SendSetAllegianceName("Guild");
session.SendClearAllegianceName();
session.SendAllegianceLockAction(3u);
session.SendSetAllegianceApprovedVassal("Bob");
session.SendAllegianceHouseAction(4u);
session.SendQueryMotd();
session.SendSetMotd("Welcome");
session.SendClearMotd();
session.SendSetOpenHouseStatus(true);
session.SendAddPermanentGuest("Bob");
session.SendRemovePermanentGuest("Bob");
session.SendRemoveAllPermanentGuests();
session.SendChangeStoragePermission("Bob", true);
session.SendAddAllStoragePermission();
session.SendRemoveAllStoragePermission();
session.SendRequestFullGuestList();
session.SendBootSpecificHouseGuest("Bob");
session.SendBootEveryone();
session.SendSetHooksVisibility(false);
session.SendModifyAllegianceGuestPermission(true);
session.SendModifyAllegianceStoragePermission(false);
byte[][] expected =
[
ClientCommandRequests.BuildBreakAllegianceBoot(1u, "Bob", true),
ClientCommandRequests.BuildAllegianceChatBoot(2u, "Bob", "Reason"),
ClientCommandRequests.BuildAllegianceChatGag(3u, "Bob", false),
ClientCommandRequests.BuildAddAllegianceBan(4u, "Bob"),
ClientCommandRequests.BuildRemoveAllegianceBan(5u, "Bob"),
ClientCommandRequests.BuildListAllegianceBans(6u),
ClientCommandRequests.BuildSetAllegianceOfficer(7u, "Bob", 2u),
ClientCommandRequests.BuildRemoveAllegianceOfficer(8u, "Bob"),
ClientCommandRequests.BuildListAllegianceOfficers(9u),
ClientCommandRequests.BuildClearAllegianceOfficers(10u),
ClientCommandRequests.BuildSetAllegianceOfficerTitle(11u, 2u, "Regent"),
ClientCommandRequests.BuildListAllegianceOfficerTitles(12u),
ClientCommandRequests.BuildClearAllegianceOfficerTitles(13u),
ClientCommandRequests.BuildQueryAllegianceName(14u),
ClientCommandRequests.BuildSetAllegianceName(15u, "Guild"),
ClientCommandRequests.BuildClearAllegianceName(16u),
ClientCommandRequests.BuildAllegianceLockAction(17u, 3u),
ClientCommandRequests.BuildSetAllegianceApprovedVassal(18u, "Bob"),
ClientCommandRequests.BuildAllegianceHouseAction(19u, 4u),
ClientCommandRequests.BuildQueryMotd(20u),
ClientCommandRequests.BuildSetMotd(21u, "Welcome"),
ClientCommandRequests.BuildClearMotd(22u),
ClientCommandRequests.BuildSetOpenHouseStatus(23u, true),
ClientCommandRequests.BuildAddPermanentGuest(24u, "Bob"),
ClientCommandRequests.BuildRemovePermanentGuest(25u, "Bob"),
ClientCommandRequests.BuildRemoveAllPermanentGuests(26u),
ClientCommandRequests.BuildChangeStoragePermission(27u, "Bob", true),
ClientCommandRequests.BuildAddAllStoragePermission(28u),
ClientCommandRequests.BuildRemoveAllStoragePermission(29u),
ClientCommandRequests.BuildRequestFullGuestList(30u),
ClientCommandRequests.BuildBootSpecificHouseGuest(31u, "Bob"),
ClientCommandRequests.BuildBootEveryone(32u),
ClientCommandRequests.BuildSetHooksVisibility(33u, false),
ClientCommandRequests.BuildModifyAllegianceGuestPermission(34u, true),
ClientCommandRequests.BuildModifyAllegianceStoragePermission(35u, false),
];
Assert.Equal(expected.Length, actual.Count);
for (int i = 0; i < expected.Length; i++)
Assert.Equal(expected[i], actual[i]);
}
}