private static void TestSyntaxTreeFactoryService(ISyntaxTreeFactoryService service, string text, string fileName)
        {
            var parseOptions = service.GetDefaultParseOptions();
            var workspaceServices = new TestWorkspaceServiceProvider();

            var tree = service.ParseSyntaxTree(
                fileName,
                parseOptions,
                SourceText.From(text),
                CancellationToken.None);

            var textAndVersion = TextAndVersion.Create(
                tree.GetText(),
                VersionStamp.Create(),
                fileName);

            var valueSource = new AsyncLazy<TextAndVersion>(textAndVersion);

            var recoverableTree = service.CreateRecoverableTree(
                tree.FilePath,
                tree.Options,
                valueSource,
                tree.GetRoot());

            workspaceServices.GetService<ISyntaxTreeCacheService>().Clear();

            var trivia = tree.GetRoot().GetLeadingTrivia().First();
            var actualTrivia = recoverableTree.GetRoot().GetLeadingTrivia().First();

            Assert.Equal(trivia.ToFullString(), actualTrivia.ToFullString());
        }
        private static void TestSyntaxTreeFactoryService(ISyntaxTreeFactoryService service, string text, string fileName)
        {
            var parseOptions      = service.GetDefaultParseOptions();
            var workspaceServices = new TestWorkspaceServiceProvider();

            var tree = service.ParseSyntaxTree(
                fileName,
                parseOptions,
                SourceText.From(text),
                CancellationToken.None);

            var textAndVersion = TextAndVersion.Create(
                tree.GetText(),
                VersionStamp.Create(),
                fileName);

            var valueSource = new AsyncLazy <TextAndVersion>(textAndVersion);

            var recoverableTree = service.CreateRecoverableTree(
                tree.FilePath,
                tree.Options,
                valueSource,
                tree.GetRoot());

            workspaceServices.GetService <ISyntaxTreeCacheService>().Clear();

            var trivia       = tree.GetRoot().GetLeadingTrivia().First();
            var actualTrivia = recoverableTree.GetRoot().GetLeadingTrivia().First();

            Assert.Equal(trivia.ToFullString(), actualTrivia.ToFullString());
        }
        public void CSharpSyntaxTreeFactoryServiceTest()
        {
            var workspaceServices = new TestWorkspaceServiceProvider();
            var service = workspaceServices.GetService<ILanguageServiceProviderFactory>().GetLanguageServiceProvider(LanguageNames.CSharp).GetService<ISyntaxTreeFactoryService>();

            var text = @"/// <summary>XML</summary>
class C { }";
            var fileName = @"C:\1.cs";

            TestSyntaxTreeFactoryService(service, text, fileName);
        }
        public void CSharpSyntaxTreeFactoryServiceTest()
        {
            var workspaceServices = new TestWorkspaceServiceProvider();
            var service           = workspaceServices.GetService <ILanguageServiceProviderFactory>().GetLanguageServiceProvider(LanguageNames.CSharp).GetService <ISyntaxTreeFactoryService>();

            var text     = @"/// <summary>XML</summary>
class C { }";
            var fileName = @"C:\1.cs";

            TestSyntaxTreeFactoryService(service, text, fileName);
        }
        public void VisualBasicSyntaxTreeFactoryServiceTest()
        {
            var workspaceServices = new TestWorkspaceServiceProvider();
            var service = workspaceServices.GetService<ILanguageServiceProviderFactory>().GetLanguageServiceProvider(LanguageNames.VisualBasic).GetService<ISyntaxTreeFactoryService>();

            var text = @"''' <summary>XML</summary>
Class C
End Class";
            var fileName = @"C:\1.vb";

            TestSyntaxTreeFactoryService(service, text, fileName);
        }
        public void VisualBasicSyntaxTreeFactoryServiceTest()
        {
            var workspaceServices = new TestWorkspaceServiceProvider();
            var service           = workspaceServices.GetService <ILanguageServiceProviderFactory>().GetLanguageServiceProvider(LanguageNames.VisualBasic).GetService <ISyntaxTreeFactoryService>();

            var text     = @"''' <summary>XML</summary>
Class C
End Class";
            var fileName = @"C:\1.vb";

            TestSyntaxTreeFactoryService(service, text, fileName);
        }