public void Does_not_throw_for_missing_tool() { using (var directory = DisposableDirectory.Create()) { var temp = directory.Directory; var strategy = new LocalToolInstallingPackageDiscoveryStrategy(temp); strategy.Invoking(s => s.Locate(new PackageDescriptor("not-a-workspace")).Wait()).Should().NotThrow(); } }
public async Task Installs_tool_from_package_source_when_requested() { var console = new TestConsole(); var asset = await LocalToolHelpers.CreateTool(console); var strategy = new LocalToolInstallingPackageDiscoveryStrategy(asset, new PackageSource(asset.FullName)); var package = await strategy.Locate(new PackageDescriptor("blazor-console")); package.Should().NotBeNull(); }
public static async Task <Package> InstalledPackageWithBlazorEnabled([CallerMemberName] string testName = null) { var(packageName, addSource) = await NupkgWithBlazorEnabled(testName); var destination = Package.DefaultPackagesDirectory; await InstallCommand.Do(new InstallOptions(addSource, packageName, destination), new TestConsole()); var strategy = new LocalToolInstallingPackageDiscoveryStrategy(destination); var builder = await strategy.Locate(new PackageDescriptor(packageName)); return((Package)builder.GetPackage()); }
public async Task Discover_tool_from_directory() { using (var directory = DisposableDirectory.Create()) { 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}"); 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")); tool.Should().NotBeNull(); } }
public async Task Discover_tool_from_directory() { using (var directory = DisposableDirectory.Create()) { var console = new TestConsole(); var temp = directory.Directory; 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 Microsoft.DotNet.Interactive.Utility.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("not-console")); tool.Should().NotBeNull(); } }