From d800e93bcdb5d2d99be0459da9134f1ca12e693f Mon Sep 17 00:00:00 2001 From: Charlie Poole Date: Tue, 6 Oct 2026 20:48:46 -0700 Subject: [PATCH 1/2] Make non-api classes internal --- NUnit.Agent.Core.slnx | 3 +++ src/nunit.agent.core.tests/Runners/TestAgentRunnerTests.cs | 2 +- src/nunit.agent.core/CallbackHandler.cs | 2 +- src/nunit.agent.core/Drivers/DriverService.cs | 2 +- .../Drivers/InvalidAssemblyFrameworkDriver.cs | 2 +- src/nunit.agent.core/Drivers/NUnit2DriverFactory.cs | 2 +- src/nunit.agent.core/Drivers/NUnit3DriverFactory.cs | 2 +- src/nunit.agent.core/Drivers/NUnitFrameworkApi.cs | 2 +- src/nunit.agent.core/Drivers/NUnitFrameworkApi2018.cs | 4 ++-- src/nunit.agent.core/Drivers/NUnitFrameworkDriver.cs | 2 +- src/nunit.agent.core/Drivers/ProvidedPathsAssemblyResolver.cs | 2 +- src/nunit.agent.core/RunTestsCallbackHandler.cs | 2 +- src/nunit.agent.core/Runners/DomainManager.cs | 2 +- src/nunit.agent.core/Runners/LocalTestRunner.cs | 2 +- src/nunit.agent.core/Runners/TestAgentRunner.cs | 2 +- src/nunit.agent.core/Runners/TestDomainRunner.cs | 2 +- 16 files changed, 19 insertions(+), 16 deletions(-) diff --git a/NUnit.Agent.Core.slnx b/NUnit.Agent.Core.slnx index f692e6a..a4caaad 100644 --- a/NUnit.Agent.Core.slnx +++ b/NUnit.Agent.Core.slnx @@ -9,6 +9,9 @@ + + + diff --git a/src/nunit.agent.core.tests/Runners/TestAgentRunnerTests.cs b/src/nunit.agent.core.tests/Runners/TestAgentRunnerTests.cs index b995197..57bf029 100644 --- a/src/nunit.agent.core.tests/Runners/TestAgentRunnerTests.cs +++ b/src/nunit.agent.core.tests/Runners/TestAgentRunnerTests.cs @@ -14,7 +14,7 @@ namespace NUnit.Engine.Runners #if NETFRAMEWORK [TestFixture(typeof(TestDomainRunner))] #endif - public class TestAgentRunnerTests : ITestEventListener + internal class TestAgentRunnerTests : ITestEventListener where TRunner : TestAgentRunner { protected TestPackage _package; diff --git a/src/nunit.agent.core/CallbackHandler.cs b/src/nunit.agent.core/CallbackHandler.cs index cec5743..f7c21d7 100644 --- a/src/nunit.agent.core/CallbackHandler.cs +++ b/src/nunit.agent.core/CallbackHandler.cs @@ -6,7 +6,7 @@ namespace NUnit.Engine { - public class CallbackHandler : MarshalByRefObject, ICallbackEventHandler + internal class CallbackHandler : MarshalByRefObject, ICallbackEventHandler { public string? Result { get; private set; } diff --git a/src/nunit.agent.core/Drivers/DriverService.cs b/src/nunit.agent.core/Drivers/DriverService.cs index cea15c1..7233315 100644 --- a/src/nunit.agent.core/Drivers/DriverService.cs +++ b/src/nunit.agent.core/Drivers/DriverService.cs @@ -15,7 +15,7 @@ namespace NUnit.Engine.Drivers /// The DriverService provides drivers able to load and run tests /// using various frameworks. /// - public class DriverService : IDriverService + internal class DriverService : IDriverService { #if NETFRAMEWORK private const string TYPE_EXTENSION_PATH = "/NUnit/Engine/TypeExtensions/"; diff --git a/src/nunit.agent.core/Drivers/InvalidAssemblyFrameworkDriver.cs b/src/nunit.agent.core/Drivers/InvalidAssemblyFrameworkDriver.cs index ae01a40..87a352f 100644 --- a/src/nunit.agent.core/Drivers/InvalidAssemblyFrameworkDriver.cs +++ b/src/nunit.agent.core/Drivers/InvalidAssemblyFrameworkDriver.cs @@ -8,7 +8,7 @@ namespace NUnit.Engine.Drivers { - public sealed class InvalidAssemblyFrameworkDriver : IFrameworkDriver + internal sealed class InvalidAssemblyFrameworkDriver : IFrameworkDriver { private readonly string _name; private readonly string _fullname; diff --git a/src/nunit.agent.core/Drivers/NUnit2DriverFactory.cs b/src/nunit.agent.core/Drivers/NUnit2DriverFactory.cs index 3d730da..5123e42 100644 --- a/src/nunit.agent.core/Drivers/NUnit2DriverFactory.cs +++ b/src/nunit.agent.core/Drivers/NUnit2DriverFactory.cs @@ -8,7 +8,7 @@ namespace NUnit.Engine.Drivers { - public class NUnit2DriverFactory : IDriverFactory + internal class NUnit2DriverFactory : IDriverFactory { private const string NUNIT_FRAMEWORK = "nunit.framework"; private const string NUNITLITE_FRAMEWORK = "nunitlite"; diff --git a/src/nunit.agent.core/Drivers/NUnit3DriverFactory.cs b/src/nunit.agent.core/Drivers/NUnit3DriverFactory.cs index 0ed280d..4fb3aad 100644 --- a/src/nunit.agent.core/Drivers/NUnit3DriverFactory.cs +++ b/src/nunit.agent.core/Drivers/NUnit3DriverFactory.cs @@ -6,7 +6,7 @@ namespace NUnit.Engine.Drivers { - public class NUnit3DriverFactory : IDriverFactory + internal class NUnit3DriverFactory : IDriverFactory { internal const string NUNIT_FRAMEWORK = "nunit.framework"; private static readonly Logger log = InternalTrace.GetLogger(typeof(NUnit3DriverFactory)); diff --git a/src/nunit.agent.core/Drivers/NUnitFrameworkApi.cs b/src/nunit.agent.core/Drivers/NUnitFrameworkApi.cs index c4910e1..41a75da 100644 --- a/src/nunit.agent.core/Drivers/NUnitFrameworkApi.cs +++ b/src/nunit.agent.core/Drivers/NUnitFrameworkApi.cs @@ -5,7 +5,7 @@ namespace NUnit.Engine.Drivers { - public interface NUnitFrameworkApi + internal interface NUnitFrameworkApi { /// /// Loads the tests in an assembly. diff --git a/src/nunit.agent.core/Drivers/NUnitFrameworkApi2018.cs b/src/nunit.agent.core/Drivers/NUnitFrameworkApi2018.cs index f366e5e..f0281b1 100644 --- a/src/nunit.agent.core/Drivers/NUnitFrameworkApi2018.cs +++ b/src/nunit.agent.core/Drivers/NUnitFrameworkApi2018.cs @@ -19,9 +19,9 @@ namespace NUnit.Engine.Drivers /// may be used for NUnit 3.10 or higher. /// #if NETFRAMEWORK - public class NUnitFrameworkApi2018 : MarshalByRefObject, NUnitFrameworkApi + internal class NUnitFrameworkApi2018 : MarshalByRefObject, NUnitFrameworkApi #else - public class NUnitFrameworkApi2018 : NUnitFrameworkApi + internal class NUnitFrameworkApi2018 : NUnitFrameworkApi #endif { private static readonly Logger log = InternalTrace.GetLogger(nameof(NUnitFrameworkApi2018)); diff --git a/src/nunit.agent.core/Drivers/NUnitFrameworkDriver.cs b/src/nunit.agent.core/Drivers/NUnitFrameworkDriver.cs index a2ccf09..9d06acc 100644 --- a/src/nunit.agent.core/Drivers/NUnitFrameworkDriver.cs +++ b/src/nunit.agent.core/Drivers/NUnitFrameworkDriver.cs @@ -15,7 +15,7 @@ namespace NUnit.Engine.Drivers /// NUnitFrameworkDriver is used by the test-runner to load and run /// tests using the NUnit framework assembly, versions 3 and up. /// - public class NUnitFrameworkDriver : IFrameworkDriver + internal class NUnitFrameworkDriver : IFrameworkDriver { private static readonly Version MINIMUM_NUNIT_VERSION = new(3, 2, 0); private static readonly Logger log = InternalTrace.GetLogger(nameof(NUnitFrameworkDriver)); diff --git a/src/nunit.agent.core/Drivers/ProvidedPathsAssemblyResolver.cs b/src/nunit.agent.core/Drivers/ProvidedPathsAssemblyResolver.cs index 42a16af..2a987c2 100644 --- a/src/nunit.agent.core/Drivers/ProvidedPathsAssemblyResolver.cs +++ b/src/nunit.agent.core/Drivers/ProvidedPathsAssemblyResolver.cs @@ -8,7 +8,7 @@ namespace NUnit.Engine.Drivers { - public class ProvidedPathsAssemblyResolver + internal class ProvidedPathsAssemblyResolver { private static readonly Logger log = InternalTrace.GetLogger(typeof(ProvidedPathsAssemblyResolver)); diff --git a/src/nunit.agent.core/RunTestsCallbackHandler.cs b/src/nunit.agent.core/RunTestsCallbackHandler.cs index a5c279d..beb6388 100644 --- a/src/nunit.agent.core/RunTestsCallbackHandler.cs +++ b/src/nunit.agent.core/RunTestsCallbackHandler.cs @@ -7,7 +7,7 @@ namespace NUnit.Engine { - public class RunTestsCallbackHandler : MarshalByRefObject, ICallbackEventHandler + internal class RunTestsCallbackHandler : MarshalByRefObject, ICallbackEventHandler { private readonly ITestEventListener? _listener; diff --git a/src/nunit.agent.core/Runners/DomainManager.cs b/src/nunit.agent.core/Runners/DomainManager.cs index 592411e..6fee33c 100644 --- a/src/nunit.agent.core/Runners/DomainManager.cs +++ b/src/nunit.agent.core/Runners/DomainManager.cs @@ -19,7 +19,7 @@ namespace NUnit.Engine.Runners /// The DomainManager class handles the creation and unloading /// of domains as needed and keeps track of all existing domains. /// - public class DomainManager + internal class DomainManager { private static readonly Logger log = InternalTrace.GetLogger(typeof(DomainManager)); diff --git a/src/nunit.agent.core/Runners/LocalTestRunner.cs b/src/nunit.agent.core/Runners/LocalTestRunner.cs index ded26d9..85637ee 100644 --- a/src/nunit.agent.core/Runners/LocalTestRunner.cs +++ b/src/nunit.agent.core/Runners/LocalTestRunner.cs @@ -7,7 +7,7 @@ namespace NUnit.Engine.Runners /// /// LocalTestRunner runs tests in the current application domain. /// - public class LocalTestRunner : TestAgentRunner + internal class LocalTestRunner : TestAgentRunner { public LocalTestRunner(TestPackage package) : base(package) { diff --git a/src/nunit.agent.core/Runners/TestAgentRunner.cs b/src/nunit.agent.core/Runners/TestAgentRunner.cs index 1494159..ed0d0d9 100644 --- a/src/nunit.agent.core/Runners/TestAgentRunner.cs +++ b/src/nunit.agent.core/Runners/TestAgentRunner.cs @@ -18,7 +18,7 @@ namespace NUnit.Engine.Runners /// deal directly with a framework driver. It loads and runs tests in a single /// assembly, creating an to do so. /// - public abstract class TestAgentRunner : ITestEngineRunner + internal abstract class TestAgentRunner : ITestEngineRunner { private readonly Logger log = InternalTrace.GetLogger(typeof(TestAgentRunner)); diff --git a/src/nunit.agent.core/Runners/TestDomainRunner.cs b/src/nunit.agent.core/Runners/TestDomainRunner.cs index b48a9ff..61f9865 100644 --- a/src/nunit.agent.core/Runners/TestDomainRunner.cs +++ b/src/nunit.agent.core/Runners/TestDomainRunner.cs @@ -8,7 +8,7 @@ namespace NUnit.Engine.Runners /// TestDomainRunner loads and runs tests in a separate /// domain whose lifetime it controls. /// - public class TestDomainRunner : TestAgentRunner + internal class TestDomainRunner : TestAgentRunner { private static readonly Logger log = InternalTrace.GetLogger(typeof(TestDomainRunner)); From 02e6bb8a8fbe5906f6e7470b4967ac59bc0235b0 Mon Sep 17 00:00:00 2001 From: Charlie Poole Date: Tue, 6 Oct 2026 22:07:13 -0700 Subject: [PATCH 2/2] Changes from review --- src/nunit.agent.core/TestAssemblyResolver.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/nunit.agent.core/TestAssemblyResolver.cs b/src/nunit.agent.core/TestAssemblyResolver.cs index e983d41..df866d6 100644 --- a/src/nunit.agent.core/TestAssemblyResolver.cs +++ b/src/nunit.agent.core/TestAssemblyResolver.cs @@ -131,7 +131,7 @@ private static string GetAssemblyLocationInfo(Assembly assembly) #region ResolutionStrategy Classes - public abstract class ResolutionStrategy + internal abstract class ResolutionStrategy { public string Name => GetType().Name; public int Calls { get; set; } @@ -141,7 +141,7 @@ public abstract bool TryToResolve( AssemblyLoadContext loadContext, AssemblyName assemblyName, [NotNullWhen(true)] out Assembly? loadedAssembly); } - public class TrustedPlatformAssembliesStrategy : ResolutionStrategy + internal class TrustedPlatformAssembliesStrategy : ResolutionStrategy { private static readonly Logger log = InternalTrace.GetLogger(typeof(TrustedPlatformAssembliesStrategy)); public override bool TryToResolve( @@ -181,7 +181,7 @@ bool FileMatchesAssembly(string fileName) => } } - public class RuntimeLibrariesStrategy : ResolutionStrategy + internal class RuntimeLibrariesStrategy : ResolutionStrategy { private static readonly Logger log = InternalTrace.GetLogger(typeof(RuntimeLibrariesStrategy)); @@ -244,7 +244,7 @@ public override bool TryToResolve( } } - public class AdditionalRuntimesStrategy : ResolutionStrategy + internal class AdditionalRuntimesStrategy : ResolutionStrategy { private string _runtimeName; private bool _x86; @@ -273,14 +273,14 @@ public override bool TryToResolve(AssemblyLoadContext loadContext, AssemblyName } } - public class WindowsDesktopStrategy : AdditionalRuntimesStrategy + internal class WindowsDesktopStrategy : AdditionalRuntimesStrategy { public WindowsDesktopStrategy(bool x86) : base("Microsoft.WindowsDesktop.App", x86) { } } - public class AspNetCoreStrategy : AdditionalRuntimesStrategy + internal class AspNetCoreStrategy : AdditionalRuntimesStrategy { public AspNetCoreStrategy(bool x86) : base("Microsoft.AspNetCore.App", x86) {