public static Solution CreateSolutionWithSingleProject(string[] sources, MetadataReference[] references, FakeFileInfo fakeFileInfo)
        {
            fakeFileInfo = fakeFileInfo ?? DefaultFileInfo;
            var projectId = ProjectId.CreateNewId(debugName: TestProjectName);

            var solution = new AdhocWorkspace()
                           .CurrentSolution
                           .AddProject(projectId, TestProjectName, TestProjectName, LanguageNames.CSharp)
                           .WithProjectCompilationOptions(projectId, new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary))
                           .AddMetadataReferences(projectId, ReferencesHelper.CoreDotNetReferences);

            if (references != null)
            {
                solution = solution.AddMetadataReferences(projectId, references.Distinct());
            }

            var count = 0;

            foreach (var source in sources)
            {
                var newFileName = fakeFileInfo.GetFullFilePath(count++);
                var documentId  = DocumentId.CreateNewId(projectId, debugName: newFileName);
                var sourceText  = SourceText.From(source);

                solution = solution.AddDocument(documentId, newFileName, sourceText);
            }

            return(solution);
        }