这是indexloc提供的服务,不要输入任何密码
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions MLS.Agent.Tests/CommandLine/VerifyCommandTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -805,6 +805,37 @@ DOES NOT COMPILE
resultCode.Should().NotBe(0);
}

[Fact]
public async Task When_markdown_has_Program_with_a_region_and_markdown_has_destination_file_then_validation_succeeds()
{
var root = Create.EmptyWorkspace(isRebuildablePackage: true).Directory;

var directoryAccessor = new InMemoryDirectoryAccessor(root, root)
{
("./subFolder/some.csproj", CsprojContents),
("Program.cs", CompilingProgramWithRegionCs),
("doc.md", $@"
```cs --destination-file Program.cs --region targetRegion
Console.WriteLine(""This code should be compiled with the targetRegion in Program.cs"");
```
")
}.CreateFiles();

var console = new TestConsole();
var project = directoryAccessor.GetFullyQualifiedPath(new RelativeFilePath("./subFolder/some.csproj"));

var resultCode = await VerifyCommand.Do(
new VerifyOptions(root),
console,
() => directoryAccessor,
PackageRegistry.CreateForTryMode(root),
new StartupOptions(package: project.FullName)
);

_output.WriteLine(console.Out.ToString());

resultCode.Should().Be(0);
}
}

}
Expand Down
11 changes: 7 additions & 4 deletions MLS.Agent.Tests/LocalToolPackageDiscoveryStrategyTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
using Xunit;
using Xunit.Abstractions;
using WorkspaceServer;
using System.IO;
using System.Linq;

namespace MLS.Agent.Tests
{
Expand All @@ -29,14 +31,15 @@ public async Task Discover_tool_from_directory()
{
var console = new TestConsole();
var temp = directory.Directory;
var asset = (await Create.ConsoleWorkspaceCopy()).Directory;
await PackCommand.Do(new PackOptions(asset, outputDirectory: temp, enableWasm: false), console);
var result = await Tools.CommandLine.Execute("dotnet", $"tool install --add-source {temp.FullName} console --tool-path {temp.FullName}");
var package = await Create.ConsoleWorkspaceCopy();
File.Move(package.Directory.GetFiles("*.csproj").First().FullName, Path.Combine(package.Directory.FullName, "not-console.csproj"));
await PackCommand.Do(new PackOptions(package.Directory, outputDirectory: temp, enableWasm: false), console);
var result = await Tools.CommandLine.Execute("dotnet", $"tool install --add-source {temp.FullName} not-console --tool-path {temp.FullName}");
output.WriteLine(string.Join("\n", result.Error));
result.ExitCode.Should().Be(0);

var strategy = new LocalToolInstallingPackageDiscoveryStrategy(temp);
var tool = await strategy.Locate(new PackageDescriptor("console"));
var tool = await strategy.Locate(new PackageDescriptor("not-console"));
tool.Should().NotBeNull();
}
}
Expand Down
3 changes: 2 additions & 1 deletion MLS.Agent/Markdown/AnnotatedCodeBlockExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ public static Buffer GetBufferAsync(
{
if (block.Annotations is LocalCodeBlockAnnotations localOptions)
{
var absolutePath = directoryAccessor.GetFullyQualifiedPath(localOptions.SourceFile).FullName;
var file = localOptions.SourceFile ?? localOptions.DestinationFile;
var absolutePath = directoryAccessor.GetFullyQualifiedPath(file).FullName;
var bufferId = new BufferId(absolutePath, block.Annotations.Region);
return new Buffer(bufferId, block.SourceCode);
}
Expand Down
3 changes: 2 additions & 1 deletion WorkspaceServer.Tests/AspNetWorkspaceTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,8 @@ public async Task Run_starts_the_kestrel_server_and_provides_a_WebServer_feature
{
var registry = Default.PackageFinder;
var server = new RoslynWorkspaceServer(registry);
var package = await registry.Get<IHaveADirectory>("aspnet.webapi");
var package = await registry.Get<Package>("aspnet.webapi");
await package.CreateRoslynWorkspaceAsync(new Budget()); // ensure the package exists on disk

var workspace = WorkspaceFactory.CreateWorkspaceFromDirectory(package.Directory, "aspnet.webapi");

Expand Down
Binary file modified WorkspaceServer.Tests/RoslynWorkspaceServerConsoleProjectTests.cs
Binary file not shown.