Files
ClassicAssist.Avalonia/.qoder/repowiki/knowledge/en/ClassicAssist .NET Solution/Unit, Integration & UI Test Suites/architecture_design.md
T
Beyhan Oğur d5f52cc3d3 first commit
2026-09-03 04:45:36 +03:00

1.2 KiB

Three sibling test projects share the same MSTest (1.4.0) + Microsoft.NET.Test.Sdk (16.4.0) stack but serve different scopes:

  • ClassicAssist.Tests targets net48 with AllowUnsafeBlocks and references ClassicAssist.Shared, cuoapi.dll, and WindowsBase; it is organized by feature area (Agents/, Filters/, MacroCommands/) with one [TestClass] per subsystem, using [TestInitialize] to seed a PlayerMobile into Engine.Player before exercising command handlers via IncomingPacketHandlers.Initialize() / OutgoingPacketHandlers.Initialize() and feeding raw byte arrays through PacketReader.
  • ClassicAssist.UITest is a WinForms-style STAThread entry point that loads AssistantOptions, constructs MainWindow, and owns the message loop — used for manual visual regression of Avalonia views.
  • UITest is an empty console project kept as a placeholder. Dependency direction is one-way: tests depend on production assemblies (ClassicAssist.Shared, ClassicAssist.Data.*, ClassicAssist.UO.*, ClassicAssist.UI.Views); no production code references any test project. A disabled ReplayPacketLog class demonstrates the intended pattern for replaying captured packet logs against the live handler pipeline.