using Xunit; namespace Server.Tests; /// /// Fixture for all server tests. Attempts to load TileData from client files if available. /// Configure client path via MODERNUO_CLIENT_PATH environment variable or place files at C:\Ultima Online Classic. /// [CollectionDefinition("Sequential Server Tests", DisableParallelization = true)] public class ServerFixture : ICollectionFixture { /// /// True if TileData was successfully loaded from client files. /// public static bool TileDataLoaded => TestServerInitializer.TileDataLoaded; /// /// A tile ID known to have the Surface flag. 0 if not found. /// public static ushort SurfaceTileId => TestServerInitializer.SurfaceTileId; /// /// A tile ID known to have the Impassable flag. 0 if not found. /// public static ushort ImpassableTileId => TestServerInitializer.ImpassableTileId; /// /// A tile ID known to have the Wet flag (water). 0 if not found. /// public static ushort WetTileId => TestServerInitializer.WetTileId; /// /// A tile ID known to have both Surface and Impassable flags (tables, furniture). 0 if not found. /// public static ushort SurfaceImpassableTileId => TestServerInitializer.SurfaceImpassableTileId; // Global init runs exactly once via the shared, guarded TestServerInitializer. The single // bootstrap owns global state for the lifetime of the test host, so there is no // per-collection teardown — matching UOContent.Tests' TestServerInitializer pattern. public ServerFixture() => TestServerInitializer.Initialize(loadTileData: true); }