Refactor tests to decouple from global Application state

Commented out `driver ??= Application.Driver` assignments in
`DriverAssert` to prevent automatic global driver assignment.
Removed `Application.ResetState(true)` calls and commented out
state validation assertions in `GlobalTestSetup` to reduce
dependency on global state.

Reintroduced `ApplicationForceDriverTests` and
`ApplicationModelFencingTests` to validate `ForceDriver` behavior
and ensure proper handling of legacy and modern Application
models. Skipped certain `ToAnsiTests` that rely on `Application`.

Removed direct `Application.Driver` assignments in
`ViewDrawingClippingTests` and `ViewDrawingFlowTests`.
Performed general cleanup of redundant code and unused imports
to simplify the codebase.
This commit is contained in:
Tig
2025-11-22 20:53:45 -07:00
parent 4b3cdf71d3
commit 9a5b1c6d2c
7 changed files with 22 additions and 43 deletions

View File

@@ -42,7 +42,7 @@ internal partial class DriverAssert
}
expectedLook = expectedLook.Trim ();
driver ??= Application.Driver;
//driver ??= Application.Driver;
Cell [,] contents = driver!.Contents!;
@@ -152,7 +152,7 @@ internal partial class DriverAssert
)
{
#pragma warning restore xUnit1013 // Public method should be marked as test
driver ??= Application.Driver!;
//driver ??= Application.Driver!;
var actualLook = driver.ToString ();
@@ -200,7 +200,7 @@ internal partial class DriverAssert
{
List<List<string>> lines = [];
var sb = new StringBuilder ();
driver ??= Application.Driver!;
//driver ??= Application.Driver!;
int x = -1;
int y = -1;
@@ -338,7 +338,7 @@ internal partial class DriverAssert
/// <param name="expectedColors"></param>
internal static void AssertDriverUsedColors (IDriver? driver = null, params Attribute [] expectedColors)
{
driver ??= Application.Driver;
//driver ??= Application.Driver;
Cell [,] contents = driver?.Contents!;
List<Attribute> toFind = expectedColors.ToList ();

View File

@@ -67,7 +67,7 @@ public class ToAnsiTests : FakeDriverBase
Assert.Contains ("Blue", ansi);
}
[Theory]
[Theory (Skip = "Uses Application.")]
[InlineData (false, "\u001b[48;2;")]
[InlineData (true, "\u001b[41m")]
public void ToAnsi_With_Background_Colors (bool force16Colors, string expected)
@@ -204,7 +204,7 @@ public class ToAnsiTests : FakeDriverBase
Assert.Equal (50, ansi.Count (c => c == '\n'));
}
[Fact]
[Fact (Skip = "Use Application.")]
public void ToAnsi_RGB_Colors ()
{
IDriver driver = CreateFakeDriver (10, 1);
@@ -228,7 +228,7 @@ public class ToAnsiTests : FakeDriverBase
}
}
[Fact]
[Fact (Skip = "Use Application.")]
public void ToAnsi_Force16Colors ()
{
IDriver driver = CreateFakeDriver (10, 1);

View File

@@ -24,7 +24,7 @@ public class GlobalTestSetup : IDisposable
// Reset application state just in case a test changed something.
// TODO: Add an Assert to ensure none of the state of Application changed.
// TODO: Add an Assert to ensure none of the state of ConfigurationManager changed.
Application.ResetState (true);
//Application.ResetState (true);
CheckDefaultState ();
}
@@ -39,15 +39,15 @@ public class GlobalTestSetup : IDisposable
// Check that all Application fields and properties are set to their default values
// Public Properties
Assert.Null (Application.TopRunnable);
Assert.Null (Application.Mouse.MouseGrabView);
//Assert.Null (Application.TopRunnable);
//Assert.Null (Application.Mouse.MouseGrabView);
// Don't check Application.ForceDriver
Assert.Empty (Application.ForceDriver);
// Don't check Application.Force16Colors
//Assert.False (Application.Force16Colors);
Assert.Null (Application.Driver);
Assert.False (Application.StopAfterFirstIteration);
//// Don't check Application.ForceDriver
//Assert.Empty (Application.ForceDriver);
//// Don't check Application.Force16Colors
////Assert.False (Application.Force16Colors);
//Assert.Null (Application.Driver);
//Assert.False (Application.StopAfterFirstIteration);
Assert.Equal (Key.Tab.WithShift, Application.PrevTabKey);
Assert.Equal (Key.Tab, Application.NextTabKey);
Assert.Equal (Key.F6.WithShift, Application.PrevTabGroupKey);
@@ -55,12 +55,12 @@ public class GlobalTestSetup : IDisposable
Assert.Equal (Key.Esc, Application.QuitKey);
// Internal properties
Assert.False (Application.Initialized);
Assert.Equal (Application.GetSupportedCultures (), Application.SupportedCultures);
Assert.Equal (Application.GetAvailableCulturesFromEmbeddedResources (), Application.SupportedCultures);
Assert.Null (Application.MainThreadId);
Assert.Empty (Application.SessionStack);
Assert.Empty (Application.CachedViewsUnderMouse);
//Assert.False (Application.Initialized);
//Assert.Equal (Application.GetSupportedCultures (), Application.SupportedCultures);
//Assert.Equal (Application.GetAvailableCulturesFromEmbeddedResources (), Application.SupportedCultures);
//Assert.Null (Application.MainThreadId);
//Assert.Empty (Application.SessionStack);
//Assert.Empty (Application.CachedViewsUnderMouse);
// Mouse
// Do not reset _lastMousePosition

View File

@@ -65,23 +65,18 @@ public class ViewDrawingClippingTests () : FakeDriverBase
Assert.Equal (original, previous);
Assert.NotEqual (original, driver.Clip);
Application.ResetState (true);
}
[Fact]
public void SetClipToScreen_SetsClipToScreen ()
{
IDriver driver = CreateFakeDriver (80, 25);
Application.Driver = driver;
View view = new () { Driver = driver };
view.SetClipToScreen ();
Assert.NotNull (driver.Clip);
Assert.Equal (driver.Screen, driver.Clip.GetBounds ());
Application.ResetState (true);
}
#endregion
@@ -94,8 +89,6 @@ public class ViewDrawingClippingTests () : FakeDriverBase
View view = new () { Driver = null };
var exception = Record.Exception (() => view.ExcludeFromClip (new Rectangle (5, 5, 10, 10)));
Assert.Null (exception);
Application.ResetState (true);
}
[Fact]
@@ -103,7 +96,6 @@ public class ViewDrawingClippingTests () : FakeDriverBase
{
IDriver driver = CreateFakeDriver (80, 25);
driver.Clip = new Region (new Rectangle (0, 0, 80, 25));
Application.Driver = driver;
View view = new () { Driver = driver };
var toExclude = new Rectangle (10, 10, 20, 20);
@@ -112,8 +104,6 @@ public class ViewDrawingClippingTests () : FakeDriverBase
// Verify the region was excluded
Assert.NotNull (driver.Clip);
Assert.False (driver.Clip.Contains (15, 15));
Application.ResetState (true);
}
[Fact]
@@ -123,8 +113,6 @@ public class ViewDrawingClippingTests () : FakeDriverBase
var exception = Record.Exception (() => view.ExcludeFromClip (new Region (new Rectangle (5, 5, 10, 10))));
Assert.Null (exception);
Application.ResetState (true);
}
[Fact]
@@ -141,8 +129,6 @@ public class ViewDrawingClippingTests () : FakeDriverBase
// Verify the region was excluded
Assert.NotNull (driver.Clip);
Assert.False (driver.Clip.Contains (15, 15));
Application.ResetState (true);
}
#endregion
@@ -538,7 +524,6 @@ public class ViewDrawingClippingTests () : FakeDriverBase
{
IDriver driver = CreateFakeDriver (80, 25);
driver.Clip = new Region (driver.Screen);
Application.Driver = driver;
var view = new View
{
@@ -558,7 +543,6 @@ public class ViewDrawingClippingTests () : FakeDriverBase
Assert.NotNull (driver.Clip);
Assert.False (driver.Clip.Contains (20, 20)); // Point inside excluded rect should not be in clip
Application.ResetState (true);
}
[Fact]
@@ -566,7 +550,6 @@ public class ViewDrawingClippingTests () : FakeDriverBase
{
IDriver driver = CreateFakeDriver (80, 25);
driver.Clip = null!;
Application.Driver = driver;
var view = new View
{
@@ -581,7 +564,6 @@ public class ViewDrawingClippingTests () : FakeDriverBase
Assert.Null (exception);
Application.ResetState (true);
}
#endregion

View File

@@ -613,7 +613,6 @@ public class ViewDrawingFlowTests () : FakeDriverBase
IDriver driver = CreateFakeDriver (80, 25);
var initialClip = new Region (driver.Screen);
driver.Clip = initialClip;
Application.Driver = driver;
var view = new View
{
@@ -636,8 +635,6 @@ public class ViewDrawingFlowTests () : FakeDriverBase
// Points inside the view should be excluded
// Note: This test depends on the DrawContext tracking, which may not exclude if nothing was actually drawn
// We're verifying the mechanism exists, not that it necessarily excludes in this specific case
Application.ResetState (true);
}
#endregion