コード例 #1
0
 public static ExportProvider CreateMinimalExportProvider()
 {
     return(MinimalTestExportProvider.CreateExportProvider(
                ServiceTestExportProvider.CreateAssemblyCatalog()
                .WithPart(typeof(InProcRemoteHostClientFactory))
                .WithPart(typeof(WorkspaceWaiter))));
 }
コード例 #2
0
        public async Task UpdaterService()
        {
            var exportProvider = ExportProviderCache
                                 .GetOrCreateExportProviderFactory(ServiceTestExportProvider.CreateAssemblyCatalog()
                                                                   .WithParts(typeof(InProcRemoteHostClientProvider.Factory), typeof(CSharpOptionsSerializationService)))
                                 .CreateExportProvider();

            using var workspace = new AdhocWorkspace(TestHostServices.CreateHostServices(exportProvider));

            var options = workspace.CurrentSolution.Options
                          .WithChangedOption(RemoteHostOptions.SolutionChecksumMonitorBackOffTimeSpanInMS, 1)
                          .WithChangedOption(RemoteTestHostOptions.RemoteHostTest, true);

            workspace.TryApplyChanges(workspace.CurrentSolution.WithOptions(options));

            var listenerProvider = exportProvider.GetExportedValue <AsynchronousOperationListenerProvider>();

            var checksumUpdater = new SolutionChecksumUpdater(workspace, listenerProvider, CancellationToken.None);
            var service         = workspace.Services.GetRequiredService <IRemoteHostClientProvider>();

            // make sure client is ready
            using var client = await service.TryGetRemoteHostClientAsync(CancellationToken.None);

            // add solution, change document
            workspace.AddSolution(SolutionInfo.Create(SolutionId.CreateNewId(), VersionStamp.Default));
            var project  = workspace.AddProject("proj", LanguageNames.CSharp);
            var document = workspace.AddDocument(project.Id, "doc.cs", SourceText.From("code"));

            workspace.ApplyTextChanges(document.Id, new[] { new TextChange(new TextSpan(0, 1), "abc") }, CancellationToken.None);

            // wait for listener
            var workspaceListener = listenerProvider.GetWaiter(FeatureAttribute.Workspace);
            await workspaceListener.ExpeditedWaitAsync();

            var listener = listenerProvider.GetWaiter(FeatureAttribute.SolutionChecksumUpdater);
            await listener.ExpeditedWaitAsync();

            // checksum should already exist
            Assert.True(workspace.CurrentSolution.State.TryGetStateChecksums(out _));

            checksumUpdater.Shutdown();
        }
コード例 #3
0
ファイル: TestHostServices.cs プロジェクト: khm1600/CJing
 public static ExportProvider CreateMinimalExportProvider()
 {
     return(ExportProviderCache
            .GetOrCreateExportProviderFactory(ServiceTestExportProvider.CreateAssemblyCatalog().WithPart(typeof(InProcRemoteHostClientFactory)))
            .CreateExportProvider());
 }
コード例 #4
0
ファイル: TestHostServices.cs プロジェクト: kusl/roslyn-1
 public static HostServices CreateHostServices()
 {
     return(MefV1HostServices.Create(
                MinimalTestExportProvider.CreateExportProvider(
                    ServiceTestExportProvider.CreateAssemblyCatalog().WithPart(typeof(InProcRemoteHostClientFactory))).AsExportProvider()));
 }