acdream/tests/AcDream.Core.Net.Tests
Erik e45c95b06c feat(net): Slice 5.1 — ApproachVendor (GameEvent 0x0062) inbound parser
VendorApproach.TryParse reads the vendor profile and the item list per
the byte-verified field table (research doc §A.2), each item through
the shared PublicWeenieDescParser from 5.0 — zero duplicated parsing.
One wire detail the research table did not spell out, found by
re-reading ACE's writer and confirmed independently in Chorizite's
generated readers: every object body is 4-byte-aligned at its END, so
back-to-back vendor items need an explicit AlignTo4 between entries
(CreateObject never needed it — nothing follows its body). Pinned by a
dedicated test forcing a real 2-byte misalignment via AmmoType.
Stack-size sign extension cross-checked against holtburger.

Six tests: field-order with distinct literals, empty list, and
truncation at each structural boundary — mid-item-tail truncation
deliberately inherits 5.0's established non-throwing partial-item
contract instead of asserting null everywhere.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-08-07 15:05:47 +02:00
..
Cryptography feat(net): PacketHeader + PacketHeaderFlags + Hash32 checksum (Phase 4.2) 2026-04-11 14:17:37 +02:00
Messages feat(net): Slice 5.1 — ApproachVendor (GameEvent 0x0062) inbound parser 2026-08-07 15:05:47 +02:00
Packets feat(net): N6 - ConnectResponse retransmit + fragment assembler eviction 2026-07-29 17:20:12 +02:00
Transport feat(net): N6 - ConnectResponse retransmit + fragment assembler eviction 2026-07-29 17:20:12 +02:00
AcDream.Core.Net.Tests.csproj feat(net): AcDream.Core.Net scaffold + ISAAC keystream (Phase 4.1) 2026-04-11 14:14:28 +02:00
CombatStateWiringTests.cs feat(inventory): port retail weapon switching 2026-07-12 23:06:31 +02:00
GameEventWiringTests.cs feat(player): port retail augmentation stat chain 2026-07-31 08:08:23 +02:00
LiveHandshakeTests.cs fix(net): conform character entry and session shutdown 2026-07-21 10:33:03 +02:00
NetClientTests.cs perf(net): own one pooled async receive 2026-07-25 05:50:18 +02:00
NetProbeTests.cs feat(net): N6 - ConnectResponse retransmit + fragment assembler eviction 2026-07-29 17:20:12 +02:00
NetProcessStaticsCollection.cs feat(net): N6 - ConnectResponse retransmit + fragment assembler eviction 2026-07-29 17:20:12 +02:00
ObjectTableWiringTests.cs fix(ui): preserve retail item titles and spacing 2026-07-24 05:21:01 +02:00
PlayerDescriptionParserTests.cs feat: port retail magic lifecycle and retained spell UI 2026-07-15 10:55:22 +02:00
PrivateUpdateVitalTests.cs feat(player): #5 PlayerDescription parser — Stam/Mana via attribute block 2026-04-25 16:42:24 +02:00
SubscriptionSetTests.cs refactor(net): own live session composition 2026-07-22 10:36:06 +02:00
WorldSessionChatTests.cs feat(chat): port retail's @pklite client command (EnterPkLite 0x028F) 2026-08-03 18:57:17 +02:00
WorldSessionCombatTests.cs feat(ui): finish retail toolbar controls 2026-07-11 12:11:53 +02:00
WorldSessionConstructionTests.cs perf(net): own one pooled async receive 2026-07-25 05:50:18 +02:00
WorldSessionInboundBudgetTests.cs fix(net): timeslice WorldSession.Tick inbound drain (#2 flood) 2026-06-22 15:39:50 +02:00
WorldSessionInventoryActionTests.cs fix #234: port retail appraisal floaty and inscriptions 2026-07-23 12:12:57 +02:00
WorldSessionLinkStatusTests.cs feat(ui): share indicator detail panels 2026-07-17 10:27:41 +02:00
WorldSessionNegotiationShutdownTests.cs fix(net): conform character entry and session shutdown 2026-07-21 10:33:03 +02:00
WorldSessionNetReceiveLoopResilienceTests.cs feat(net): N3 - AckNakScheduler, retail 2.0s cumulative ack replaces per-packet acks 2026-07-29 13:51:57 +02:00
WorldSessionRadarTests.cs fix(ui): preserve retail item titles and spacing 2026-07-24 05:21:01 +02:00
WorldSessionShutdownTests.cs fix(net): conform character entry and session shutdown 2026-07-21 10:33:03 +02:00
WorldSessionWiringOwnershipTests.cs refactor(net): own live session routing 2026-07-21 11:17:09 +02:00