private async void AssertResetInteractive( TestWorkspace workspace, Project project, bool buildSucceeds, List <string> expectedReferences = null, List <string> expectedUsings = null) { expectedReferences = expectedReferences ?? new List <string>(); expectedUsings = expectedUsings ?? new List <string>(); InteractiveWindowTestHost testHost = new InteractiveWindowTestHost(); List <string> executedSubmissionCalls = new List <string>(); EventHandler <string> ExecuteSubmission = (_, code) => { executedSubmissionCalls.Add(code); }; testHost.Evaluator.OnExecute += ExecuteSubmission; IWaitIndicator waitIndicator = workspace.GetService <IWaitIndicator>(); IEditorOptionsFactoryService editorOptionsFactoryService = workspace.GetService <IEditorOptionsFactoryService>(); var editorOptions = editorOptionsFactoryService.GetOptions(testHost.Window.CurrentLanguageBuffer); var newLineCharacter = editorOptions.GetNewLineCharacter(); TestResetInteractive resetInteractive = new TestResetInteractive( waitIndicator, editorOptionsFactoryService, CreateReplReferenceCommand, CreateImport, buildSucceeds: buildSucceeds) { References = ImmutableArray.CreateRange(GetProjectReferences(workspace, project)), ReferenceSearchPaths = ImmutableArray.Create("rsp1", "rsp2"), SourceSearchPaths = ImmutableArray.Create("ssp1", "ssp2"), ProjectNamespaces = ImmutableArray.Create("System", "ResetInteractiveTestsDocument", "VisualBasicResetInteractiveTestsDocument"), NamespacesToImport = ImmutableArray.Create("System", "ResetInteractiveTestsDocument"), ProjectDirectory = "pj", }; await resetInteractive.Execute(testHost.Window, "Interactive C#"); // Validate that the project was rebuilt. Assert.Equal(1, resetInteractive.BuildProjectCount); Assert.Equal(0, resetInteractive.CancelBuildProjectCount); var expectedSubmissions = new List <string>(); if (expectedReferences.Any()) { expectedSubmissions.AddRange(expectedReferences.Select(r => r + newLineCharacter)); } if (expectedUsings.Any()) { expectedSubmissions.Add(string.Join(newLineCharacter, expectedUsings) + newLineCharacter); } AssertEx.Equal(expectedSubmissions, executedSubmissionCalls); testHost.Evaluator.OnExecute -= ExecuteSubmission; }
private async void AssertResetInteractive( TestWorkspace workspace, Project project, bool buildSucceeds, List<string> expectedReferences = null, List<string> expectedUsings = null) { expectedReferences = expectedReferences ?? new List<string>(); expectedUsings = expectedUsings ?? new List<string>(); InteractiveWindowTestHost testHost = new InteractiveWindowTestHost(); List<string> executedSubmissionCalls = new List<string>(); EventHandler<string> ExecuteSubmission = (_, code) => { executedSubmissionCalls.Add(code); }; testHost.Evaluator.OnExecute += ExecuteSubmission; IWaitIndicator waitIndicator = workspace.GetService<IWaitIndicator>(); IEditorOptionsFactoryService editorOptionsFactoryService = workspace.GetService<IEditorOptionsFactoryService>(); var editorOptions = editorOptionsFactoryService.GetOptions(testHost.Window.CurrentLanguageBuffer); var newLineCharacter = editorOptions.GetNewLineCharacter(); TestResetInteractive resetInteractive = new TestResetInteractive( waitIndicator, editorOptionsFactoryService, CreateReplReferenceCommand, CreateImport, buildSucceeds: buildSucceeds) { References = ImmutableArray.CreateRange(GetProjectReferences(workspace, project)), ReferenceSearchPaths = ImmutableArray.Create("rsp1", "rsp2"), SourceSearchPaths = ImmutableArray.Create("ssp1", "ssp2"), ProjectNamespaces = ImmutableArray.Create("System", "ResetInteractiveTestsDocument", "VisualBasicResetInteractiveTestsDocument"), NamespacesToImport = ImmutableArray.Create("System", "ResetInteractiveTestsDocument"), ProjectDirectory = "pj", }; await resetInteractive.Execute(testHost.Window, "Interactive C#"); // Validate that the project was rebuilt. Assert.Equal(1, resetInteractive.BuildProjectCount); Assert.Equal(0, resetInteractive.CancelBuildProjectCount); var expectedSubmissions = new List<string>(); if (expectedReferences.Any()) { expectedSubmissions.AddRange(expectedReferences.Select(r => r + newLineCharacter)); } if (expectedUsings.Any()) { expectedSubmissions.Add(string.Join(newLineCharacter, expectedUsings) + newLineCharacter); } AssertEx.Equal(expectedSubmissions, executedSubmissionCalls); testHost.Evaluator.OnExecute -= ExecuteSubmission; }
public InteractiveWindowCommandHandlerTestState(XElement workspaceElement) : base(workspaceElement) { TestHost = new InteractiveWindowTestHost(); _commandHandler = new TestInteractiveCommandHandler( TestHost.Window, GetExportedValue <IContentTypeRegistryService>(), GetExportedValue <IEditorOptionsFactoryService>(), GetExportedValue <IEditorOperationsFactoryService>()); }
public InteractiveWindowCommandHandlerTestState(XElement workspaceElement) : base(workspaceElement) { TestHost = new InteractiveWindowTestHost(); _commandHandler = new TestInteractiveCommandHandler( TestHost.Window, GetExportedValue<IContentTypeRegistryService>(), GetExportedValue<IEditorOptionsFactoryService>(), GetExportedValue<IEditorOperationsFactoryService>()); }
public InteractiveWindowCommandHandlerTestState(ExportProvider exportProvider, XElement workspaceElement) : base(workspaceElement, exportProvider, workspaceKind: null) { TestHost = new InteractiveWindowTestHost(exportProvider); _commandHandler = new TestInteractiveCommandHandler( TestHost.Window, GetExportedValue <ISendToInteractiveSubmissionProvider>(), GetExportedValue <IContentTypeRegistryService>(), GetExportedValue <IEditorOptionsFactoryService>(), GetExportedValue <IEditorOperationsFactoryService>()); }
private async void AssertResetInteractive( TestWorkspace workspace, Project project, bool buildSucceeds, List <string> expectedSubmissions) { InteractiveWindowTestHost testHost = new InteractiveWindowTestHost(); List <string> executedSubmissionCalls = new List <string>(); EventHandler <string> ExecuteSubmission = (_, code) => { executedSubmissionCalls.Add(code); }; testHost.Evaluator.OnExecute += ExecuteSubmission; IWaitIndicator waitIndicator = workspace.GetService <IWaitIndicator>(); TestResetInteractive resetInteractive = new TestResetInteractive( waitIndicator, CreateReplReferenceCommand, CreateImport, buildSucceeds: buildSucceeds) { References = ImmutableArray.CreateRange(GetProjectReferences(workspace, project)), ReferenceSearchPaths = ImmutableArray.Create("rsp1", "rsp2"), SourceSearchPaths = ImmutableArray.Create("ssp1", "ssp2"), NamespacesToImport = ImmutableArray.Create("ns1", "ns2"), ProjectDirectory = "pj", }; await resetInteractive.Execute(testHost.Window, "Interactive C#"); // Validate that the project was rebuilt. Assert.Equal(1, resetInteractive.BuildProjectCount); Assert.Equal(0, resetInteractive.CancelBuildProjectCount); AssertEx.Equal(expectedSubmissions, executedSubmissionCalls); testHost.Evaluator.OnExecute -= ExecuteSubmission; }
private async void AssertResetInteractive( TestWorkspace workspace, Project project, bool buildSucceeds, List<string> expectedSubmissions) { InteractiveWindowTestHost testHost = new InteractiveWindowTestHost(); List<string> executedSubmissionCalls = new List<string>(); EventHandler<string> ExecuteSubmission = (_, code) => { executedSubmissionCalls.Add(code); }; testHost.Evaluator.OnExecute += ExecuteSubmission; IWaitIndicator waitIndicator = workspace.GetService<IWaitIndicator>(); TestResetInteractive resetInteractive = new TestResetInteractive( waitIndicator, CreateReplReferenceCommand, CreateImport, buildSucceeds: buildSucceeds) { References = ImmutableArray.CreateRange(GetProjectReferences(workspace, project)), ReferenceSearchPaths = ImmutableArray.Create("rsp1", "rsp2"), SourceSearchPaths = ImmutableArray.Create("ssp1", "ssp2"), NamespacesToImport = ImmutableArray.Create("ns1", "ns2"), ProjectDirectory = "pj", }; await resetInteractive.Execute(testHost.Window, "Interactive C#"); // Validate that the project was rebuilt. Assert.Equal(1, resetInteractive.BuildProjectCount); Assert.Equal(0, resetInteractive.CancelBuildProjectCount); AssertEx.Equal(expectedSubmissions, executedSubmissionCalls); testHost.Evaluator.OnExecute -= ExecuteSubmission; }
private async Task AssertResetInteractiveAsync( TestWorkspace workspace, Project project, bool buildSucceeds, List <string> expectedReferences = null, List <string> expectedUsings = null) { expectedReferences ??= new List <string>(); expectedUsings ??= new List <string>(); var testHost = new InteractiveWindowTestHost(workspace.ExportProvider.GetExportedValue <IInteractiveWindowFactoryService>()); var executedSubmissionCalls = new List <string>(); void executeSubmission(object _, string code) => executedSubmissionCalls.Add(code); testHost.Evaluator.OnExecute += executeSubmission; var uiThreadOperationExecutor = workspace.GetService <IUIThreadOperationExecutor>(); var editorOptionsService = workspace.GetService <EditorOptionsService>(); var editorOptions = editorOptionsService.Factory.GetOptions(testHost.Window.CurrentLanguageBuffer); var newLineCharacter = editorOptions.GetNewLineCharacter(); var resetInteractive = new TestResetInteractive( uiThreadOperationExecutor, editorOptionsService, CreateReplReferenceCommand, CreateImport, buildSucceeds: buildSucceeds) { References = ImmutableArray.CreateRange(GetProjectReferences(workspace, project)), ReferenceSearchPaths = ImmutableArray.Create("rsp1", "rsp2"), SourceSearchPaths = ImmutableArray.Create("ssp1", "ssp2"), ProjectNamespaces = ImmutableArray.Create("System", "ResetInteractiveTestsDocument", "VisualBasicResetInteractiveTestsDocument"), NamespacesToImport = ImmutableArray.Create("System", "ResetInteractiveTestsDocument"), ProjectDirectory = "pj", Platform = InteractiveHostPlatform.Desktop64, }; await resetInteractive.ExecuteAsync(testHost.Window, "Interactive C#"); // Validate that the project was rebuilt. Assert.Equal(1, resetInteractive.BuildProjectCount); Assert.Equal(0, resetInteractive.CancelBuildProjectCount); if (buildSucceeds) { Assert.Equal(InteractiveHostPlatform.Desktop64, testHost.Evaluator.ResetOptions.Platform); } else { Assert.Null(testHost.Evaluator.ResetOptions); } var expectedSubmissions = new List <string>(); if (expectedReferences.Any()) { expectedSubmissions.AddRange(expectedReferences.Select(r => r + newLineCharacter)); } if (expectedUsings.Any()) { expectedSubmissions.Add(string.Join(newLineCharacter, expectedUsings) + newLineCharacter); } AssertEx.Equal(expectedSubmissions, executedSubmissionCalls); testHost.Evaluator.OnExecute -= executeSubmission; }