public async Task If_an_existing_file_is_deleted_then_the_workspace_does_not_include_the_file() { var package = Create.EmptyWorkspace(); var build = await Create.NewPackage(package.Name, package.Directory, Create.ConsoleConfiguration, true) as ICreateWorkspaceForRun; var ws = await build.CreateRoslynWorkspaceForRunAsync(new TimeBudget(30.Seconds())); var existingFile = Path.Combine(package.Directory.FullName, "Program.cs"); ws.CurrentSolution.Projects.First().Documents.Select(d => d.FilePath).Should().Contain(filePath => filePath == existingFile); File.Delete(existingFile); await Task.Delay(1000); ws = await build.CreateRoslynWorkspaceForRunAsync(new TimeBudget(30.Seconds())); ws.CurrentSolution.Projects.First().Documents.Select(d => d.FilePath).Should().NotContain(filePath => filePath == existingFile); }
public async Task Run_succeeds_with_spaces_in_project_path() { var package = Create.EmptyWorkspace("a space"); var build = await Create.NewPackage(package.Name, package.Directory, Create.ConsoleConfiguration); var server = GetCodeRunner(); var workspace = new Workspace( workspaceType: build.Name, files: new[] { new File("Program.cs", SourceCodeProvider.ConsoleProgramSingleRegion) }, buffers: new[] { new Buffer("Program.cs@alpha", @"Console.WriteLine(""something"");", 0) }); var result = await server.Run(new WorkspaceRequest(workspace)); result.Should().BeEquivalentTo(new { Succeeded = true, Output = new[] { "something", "" }, Exception = (string)null, // we already display the error in Output }, config => config.ExcludingMissingMembers()); }
public async Task If_the_project_file_is_changed_then_the_workspace_reflects_the_changes() { var package = Create.EmptyWorkspace(); var build = await Create.NewPackage(package.Name, package.Directory, Create.ConsoleConfiguration) as ICreateWorkspaceForRun; var ws = await build.CreateRoslynWorkspaceForRunAsync(new TimeBudget(30.Seconds())); var references = ws.CurrentSolution.Projects.First().MetadataReferences; references.Should().NotContain(reference => reference.Display.Contains("Microsoft.CodeAnalysis.CSharp.dll") && reference.Display.Contains("2.8.2")); await new Dotnet(package.Directory).AddPackage("Microsoft.CodeAnalysis", "2.8.2"); ws = await package.CreateRoslynWorkspaceForRunAsync(new TimeBudget(30.Seconds())); references = ws.CurrentSolution.Projects.First().MetadataReferences; references.Should().Contain(reference => reference.Display.Contains("Microsoft.CodeAnalysis.CSharp.dll") && reference.Display.Contains("2.8.2")); }