diff --git a/Tests/TryAtSoftware.CleanTests.Benchmark/CombinatorialMachineBenchmark.cs b/Tests/TryAtSoftware.CleanTests.Benchmark/CombinatorialMachineBenchmark.cs index 2909cde..4384b3f 100644 --- a/Tests/TryAtSoftware.CleanTests.Benchmark/CombinatorialMachineBenchmark.cs +++ b/Tests/TryAtSoftware.CleanTests.Benchmark/CombinatorialMachineBenchmark.cs @@ -21,7 +21,7 @@ | GenerateAllCombinations | Setup #8 | 22.56 us | 0.163 us | 0.153 us | | GenerateAllCombinations | Setup #9 | 80.94 us | 0.447 us | 0.396 us | */ -public class CombinatorialMachineBenchmark +internal class CombinatorialMachineBenchmark { private CombinatorialMachine _machine; diff --git a/Tests/TryAtSoftware.CleanTests.Benchmark/ConstructionManagerBenchmark.cs b/Tests/TryAtSoftware.CleanTests.Benchmark/ConstructionManagerBenchmark.cs index b770600..2923984 100644 --- a/Tests/TryAtSoftware.CleanTests.Benchmark/ConstructionManagerBenchmark.cs +++ b/Tests/TryAtSoftware.CleanTests.Benchmark/ConstructionManagerBenchmark.cs @@ -20,7 +20,7 @@ | BuildConstructionGraphs | Setup #6 | 24.91 us | 0.175 us | 0.164 us | 6.0425 | 0.1221 | - | 49.47 KB | */ [MemoryDiagnoser] -public class ConstructionManagerBenchmark +internal class ConstructionManagerBenchmark { private CleanTestAssemblyData _assemblyData; diff --git a/Tests/TryAtSoftware.CleanTests.UnitTests/CombinatorialMachineTests.cs b/Tests/TryAtSoftware.CleanTests.UnitTests/CombinatorialMachineTests.cs index 36767d6..cf2afb9 100644 --- a/Tests/TryAtSoftware.CleanTests.UnitTests/CombinatorialMachineTests.cs +++ b/Tests/TryAtSoftware.CleanTests.UnitTests/CombinatorialMachineTests.cs @@ -29,7 +29,13 @@ public async Task CombinationsShouldBeGeneratedSuccessfully(EnvironmentSetup set } } - public static IEnumerable GetCombinatorialMachineSetups() - => TestParameters.ConstructObservableCombinatorialMachineSetups() - .Select(combinatorialMachineSetup => new object[] { combinatorialMachineSetup.EnvironmentSetup, combinatorialMachineSetup.ExpectedCombinationsCount }); + public static TheoryData GetCombinatorialMachineSetups() + { + var result = new TheoryData(); + + foreach (var setup in TestParameters.ConstructObservableCombinatorialMachineSetups()) + result.Add(setup.EnvironmentSetup, setup.ExpectedCombinationsCount); + + return result; + } } \ No newline at end of file diff --git a/Tests/TryAtSoftware.CleanTests.UnitTests/Extensions/DiscoveryExtensions.cs b/Tests/TryAtSoftware.CleanTests.UnitTests/Extensions/DiscoveryExtensions.cs index 5879251..0b02ee4 100644 --- a/Tests/TryAtSoftware.CleanTests.UnitTests/Extensions/DiscoveryExtensions.cs +++ b/Tests/TryAtSoftware.CleanTests.UnitTests/Extensions/DiscoveryExtensions.cs @@ -7,12 +7,12 @@ using Xunit.Abstractions; using Xunit.Sdk; -public static class DiscoveryExtensions +internal static class DiscoveryExtensions { private const int DelayBetweenDiscoveryRetries = 50; private const int MaxDiscoveryRetries = 20; - public static async Task> DiscoverTestCasesAsync(this IAssemblyInfo assembly, CleanTestAssemblyData assemblyData, TestComponentMocksSuite testComponentMocks) + internal static async Task> DiscoverTestCasesAsync(this IAssemblyInfo assembly, CleanTestAssemblyData assemblyData, TestComponentMocksSuite testComponentMocks) { Assert.NotNull(assembly); Assert.NotNull(assemblyData); diff --git a/Tests/TryAtSoftware.CleanTests.UnitTests/Extensions/ParametrizationExtensions.cs b/Tests/TryAtSoftware.CleanTests.UnitTests/Extensions/ParametrizationExtensions.cs index b3f7326..4409364 100644 --- a/Tests/TryAtSoftware.CleanTests.UnitTests/Extensions/ParametrizationExtensions.cs +++ b/Tests/TryAtSoftware.CleanTests.UnitTests/Extensions/ParametrizationExtensions.cs @@ -4,7 +4,7 @@ using TryAtSoftware.CleanTests.Core.XUnit; using TryAtSoftware.CleanTests.UnitTests.Parametrization; -public static class ParametrizationExtensions +internal static class ParametrizationExtensions { public static CombinatorialMachine MaterializeAsCombinatorialMachine(this EnvironmentSetup environmentSetup) { diff --git a/Tests/TryAtSoftware.CleanTests.UnitTests/Parametrization/EnvironmentSetup.cs b/Tests/TryAtSoftware.CleanTests.UnitTests/Parametrization/EnvironmentSetup.cs index 996a14a..31a1d5c 100644 --- a/Tests/TryAtSoftware.CleanTests.UnitTests/Parametrization/EnvironmentSetup.cs +++ b/Tests/TryAtSoftware.CleanTests.UnitTests/Parametrization/EnvironmentSetup.cs @@ -26,8 +26,8 @@ public EnvironmentSetup WithCategory(string category, int utilitiesCount) if (string.IsNullOrWhiteSpace(category)) throw new ArgumentNullException(nameof(category)); if (utilitiesCount <= 0) throw new ArgumentException("The number of utilities for each category must be at least 1", nameof(utilitiesCount)); - if (this._numberOfUtilitiesPerCategory.ContainsKey(category)) throw new InvalidOperationException("Category with that name has already been registered."); - this._numberOfUtilitiesPerCategory[category] = utilitiesCount; + if (!this._numberOfUtilitiesPerCategory.TryAdd(category, utilitiesCount)) + throw new InvalidOperationException("Category with that name has already been registered."); return this; } @@ -77,7 +77,7 @@ public EnvironmentSetup WithOuterDemands(string utilityCategory, int utilityId, return this; } - public ICleanTestInitializationCollection Materialize() + internal ICleanTestInitializationCollection Materialize() { var utilitiesCollection = new CleanTestInitializationCollection(); diff --git a/Tests/TryAtSoftware.CleanTests.UnitTests/Parametrization/TestParameters.cs b/Tests/TryAtSoftware.CleanTests.UnitTests/Parametrization/TestParameters.cs index fd3a725..b5db122 100644 --- a/Tests/TryAtSoftware.CleanTests.UnitTests/Parametrization/TestParameters.cs +++ b/Tests/TryAtSoftware.CleanTests.UnitTests/Parametrization/TestParameters.cs @@ -2,7 +2,7 @@ using System.Text; -public static class TestParameters +internal static class TestParameters { public static IEnumerable GetInvalidStringParameters() { diff --git a/Tests/TryAtSoftware.CleanTests.UnitTests/TryAtSoftware.CleanTests.UnitTests.csproj b/Tests/TryAtSoftware.CleanTests.UnitTests/TryAtSoftware.CleanTests.UnitTests.csproj index 641471b..4204d51 100644 --- a/Tests/TryAtSoftware.CleanTests.UnitTests/TryAtSoftware.CleanTests.UnitTests.csproj +++ b/Tests/TryAtSoftware.CleanTests.UnitTests/TryAtSoftware.CleanTests.UnitTests.csproj @@ -9,6 +9,10 @@ false + + + + all diff --git a/TryAtSoftware.CleanTests.Core/CleanTestInitializationCollection.cs b/TryAtSoftware.CleanTests.Core/CleanTestInitializationCollection.cs index 11fcade..cebecf0 100644 --- a/TryAtSoftware.CleanTests.Core/CleanTestInitializationCollection.cs +++ b/TryAtSoftware.CleanTests.Core/CleanTestInitializationCollection.cs @@ -6,7 +6,7 @@ using TryAtSoftware.CleanTests.Core.Interfaces; using TryAtSoftware.Extensions.Collections; -public class CleanTestInitializationCollection : ICleanTestInitializationCollection +internal class CleanTestInitializationCollection : ICleanTestInitializationCollection { private readonly IDictionary> _data = new Dictionary>(); diff --git a/TryAtSoftware.CleanTests.Core/CleanUtilityDescriptor.cs b/TryAtSoftware.CleanTests.Core/CleanUtilityDescriptor.cs index 561a1bb..146897d 100644 --- a/TryAtSoftware.CleanTests.Core/CleanUtilityDescriptor.cs +++ b/TryAtSoftware.CleanTests.Core/CleanUtilityDescriptor.cs @@ -5,7 +5,7 @@ using TryAtSoftware.CleanTests.Core.Interfaces; using TryAtSoftware.Extensions.Collections; -public class CleanUtilityDescriptor : ICleanUtilityDescriptor +internal class CleanUtilityDescriptor : ICleanUtilityDescriptor { private readonly HashSet _characteristics = new(); private readonly HashSet _internalRequirements = new (); diff --git a/TryAtSoftware.CleanTests.Core/Construction/ConstructionManager.cs b/TryAtSoftware.CleanTests.Core/Construction/ConstructionManager.cs index 4becaa5..fd6fe8d 100644 --- a/TryAtSoftware.CleanTests.Core/Construction/ConstructionManager.cs +++ b/TryAtSoftware.CleanTests.Core/Construction/ConstructionManager.cs @@ -9,7 +9,7 @@ using TryAtSoftware.CleanTests.Core.XUnit; using TryAtSoftware.Extensions.Collections; -public class ConstructionManager(CleanTestAssemblyData cleanTestAssemblyData) : IConstructionManager +internal class ConstructionManager(CleanTestAssemblyData cleanTestAssemblyData) : IConstructionManager { private readonly CleanTestAssemblyData _cleanTestAssemblyData = cleanTestAssemblyData ?? throw new ArgumentNullException(nameof(cleanTestAssemblyData)); private readonly Dictionary _constructionGraphsById = new(); @@ -36,12 +36,12 @@ public IndividualCleanUtilityConstructionGraph[][] BuildIndividualConstructionGr { if (this._constructionGraphsById.TryGetValue(utilityId, out var memoizedResult)) return memoizedResult; - var graph = this.BuildConstructionGraph(utilityId, new HashSet()); + var graph = this.BuildConstructionGraph(utilityId, []); this._constructionGraphsById[utilityId] = graph; return graph; } - private FullCleanUtilityConstructionGraph? BuildConstructionGraph(string utilityId, ISet usedUtilities) + private FullCleanUtilityConstructionGraph? BuildConstructionGraph(string utilityId, HashSet usedUtilities) { var utility = this._cleanTestAssemblyData.CleanUtilitiesById[utilityId]; var graph = new FullCleanUtilityConstructionGraph(utilityId); @@ -142,7 +142,7 @@ private static void ExtractConstructionGraphs(IEnumerable utilityIds, ID } } - private void ExtractDependencies(ICleanUtilityDescriptor utilityDescriptor, string requirement, ISet usedUtilities, ICleanTestInitializationCollection dependenciesCollection, IDictionary dependencyGraphsById) + private void ExtractDependencies(ICleanUtilityDescriptor utilityDescriptor, string requirement, HashSet usedUtilities, CleanTestInitializationCollection dependenciesCollection, IDictionary dependencyGraphsById) { var localDemands = utilityDescriptor.InternalDemands.Get(requirement); diff --git a/TryAtSoftware.CleanTests.Core/Construction/FullCleanUtilityConstructionGraph.cs b/TryAtSoftware.CleanTests.Core/Construction/FullCleanUtilityConstructionGraph.cs index e8adc30..8e20e3d 100644 --- a/TryAtSoftware.CleanTests.Core/Construction/FullCleanUtilityConstructionGraph.cs +++ b/TryAtSoftware.CleanTests.Core/Construction/FullCleanUtilityConstructionGraph.cs @@ -10,7 +10,7 @@ /// /// The value that should be set to the property. /// If a full construction graph has no construction descriptors, this means that there are no required dependencies. -public record FullCleanUtilityConstructionGraph(string Id) +internal record FullCleanUtilityConstructionGraph(string Id) { public string Id { get; } = Id; public List ConstructionDescriptors { get; } = new (); diff --git a/TryAtSoftware.CleanTests.Core/Construction/IndividualCleanUtilityConstructionGraph.cs b/TryAtSoftware.CleanTests.Core/Construction/IndividualCleanUtilityConstructionGraph.cs index 3dfb75d..fb36917 100644 --- a/TryAtSoftware.CleanTests.Core/Construction/IndividualCleanUtilityConstructionGraph.cs +++ b/TryAtSoftware.CleanTests.Core/Construction/IndividualCleanUtilityConstructionGraph.cs @@ -14,7 +14,7 @@ /// | Service 1A | | Service 2B | | Service 3A | /// /// The value that should be set to the property. -public record IndividualCleanUtilityConstructionGraph(string Id) +internal record IndividualCleanUtilityConstructionGraph(string Id) { public string Id { get; } = Id; public List Dependencies { get; } = new (); diff --git a/TryAtSoftware.CleanTests.Core/Extensions/CleanTestsFrameworkExtensions.cs b/TryAtSoftware.CleanTests.Core/Extensions/CleanTestsFrameworkExtensions.cs index 2e9bc90..3df3ae5 100644 --- a/TryAtSoftware.CleanTests.Core/Extensions/CleanTestsFrameworkExtensions.cs +++ b/TryAtSoftware.CleanTests.Core/Extensions/CleanTestsFrameworkExtensions.cs @@ -11,7 +11,7 @@ using TryAtSoftware.Extensions.Collections; using Xunit.Sdk; -public static class CleanTestsFrameworkExtensions +internal static class CleanTestsFrameworkExtensions { public static void CopyTo(this ICleanTestInitializationCollection source, ICleanTestInitializationCollection target) { diff --git a/TryAtSoftware.CleanTests.Core/Extensions/ConstructionGraphExtensions.cs b/TryAtSoftware.CleanTests.Core/Extensions/ConstructionGraphExtensions.cs index 8a7fead..41d5c0a 100644 --- a/TryAtSoftware.CleanTests.Core/Extensions/ConstructionGraphExtensions.cs +++ b/TryAtSoftware.CleanTests.Core/Extensions/ConstructionGraphExtensions.cs @@ -2,7 +2,7 @@ using TryAtSoftware.CleanTests.Core.Construction; -public static class ConstructionGraphExtensions +internal static class ConstructionGraphExtensions { public static FullCleanUtilityConstructionGraph Copy(this FullCleanUtilityConstructionGraph graph) { diff --git a/TryAtSoftware.CleanTests.Core/Extensions/StringExtensions.cs b/TryAtSoftware.CleanTests.Core/Extensions/StringExtensions.cs index d5320ca..a546be9 100644 --- a/TryAtSoftware.CleanTests.Core/Extensions/StringExtensions.cs +++ b/TryAtSoftware.CleanTests.Core/Extensions/StringExtensions.cs @@ -4,5 +4,6 @@ internal static class StringExtensions { - internal static string SurroundWith(this string text, string prefix, string suffix) => string.Join(string.Empty, new[] { prefix, text, suffix }.IgnoreNullOrWhitespaceValues()); + internal static string SurroundWith(this string text, string prefix, string suffix) + => string.Join(string.Empty, new[] { prefix, text, suffix }.IgnoreNullOrWhitespaceValues()); } \ No newline at end of file diff --git a/TryAtSoftware.CleanTests.Core/GlobalUtilitiesProvider.cs b/TryAtSoftware.CleanTests.Core/GlobalUtilitiesProvider.cs index 56d9a07..446621c 100644 --- a/TryAtSoftware.CleanTests.Core/GlobalUtilitiesProvider.cs +++ b/TryAtSoftware.CleanTests.Core/GlobalUtilitiesProvider.cs @@ -4,7 +4,7 @@ using System.Collections.Generic; using TryAtSoftware.CleanTests.Core.Interfaces; -public class GlobalUtilitiesProvider : IGlobalUtilitiesProvider +internal class GlobalUtilitiesProvider : IGlobalUtilitiesProvider { private readonly Dictionary _utilities = new (); diff --git a/TryAtSoftware.CleanTests.Core/Interfaces/ICleanTestInitializationCollection.cs b/TryAtSoftware.CleanTests.Core/Interfaces/ICleanTestInitializationCollection.cs index 94adaeb..fea22c3 100644 --- a/TryAtSoftware.CleanTests.Core/Interfaces/ICleanTestInitializationCollection.cs +++ b/TryAtSoftware.CleanTests.Core/Interfaces/ICleanTestInitializationCollection.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; -public interface ICleanTestInitializationCollection : IEnumerable>> +internal interface ICleanTestInitializationCollection : IEnumerable>> { IReadOnlyCollection Categories { get; } IEnumerable Get(string category); diff --git a/TryAtSoftware.CleanTests.Core/Interfaces/ICleanUtilityDescriptor.cs b/TryAtSoftware.CleanTests.Core/Interfaces/ICleanUtilityDescriptor.cs index b93ead9..0453690 100644 --- a/TryAtSoftware.CleanTests.Core/Interfaces/ICleanUtilityDescriptor.cs +++ b/TryAtSoftware.CleanTests.Core/Interfaces/ICleanUtilityDescriptor.cs @@ -3,7 +3,7 @@ using System; using System.Collections.Generic; -public interface ICleanUtilityDescriptor +internal interface ICleanUtilityDescriptor { string Category { get; } string Id => $"c:{this.Category}|n:{this.Name}"; diff --git a/TryAtSoftware.CleanTests.Core/Interfaces/IConstructionManager.cs b/TryAtSoftware.CleanTests.Core/Interfaces/IConstructionManager.cs index 531747f..3ea1285 100644 --- a/TryAtSoftware.CleanTests.Core/Interfaces/IConstructionManager.cs +++ b/TryAtSoftware.CleanTests.Core/Interfaces/IConstructionManager.cs @@ -3,7 +3,7 @@ using System.Collections.Generic; using TryAtSoftware.CleanTests.Core.Construction; -public interface IConstructionManager +internal interface IConstructionManager { IndividualCleanUtilityConstructionGraph[][] BuildIndividualConstructionGraphs(IEnumerable utilityIds); } \ No newline at end of file diff --git a/TryAtSoftware.CleanTests.Core/Interfaces/IGlobalUtilitiesProvider.cs b/TryAtSoftware.CleanTests.Core/Interfaces/IGlobalUtilitiesProvider.cs index de86976..437dee3 100644 --- a/TryAtSoftware.CleanTests.Core/Interfaces/IGlobalUtilitiesProvider.cs +++ b/TryAtSoftware.CleanTests.Core/Interfaces/IGlobalUtilitiesProvider.cs @@ -5,7 +5,7 @@ namespace TryAtSoftware.CleanTests.Core.Interfaces; /// /// The `uniqueId` parameters correspond to the `UniqueId` of an `Individual clean utility dependency node`. /// -public interface IGlobalUtilitiesProvider +internal interface IGlobalUtilitiesProvider { bool RegisterUtility(string uniqueId, object instance); bool IsRegistered(string uniqueId); diff --git a/TryAtSoftware.CleanTests.Core/Internal/Validator.cs b/TryAtSoftware.CleanTests.Core/Internal/Validator.cs index 86d21c7..95cb9b7 100644 --- a/TryAtSoftware.CleanTests.Core/Internal/Validator.cs +++ b/TryAtSoftware.CleanTests.Core/Internal/Validator.cs @@ -2,7 +2,7 @@ using System; -public static class Validator +internal static class Validator { public static void ValidateMaxDegreeOfParallelism(int value) { diff --git a/TryAtSoftware.CleanTests.Core/TryAtSoftware.CleanTests.Core.csproj b/TryAtSoftware.CleanTests.Core/TryAtSoftware.CleanTests.Core.csproj index f6a2dd2..fe690d7 100644 --- a/TryAtSoftware.CleanTests.Core/TryAtSoftware.CleanTests.Core.csproj +++ b/TryAtSoftware.CleanTests.Core/TryAtSoftware.CleanTests.Core.csproj @@ -18,6 +18,11 @@ tryatsoftware testing combinatorics README.md + + + + + diff --git a/TryAtSoftware.CleanTests.Core/Utilities/CombinatorialMachine.cs b/TryAtSoftware.CleanTests.Core/Utilities/CombinatorialMachine.cs index 1e097ab..9d6f503 100644 --- a/TryAtSoftware.CleanTests.Core/Utilities/CombinatorialMachine.cs +++ b/TryAtSoftware.CleanTests.Core/Utilities/CombinatorialMachine.cs @@ -6,7 +6,7 @@ using TryAtSoftware.CleanTests.Core.Interfaces; using TryAtSoftware.Extensions.Collections; -public class CombinatorialMachine(ICleanTestInitializationCollection utilities) +internal class CombinatorialMachine(ICleanTestInitializationCollection utilities) { private readonly ICleanTestInitializationCollection _utilities = utilities ?? throw new ArgumentNullException(nameof(utilities)); diff --git a/TryAtSoftware.CleanTests.Core/XUnit/CleanTestAssemblyData.cs b/TryAtSoftware.CleanTests.Core/XUnit/CleanTestAssemblyData.cs index 4a7b242..a6f3790 100644 --- a/TryAtSoftware.CleanTests.Core/XUnit/CleanTestAssemblyData.cs +++ b/TryAtSoftware.CleanTests.Core/XUnit/CleanTestAssemblyData.cs @@ -9,7 +9,7 @@ using TryAtSoftware.Extensions.Reflection; using TryAtSoftware.Extensions.Reflection.Interfaces; -public class CleanTestAssemblyData +internal class CleanTestAssemblyData { private IHierarchyScanner _hierarchyScanner = new HierarchyScanner(); diff --git a/TryAtSoftware.CleanTests.Core/XUnit/CleanTestCase.cs b/TryAtSoftware.CleanTests.Core/XUnit/CleanTestCase.cs index 41f8821..e33e68e 100644 --- a/TryAtSoftware.CleanTests.Core/XUnit/CleanTestCase.cs +++ b/TryAtSoftware.CleanTests.Core/XUnit/CleanTestCase.cs @@ -13,7 +13,7 @@ namespace TryAtSoftware.CleanTests.Core.XUnit; using Xunit.Abstractions; using Xunit.Sdk; -public class CleanTestCase : XunitTestCase, ICleanTestCase +internal class CleanTestCase : XunitTestCase, ICleanTestCase { private CleanTestCaseData? _cleanTestCaseData; diff --git a/TryAtSoftware.CleanTests.Core/XUnit/CleanTestCaseData.cs b/TryAtSoftware.CleanTests.Core/XUnit/CleanTestCaseData.cs index 8fbc7f5..af48f88 100644 --- a/TryAtSoftware.CleanTests.Core/XUnit/CleanTestCaseData.cs +++ b/TryAtSoftware.CleanTests.Core/XUnit/CleanTestCaseData.cs @@ -5,7 +5,7 @@ using TryAtSoftware.CleanTests.Core.Construction; using TryAtSoftware.Extensions.Collections; -public class CleanTestCaseData(IDictionary? genericTypesMap, IEnumerable? cleanUtilities, string? displayNamePrefix) +internal class CleanTestCaseData(IDictionary? genericTypesMap, IEnumerable? cleanUtilities, string? displayNamePrefix) { public IDictionary GenericTypesMap { get; } = genericTypesMap.OrEmptyIfNull(); public IReadOnlyCollection CleanUtilities { get; } = cleanUtilities.OrEmptyIfNull().IgnoreNullValues().AsReadOnlyCollection(); diff --git a/TryAtSoftware.CleanTests.Core/XUnit/Discovery/BaseTestCaseDiscoverer.cs b/TryAtSoftware.CleanTests.Core/XUnit/Discovery/BaseTestCaseDiscoverer.cs index 5137757..b33398f 100644 --- a/TryAtSoftware.CleanTests.Core/XUnit/Discovery/BaseTestCaseDiscoverer.cs +++ b/TryAtSoftware.CleanTests.Core/XUnit/Discovery/BaseTestCaseDiscoverer.cs @@ -13,9 +13,9 @@ using Xunit.Abstractions; using Xunit.Sdk; -public abstract class BaseTestCaseDiscoverer(IMessageSink diagnosticMessageSink, TestCaseDiscoveryOptions testCaseDiscoveryOptions, ICleanTestInitializationCollection initializationUtilitiesCollection, IConstructionManager constructionManager, CleanTestAssemblyData cleanTestAssemblyData) +internal abstract class BaseTestCaseDiscoverer(IMessageSink diagnosticMessageSink, TestCaseDiscoveryOptions testCaseDiscoveryOptions, ICleanTestInitializationCollection initializationUtilitiesCollection, IConstructionManager constructionManager, CleanTestAssemblyData cleanTestAssemblyData) : IXunitTestCaseDiscoverer -{ +{ private readonly IMessageSink _diagnosticMessageSink = diagnosticMessageSink ?? throw new ArgumentNullException(nameof(diagnosticMessageSink)); private readonly TestCaseDiscoveryOptions _testCaseDiscoveryOptions = testCaseDiscoveryOptions ?? throw new ArgumentNullException(nameof(testCaseDiscoveryOptions)); private readonly ICleanTestInitializationCollection _initializationUtilitiesCollection = initializationUtilitiesCollection ?? throw new ArgumentNullException(nameof(initializationUtilitiesCollection)); diff --git a/TryAtSoftware.CleanTests.Core/XUnit/Discovery/CleanFactTestCaseDiscoverer.cs b/TryAtSoftware.CleanTests.Core/XUnit/Discovery/CleanFactTestCaseDiscoverer.cs index e03dd13..829f158 100644 --- a/TryAtSoftware.CleanTests.Core/XUnit/Discovery/CleanFactTestCaseDiscoverer.cs +++ b/TryAtSoftware.CleanTests.Core/XUnit/Discovery/CleanFactTestCaseDiscoverer.cs @@ -4,7 +4,7 @@ using TryAtSoftware.CleanTests.Core.Interfaces; using Xunit.Abstractions; -public class CleanFactTestCaseDiscoverer(IMessageSink diagnosticMessageSink, TestCaseDiscoveryOptions testCaseDiscoveryOptions, ICleanTestInitializationCollection initializationUtilitiesCollection, IConstructionManager constructionManager, CleanTestAssemblyData cleanTestAssemblyData) +internal class CleanFactTestCaseDiscoverer(IMessageSink diagnosticMessageSink, TestCaseDiscoveryOptions testCaseDiscoveryOptions, ICleanTestInitializationCollection initializationUtilitiesCollection, IConstructionManager constructionManager, CleanTestAssemblyData cleanTestAssemblyData) : BaseTestCaseDiscoverer(diagnosticMessageSink, testCaseDiscoveryOptions, initializationUtilitiesCollection, constructionManager, cleanTestAssemblyData) { protected override IEnumerable GetTestMethodArguments(IMessageSink diagnosticMessageSink, diff --git a/TryAtSoftware.CleanTests.Core/XUnit/Discovery/CleanTestFrameworkDiscoverer.cs b/TryAtSoftware.CleanTests.Core/XUnit/Discovery/CleanTestFrameworkDiscoverer.cs index dc51704..0f14f23 100644 --- a/TryAtSoftware.CleanTests.Core/XUnit/Discovery/CleanTestFrameworkDiscoverer.cs +++ b/TryAtSoftware.CleanTests.Core/XUnit/Discovery/CleanTestFrameworkDiscoverer.cs @@ -15,7 +15,7 @@ namespace TryAtSoftware.CleanTests.Core.XUnit.Discovery; using Xunit.Abstractions; using Xunit.Sdk; -public class CleanTestFrameworkDiscoverer : TestFrameworkDiscoverer +internal class CleanTestFrameworkDiscoverer : TestFrameworkDiscoverer { private readonly FallbackTestFrameworkDiscoverer _fallbackTestFrameworkDiscoverer; private readonly CleanTestAssemblyData _cleanTestAssemblyData; diff --git a/TryAtSoftware.CleanTests.Core/XUnit/Discovery/CleanTheoryTestCaseDiscoverer.cs b/TryAtSoftware.CleanTests.Core/XUnit/Discovery/CleanTheoryTestCaseDiscoverer.cs index 54885c1..eb3150b 100644 --- a/TryAtSoftware.CleanTests.Core/XUnit/Discovery/CleanTheoryTestCaseDiscoverer.cs +++ b/TryAtSoftware.CleanTests.Core/XUnit/Discovery/CleanTheoryTestCaseDiscoverer.cs @@ -6,7 +6,7 @@ using Xunit.Abstractions; using Xunit.Sdk; -public class CleanTheoryTestCaseDiscoverer(IMessageSink diagnosticMessageSink, TestCaseDiscoveryOptions testCaseDiscoveryOptions, ICleanTestInitializationCollection initializationUtilitiesCollection, IConstructionManager constructionManager, CleanTestAssemblyData cleanTestAssemblyData) +internal class CleanTheoryTestCaseDiscoverer(IMessageSink diagnosticMessageSink, TestCaseDiscoveryOptions testCaseDiscoveryOptions, ICleanTestInitializationCollection initializationUtilitiesCollection, IConstructionManager constructionManager, CleanTestAssemblyData cleanTestAssemblyData) : BaseTestCaseDiscoverer(diagnosticMessageSink, testCaseDiscoveryOptions, initializationUtilitiesCollection, constructionManager, cleanTestAssemblyData) { protected override IEnumerable GetTestMethodArguments(IMessageSink diagnosticMessageSink, ITestMethod testMethod) diff --git a/TryAtSoftware.CleanTests.Core/XUnit/Discovery/FallbackTestFrameworkDiscoverer.cs b/TryAtSoftware.CleanTests.Core/XUnit/Discovery/FallbackTestFrameworkDiscoverer.cs index a713898..dca5d32 100644 --- a/TryAtSoftware.CleanTests.Core/XUnit/Discovery/FallbackTestFrameworkDiscoverer.cs +++ b/TryAtSoftware.CleanTests.Core/XUnit/Discovery/FallbackTestFrameworkDiscoverer.cs @@ -3,7 +3,7 @@ using Xunit.Abstractions; using Xunit.Sdk; -public class FallbackTestFrameworkDiscoverer(IAssemblyInfo assemblyInfo, ISourceInformationProvider sourceProvider, IMessageSink diagnosticMessageSink, IXunitTestCollectionFactory? collectionFactory = null) +internal class FallbackTestFrameworkDiscoverer(IAssemblyInfo assemblyInfo, ISourceInformationProvider sourceProvider, IMessageSink diagnosticMessageSink, IXunitTestCollectionFactory? collectionFactory = null) : XunitTestFrameworkDiscoverer(assemblyInfo, sourceProvider, diagnosticMessageSink, collectionFactory) { public void DiscoverFallbackTests(ITestMethod testMethod, bool includeSourceInformation, IMessageBus messageBus, ITestFrameworkDiscoveryOptions discoveryOptions) diff --git a/TryAtSoftware.CleanTests.Core/XUnit/Discovery/TestCaseDiscoveryOptions.cs b/TryAtSoftware.CleanTests.Core/XUnit/Discovery/TestCaseDiscoveryOptions.cs index ef2e57f..9248575 100644 --- a/TryAtSoftware.CleanTests.Core/XUnit/Discovery/TestCaseDiscoveryOptions.cs +++ b/TryAtSoftware.CleanTests.Core/XUnit/Discovery/TestCaseDiscoveryOptions.cs @@ -4,7 +4,7 @@ using System.Collections.Generic; using TryAtSoftware.Extensions.Collections; -public class TestCaseDiscoveryOptions(IDictionary? genericTypes = null) +internal class TestCaseDiscoveryOptions(IDictionary? genericTypes = null) { public IDictionary GenericTypes { get; } = genericTypes.OrEmptyIfNull(); } \ No newline at end of file diff --git a/TryAtSoftware.CleanTests.Core/XUnit/Execution/CleanTestAssemblyRunner.cs b/TryAtSoftware.CleanTests.Core/XUnit/Execution/CleanTestAssemblyRunner.cs index f013121..be31aa6 100644 --- a/TryAtSoftware.CleanTests.Core/XUnit/Execution/CleanTestAssemblyRunner.cs +++ b/TryAtSoftware.CleanTests.Core/XUnit/Execution/CleanTestAssemblyRunner.cs @@ -7,7 +7,7 @@ using Xunit.Abstractions; using Xunit.Sdk; -public class CleanTestAssemblyRunner(ITestAssembly testAssembly, IEnumerable testCases, IMessageSink diagnosticMessageSink, IMessageSink executionMessageSink, ITestFrameworkExecutionOptions executionOptions, CleanTestAssemblyData assemblyData) +internal class CleanTestAssemblyRunner(ITestAssembly testAssembly, IEnumerable testCases, IMessageSink diagnosticMessageSink, IMessageSink executionMessageSink, ITestFrameworkExecutionOptions executionOptions, CleanTestAssemblyData assemblyData) : XunitTestAssemblyRunner(testAssembly, testCases, diagnosticMessageSink, executionMessageSink, executionOptions) { private readonly CleanTestAssemblyData _assemblyData = assemblyData ?? throw new ArgumentNullException(nameof(assemblyData)); diff --git a/TryAtSoftware.CleanTests.Core/XUnit/Execution/CleanTestCaseRunner.cs b/TryAtSoftware.CleanTests.Core/XUnit/Execution/CleanTestCaseRunner.cs index 31c56e4..4ee8116 100644 --- a/TryAtSoftware.CleanTests.Core/XUnit/Execution/CleanTestCaseRunner.cs +++ b/TryAtSoftware.CleanTests.Core/XUnit/Execution/CleanTestCaseRunner.cs @@ -7,7 +7,7 @@ using TryAtSoftware.CleanTests.Core.XUnit.Interfaces; using Xunit.Sdk; -public class CleanTestCaseRunner(ICleanTestCase testCase, IMessageBus messageBus, ExceptionAggregator aggregator, CancellationTokenSource cancellationTokenSource, object[] constructorArguments) +internal class CleanTestCaseRunner(ICleanTestCase testCase, IMessageBus messageBus, ExceptionAggregator aggregator, CancellationTokenSource cancellationTokenSource, object[] constructorArguments) : TestCaseRunner(testCase, messageBus, aggregator, cancellationTokenSource) { private readonly object[] _constructorArguments = constructorArguments ?? throw new ArgumentNullException(nameof(constructorArguments)); diff --git a/TryAtSoftware.CleanTests.Core/XUnit/Execution/CleanTestClassRunner.cs b/TryAtSoftware.CleanTests.Core/XUnit/Execution/CleanTestClassRunner.cs index 9d34635..76e75cb 100644 --- a/TryAtSoftware.CleanTests.Core/XUnit/Execution/CleanTestClassRunner.cs +++ b/TryAtSoftware.CleanTests.Core/XUnit/Execution/CleanTestClassRunner.cs @@ -9,7 +9,7 @@ using Xunit.Abstractions; using Xunit.Sdk; -public class CleanTestClassRunner(ITestClass testClass, IReflectionTypeInfo @class, IEnumerable testCases, IMessageSink diagnosticMessageSink, IMessageBus messageBus, ITestCaseOrderer testCaseOrderer, ExceptionAggregator aggregator, CancellationTokenSource cancellationTokenSource, IDictionary collectionFixtureMappings, IGlobalUtilitiesProvider globalUtilitiesProvider, CleanTestAssemblyData assemblyData) +internal class CleanTestClassRunner(ITestClass testClass, IReflectionTypeInfo @class, IEnumerable testCases, IMessageSink diagnosticMessageSink, IMessageBus messageBus, ITestCaseOrderer testCaseOrderer, ExceptionAggregator aggregator, CancellationTokenSource cancellationTokenSource, IDictionary collectionFixtureMappings, IGlobalUtilitiesProvider globalUtilitiesProvider, CleanTestAssemblyData assemblyData) : XunitTestClassRunner(testClass, @class, testCases, diagnosticMessageSink, messageBus, testCaseOrderer, aggregator, cancellationTokenSource, collectionFixtureMappings) { private readonly IGlobalUtilitiesProvider _globalUtilitiesProvider = globalUtilitiesProvider ?? throw new ArgumentNullException(nameof(globalUtilitiesProvider)); diff --git a/TryAtSoftware.CleanTests.Core/XUnit/Execution/CleanTestCollectionRunner.cs b/TryAtSoftware.CleanTests.Core/XUnit/Execution/CleanTestCollectionRunner.cs index c4764d1..586b00e 100644 --- a/TryAtSoftware.CleanTests.Core/XUnit/Execution/CleanTestCollectionRunner.cs +++ b/TryAtSoftware.CleanTests.Core/XUnit/Execution/CleanTestCollectionRunner.cs @@ -15,7 +15,7 @@ namespace TryAtSoftware.CleanTests.Core.XUnit.Execution; using Xunit.Abstractions; using Xunit.Sdk; -public sealed class CleanTestCollectionRunner : XunitTestCollectionRunner, IDisposable +internal sealed class CleanTestCollectionRunner : XunitTestCollectionRunner, IDisposable { private readonly ServiceProvider _globalServicesProvider; private readonly IGlobalUtilitiesProvider _globalUtilitiesProvider = new GlobalUtilitiesProvider(); diff --git a/TryAtSoftware.CleanTests.Core/XUnit/Execution/CleanTestFrameworkExecutor.cs b/TryAtSoftware.CleanTests.Core/XUnit/Execution/CleanTestFrameworkExecutor.cs index e5e1f54..3ea6163 100644 --- a/TryAtSoftware.CleanTests.Core/XUnit/Execution/CleanTestFrameworkExecutor.cs +++ b/TryAtSoftware.CleanTests.Core/XUnit/Execution/CleanTestFrameworkExecutor.cs @@ -6,7 +6,7 @@ using Xunit.Abstractions; using Xunit.Sdk; -public class CleanTestFrameworkExecutor(AssemblyName assemblyName, ISourceInformationProvider sourceInformationProvider, IMessageSink diagnosticMessageSink, Func createDiscoverer, CleanTestAssemblyData assemblyData) +internal class CleanTestFrameworkExecutor(AssemblyName assemblyName, ISourceInformationProvider sourceInformationProvider, IMessageSink diagnosticMessageSink, Func createDiscoverer, CleanTestAssemblyData assemblyData) : XunitTestFrameworkExecutor(assemblyName, sourceInformationProvider, diagnosticMessageSink) { private readonly Func _createDiscoverer = createDiscoverer ?? throw new ArgumentNullException(nameof(createDiscoverer)); diff --git a/TryAtSoftware.CleanTests.Core/XUnit/Execution/CleanTestInvoker.cs b/TryAtSoftware.CleanTests.Core/XUnit/Execution/CleanTestInvoker.cs index 310adf3..72191ed 100644 --- a/TryAtSoftware.CleanTests.Core/XUnit/Execution/CleanTestInvoker.cs +++ b/TryAtSoftware.CleanTests.Core/XUnit/Execution/CleanTestInvoker.cs @@ -14,7 +14,7 @@ namespace TryAtSoftware.CleanTests.Core.XUnit.Execution; using Xunit.Abstractions; using Xunit.Sdk; -public class CleanTestInvoker(ITest test, IMessageBus messageBus, Type testClass, object[] constructorArguments, MethodInfo testMethod, object[] testMethodArguments, ExceptionAggregator aggregator, CancellationTokenSource cancellationTokenSource) +internal class CleanTestInvoker(ITest test, IMessageBus messageBus, Type testClass, object[] constructorArguments, MethodInfo testMethod, object[] testMethodArguments, ExceptionAggregator aggregator, CancellationTokenSource cancellationTokenSource) : TestInvoker(test, messageBus, testClass, constructorArguments, testMethod, testMethodArguments, aggregator, cancellationTokenSource) { protected override object CreateTestClass() diff --git a/TryAtSoftware.CleanTests.Core/XUnit/Execution/CleanTestMethodRunner.cs b/TryAtSoftware.CleanTests.Core/XUnit/Execution/CleanTestMethodRunner.cs index a675dd3..fee3f90 100644 --- a/TryAtSoftware.CleanTests.Core/XUnit/Execution/CleanTestMethodRunner.cs +++ b/TryAtSoftware.CleanTests.Core/XUnit/Execution/CleanTestMethodRunner.cs @@ -10,7 +10,7 @@ using Xunit.Abstractions; using Xunit.Sdk; -public class CleanTestMethodRunner(ITestMethod testMethod, IReflectionTypeInfo @class, IReflectionMethodInfo method, IEnumerable testCases, IMessageSink diagnosticMessageSink, IMessageBus messageBus, ExceptionAggregator aggregator, CancellationTokenSource cancellationTokenSource, object[] constructorArguments, CleanTestAssemblyData assemblyData) +internal class CleanTestMethodRunner(ITestMethod testMethod, IReflectionTypeInfo @class, IReflectionMethodInfo method, IEnumerable testCases, IMessageSink diagnosticMessageSink, IMessageBus messageBus, ExceptionAggregator aggregator, CancellationTokenSource cancellationTokenSource, object[] constructorArguments, CleanTestAssemblyData assemblyData) : XunitTestMethodRunner(testMethod, @class, method, testCases, diagnosticMessageSink, messageBus, aggregator, cancellationTokenSource, constructorArguments) { private readonly CleanTestAssemblyData _assemblyData = assemblyData ?? throw new ArgumentNullException(nameof(assemblyData)); diff --git a/TryAtSoftware.CleanTests.Core/XUnit/Execution/CleanTestRunner.cs b/TryAtSoftware.CleanTests.Core/XUnit/Execution/CleanTestRunner.cs index 390d7f5..83ebc75 100644 --- a/TryAtSoftware.CleanTests.Core/XUnit/Execution/CleanTestRunner.cs +++ b/TryAtSoftware.CleanTests.Core/XUnit/Execution/CleanTestRunner.cs @@ -11,7 +11,7 @@ using Xunit.Abstractions; using Xunit.Sdk; -public class CleanTestRunner(ITest test, IMessageBus messageBus, Type testClass, object[] constructorArguments, MethodInfo testMethod, object[] testMethodArguments, string skipReason, ExceptionAggregator aggregator, CancellationTokenSource cancellationTokenSource) +internal class CleanTestRunner(ITest test, IMessageBus messageBus, Type testClass, object[] constructorArguments, MethodInfo testMethod, object[] testMethodArguments, string skipReason, ExceptionAggregator aggregator, CancellationTokenSource cancellationTokenSource) : TestRunner(test, messageBus, testClass, constructorArguments, testMethod, testMethodArguments, skipReason, aggregator, cancellationTokenSource) { protected override async Task> InvokeTestAsync(ExceptionAggregator aggregator) diff --git a/TryAtSoftware.CleanTests.Core/XUnit/Interfaces/ICleanTestCase.cs b/TryAtSoftware.CleanTests.Core/XUnit/Interfaces/ICleanTestCase.cs index 9c8dc2d..4f25aa8 100644 --- a/TryAtSoftware.CleanTests.Core/XUnit/Interfaces/ICleanTestCase.cs +++ b/TryAtSoftware.CleanTests.Core/XUnit/Interfaces/ICleanTestCase.cs @@ -2,7 +2,7 @@ using Xunit.Sdk; -public interface ICleanTestCase : IXunitTestCase +internal interface ICleanTestCase : IXunitTestCase { CleanTestCaseData CleanTestCaseData { get; } } \ No newline at end of file diff --git a/TryAtSoftware.CleanTests.Core/XUnit/Interfaces/IDecoratedComponent.cs b/TryAtSoftware.CleanTests.Core/XUnit/Interfaces/IDecoratedComponent.cs index 3ba8946..e9d8a7a 100644 --- a/TryAtSoftware.CleanTests.Core/XUnit/Interfaces/IDecoratedComponent.cs +++ b/TryAtSoftware.CleanTests.Core/XUnit/Interfaces/IDecoratedComponent.cs @@ -4,7 +4,7 @@ using System.Collections.Generic; using Xunit.Abstractions; -public interface IDecoratedComponent +internal interface IDecoratedComponent { IEnumerable GetCustomAttributes(Type attributeType); } \ No newline at end of file diff --git a/TryAtSoftware.CleanTests.Sample/GenericTest.cs b/TryAtSoftware.CleanTests.Sample/GenericTest.cs index d931fb4..bcbe0a2 100644 --- a/TryAtSoftware.CleanTests.Sample/GenericTest.cs +++ b/TryAtSoftware.CleanTests.Sample/GenericTest.cs @@ -8,14 +8,9 @@ namespace TryAtSoftware.CleanTests.Sample; using Xunit.Abstractions; [TestSuiteGenericTypeMapping(typeof(NumericAttribute), typeof(int))] -public class GenericTest<[Numeric] T> : CleanTest +public class GenericTest<[Numeric] T>(ITestOutputHelper testOutputHelper) : CleanTest(testOutputHelper) where T : notnull { - public GenericTest(ITestOutputHelper testOutputHelper) - : base(testOutputHelper) - { - } - [CleanFact] public void StandardFact() => Assert.Equal(4, 2 + 2);