using AcDream.UI.Abstractions.Panels.Settings; namespace AcDream.UI.Abstractions.Tests.Panels.Settings; /// /// L.0: default-pin tests + value-equality /// guarantees. Defaults are intentionally NOT bit-exact to retail's /// 0x50C4A54A mask — see GameplaySettings remarks for rationale. /// public sealed class GameplaySettingsTests { [Fact] public void Default_values_are_typical_user_friendly() { // These defaults are reviewed in the L.0 brainstorm — typical-user // starting point, not retail-bitmask. A change to any of these // should be a deliberate decision, not a drive-by. var d = GameplaySettings.Default; Assert.True(d.AutoTarget); Assert.True(d.AutoRepeatAttack); Assert.True(d.ToggleRun); Assert.False(d.AdvancedCombatUI); Assert.True(d.ShowTooltips); Assert.False(d.VividTargetingIndicator); Assert.False(d.SideBySideVitals); Assert.False(d.CoordinatesOnRadar); Assert.True(d.SpellDuration); Assert.True(d.AllowGive); Assert.True(d.ShowHelm); Assert.True(d.ShowCloak); Assert.False(d.LockUI); Assert.False(d.UseMouseTurning); } [Fact] public void Equality_is_value_based() { var a = GameplaySettings.Default; var b = GameplaySettings.Default with { AutoTarget = false }; var c = GameplaySettings.Default with { AutoTarget = false }; Assert.NotEqual(a, b); Assert.Equal(b, c); } [Fact] public void With_expression_clones_one_field() { var d = GameplaySettings.Default with { LockUI = true }; Assert.True(d.LockUI); // Other fields untouched. Assert.Equal(GameplaySettings.Default.AutoTarget, d.AutoTarget); Assert.Equal(GameplaySettings.Default.ShowHelm, d.ShowHelm); } }