public async Task ShouldCollectExpectedNumberOfExtensionMethods(string[] paths, int expected)
        {
            // Arrange
            var generator = new OverloadsGenerator();
            var project   = Verifier.CreateProject(
                paths
                .Concat(Directory.EnumerateFiles("TestData/Source/Common", "*.cs", SearchOption.AllDirectories))
                .Select(path => File.ReadAllText(path)));
            var compilation = await project.GetCompilationAsync().ConfigureAwait(false);

            // Act
            var result = generator.CollectExtensionMethods(compilation !);

            // Assert
            _ = result.Values.SelectMany(item => item).Count().Must()
                .BeEqualTo(expected);
        }
        public async Task ClassesWithOverloadsShouldNotGenerate(string[] paths)
        {
            // Arrange
            var generator = new OverloadsGenerator();
            var project   = Verifier.CreateProject(
                paths
                .Concat(Directory.EnumerateFiles("TestData/Source/Common", "*.cs", SearchOption.AllDirectories))
                .Select(path => File.ReadAllText(path)));
            var compilation = await project.GetCompilationAsync().ConfigureAwait(false);

            // Act
            var extensionMethods = generator.CollectExtensionMethods(compilation !);
            var result           = generator.GenerateSource(compilation !, extensionMethods);

            // Assert
            _ = result.Must()
                .BeEnumerableOf <(INamedTypeSymbol, INamedTypeSymbol, string)>()
                .BeEmpty();
        }