瀏覽代碼

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.
Tig 3 周之前
父節點
當前提交
9a5b1c6d2c

+ 0 - 0
Tests/UnitTestsParallelizable/Application/ApplicationForceDriverTests.cs → Tests/UnitTests/Application/ApplicationForceDriverTests.cs


+ 0 - 0
Tests/UnitTestsParallelizable/Application/ApplicationModelFencingTests.cs → Tests/UnitTests/Application/ApplicationModelFencingTests.cs


+ 4 - 4
Tests/UnitTests/DriverAssert.cs

@@ -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 ();

+ 3 - 3
Tests/UnitTestsParallelizable/Drivers/ToAnsiTests.cs

@@ -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);

+ 15 - 15
Tests/UnitTestsParallelizable/TestSetup.cs

@@ -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

+ 0 - 18
Tests/UnitTestsParallelizable/View/Draw/ViewDrawingClippingTests.cs

@@ -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

+ 0 - 3
Tests/UnitTestsParallelizable/View/Draw/ViewDrawingFlowTests.cs

@@ -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