TestCentric / testcentric-engine

Test engine that loads and runs tests for TestCentric
MIT License
0 stars 3 forks source link

Review all public services and make those which don't need to be visible internal #152

Closed CharliePoole closed 1 year ago

CharliePoole commented 1 year ago

For each service, we have to consider the service classes themselves, any interfaces they implement and interfaces used to extend them. In the following sections, the IService interface, used by all services, is not shown. It is public and must remain so.

Classes are almost all public due to history and legacy of the NUnit project. Initial assumption is that the classes should all be internal. Interfaces require individual analysis.

Some interfaces are currently defined in the NUnit engine API. These can't be changed until we create our own definitions in the TestCentric API. Actions needed on these interfaces are listed as "Deferred".

ExtensionService

Status: Public class implementing public interface IExtensionService. Action: Make class internal. Keep interface public. DONE

ProjectService

Status: Public class implementing public interface `IProjectService. DONE Action: Make class internal. Keep interface public. DONE

ResultService

Status: Public class implementing public interface `IResultService. Action: Make class internal. Keep interface public. DONE

RuntimeFrameworkService

Status: Public class implementing public interfaces IRuntimeFrameworkService and IAvailableRuntimes. Action: Make class internal. Keep IAvailableRuntimes public. DONE Deferred: Make IRuntimeFrameworkService internal.

TestAgency

Status: Public class implementing public interfaces ITestAgentProvider and ITestAgency. Action: Make class internal. Keep ITestAgency public. Make ITestAgentProvider internal. DONE

TestAgentService

Status: Internal class implementing public interface ITestAgentInfo. Action: No change.

TestEventDispatcher

Status: Public class implementing public interface ITestEventListener. Extensible using same interface. Action: Make class internal. Keep interface public. DONE

TestFilterService

Status: Public class implementing public interface ITestFilterService. Action: Make class internal. Keep interface public. DONE

TestFrameworkService

Status: Public class implementing public interface `ITestFrameworkService. Action: Make class internal. Make interface internal. DONE

TestPackageAnalyzer

Status: Public class, no interface. Action: Make class internal. DONE

TestRunnerFactory

Status: Public class implementing public interface `ITestRunnerFactory. Action: Make class internal. Make interface internal. DONE