diff --git a/test/Microsoft.DotNet.Cli.Utils.Tests/GivenAProjectDependencyCommandResolver.cs b/test/Microsoft.DotNet.Cli.Utils.Tests/GivenAProjectDependencyCommandResolver.cs index 3f2d057fa..7d30b2db4 100644 --- a/test/Microsoft.DotNet.Cli.Utils.Tests/GivenAProjectDependencyCommandResolver.cs +++ b/test/Microsoft.DotNet.Cli.Utils.Tests/GivenAProjectDependencyCommandResolver.cs @@ -12,11 +12,10 @@ using Xunit; namespace Microsoft.DotNet.Cli.Utils.Tests { - public class GivenAProjectDependenciesCommandResolver + public class GivenAProjectDependenciesCommandResolver : TestBase { - private static readonly string s_liveProjectDirectory = - Path.Combine(AppContext.BaseDirectory, "TestAssets/TestProjects/AppWithDirectDependency"); + private const string TestProjectName = "AppWithDirectDependency"; [Fact] public void It_returns_null_when_CommandName_is_null() @@ -61,11 +60,14 @@ namespace Microsoft.DotNet.Cli.Utils.Tests { var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver(); + var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName) + .WithLockFiles(); + var commandResolverArguments = new CommandResolverArguments() { CommandName = "command", CommandArguments = new string[] { "" }, - ProjectDirectory = s_liveProjectDirectory, + ProjectDirectory = testInstance.Path, Configuration = "Debug", Framework = null }; @@ -80,11 +82,14 @@ namespace Microsoft.DotNet.Cli.Utils.Tests { var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver(); + var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName) + .WithLockFiles(); + var commandResolverArguments = new CommandResolverArguments() { CommandName = "command", CommandArguments = new string[] { "" }, - ProjectDirectory = s_liveProjectDirectory, + ProjectDirectory = testInstance.Path, Configuration = null, Framework = FrameworkConstants.CommonFrameworks.NetCoreApp10 }; @@ -99,11 +104,14 @@ namespace Microsoft.DotNet.Cli.Utils.Tests { var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver(); + var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName) + .WithLockFiles(); + var commandResolverArguments = new CommandResolverArguments() { CommandName = "nonexistent-command", CommandArguments = null, - ProjectDirectory = s_liveProjectDirectory, + ProjectDirectory = testInstance.Path, Configuration = "Debug", Framework = FrameworkConstants.CommonFrameworks.NetCoreApp10 }; @@ -118,11 +126,15 @@ namespace Microsoft.DotNet.Cli.Utils.Tests { var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver(); + var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName) + .WithBuildArtifacts() + .WithLockFiles(); + var commandResolverArguments = new CommandResolverArguments() { CommandName = "dotnet-hello", CommandArguments = null, - ProjectDirectory = s_liveProjectDirectory, + ProjectDirectory = testInstance.Path, Configuration = "Debug", Framework = FrameworkConstants.CommonFrameworks.NetCoreApp10 }; @@ -143,11 +155,15 @@ namespace Microsoft.DotNet.Cli.Utils.Tests { var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver(); + var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName) + .WithBuildArtifacts() + .WithLockFiles(); + var commandResolverArguments = new CommandResolverArguments() { CommandName = "dotnet-hello", CommandArguments = new[] { "arg with space" }, - ProjectDirectory = s_liveProjectDirectory, + ProjectDirectory = testInstance.Path, Configuration = "Debug", Framework = FrameworkConstants.CommonFrameworks.NetCoreApp10 }; @@ -159,15 +175,19 @@ namespace Microsoft.DotNet.Cli.Utils.Tests } [Fact] - public void It_passes_depsfile_arg_to_host_when_returning_a_commandspec() + public void It_passes_depsfile_arg_to_host_when_returning_a_CommandSpec() { var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver(); + var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName) + .WithBuildArtifacts() + .WithLockFiles(); + var commandResolverArguments = new CommandResolverArguments() { CommandName = "dotnet-hello", CommandArguments = null, - ProjectDirectory = s_liveProjectDirectory, + ProjectDirectory = testInstance.Path, Configuration = "Debug", Framework = FrameworkConstants.CommonFrameworks.NetCoreApp10 }; @@ -182,26 +202,30 @@ namespace Microsoft.DotNet.Cli.Utils.Tests public void It_sets_depsfile_in_output_path_in_commandspec() { var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver(); - var outputDir = Path.Combine(AppContext.BaseDirectory, "outdir"); + + var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName) + .WithLockFiles(); + + var outputDir = Path.Combine(testInstance.Path, "outdir"); var commandResolverArguments = new CommandResolverArguments { CommandName = "dotnet-hello", CommandArguments = null, - ProjectDirectory = s_liveProjectDirectory, + ProjectDirectory = testInstance.Path, Configuration = "Debug", Framework = FrameworkConstants.CommonFrameworks.NetCoreApp10, OutputPath = outputDir }; var buildCommand = new BuildCommand( - Path.Combine(s_liveProjectDirectory, "project.json"), + Path.Combine(testInstance.Path, "project.json"), output: outputDir, framework: FrameworkConstants.CommonFrameworks.NetCoreApp10.ToString()) .Execute().Should().Pass(); var projectContext = ProjectContext.Create( - s_liveProjectDirectory, + testInstance.Path, FrameworkConstants.CommonFrameworks.NetCoreApp10, RuntimeEnvironmentRidExtensions.GetAllCandidateRuntimeIdentifiers()); @@ -218,26 +242,30 @@ namespace Microsoft.DotNet.Cli.Utils.Tests public void It_sets_depsfile_in_build_base_path_in_commandspec() { var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver(); - var buildBasePath = Path.Combine(AppContext.BaseDirectory, "basedir"); + + var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName) + .WithLockFiles(); + + var buildBasePath = Path.Combine(testInstance.Path, "basedir"); var commandResolverArguments = new CommandResolverArguments { CommandName = "dotnet-hello", CommandArguments = null, - ProjectDirectory = s_liveProjectDirectory, + ProjectDirectory = testInstance.Path, Configuration = "Debug", Framework = FrameworkConstants.CommonFrameworks.NetCoreApp10, BuildBasePath = buildBasePath }; var buildCommand = new BuildCommand( - Path.Combine(s_liveProjectDirectory, "project.json"), + Path.Combine(testInstance.Path, "project.json"), buildBasePath: buildBasePath, framework: FrameworkConstants.CommonFrameworks.NetCoreApp10.ToString()) .Execute().Should().Pass(); var projectContext = ProjectContext.Create( - s_liveProjectDirectory, + testInstance.Path, FrameworkConstants.CommonFrameworks.NetCoreApp10, RuntimeEnvironmentRidExtensions.GetAllCandidateRuntimeIdentifiers()); @@ -255,11 +283,15 @@ namespace Microsoft.DotNet.Cli.Utils.Tests { var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver(); + var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName) + .WithBuildArtifacts() + .WithLockFiles(); + var commandResolverArguments = new CommandResolverArguments() { CommandName = "dotnet-hello", CommandArguments = null, - ProjectDirectory = s_liveProjectDirectory, + ProjectDirectory = testInstance.Path, Configuration = "Debug", Framework = FrameworkConstants.CommonFrameworks.NetCoreApp10 }; diff --git a/test/Microsoft.DotNet.Cli.Utils.Tests/GivenAProjectToolsCommandResolver.cs b/test/Microsoft.DotNet.Cli.Utils.Tests/GivenAProjectToolsCommandResolver.cs index 830a00e94..14908478a 100644 --- a/test/Microsoft.DotNet.Cli.Utils.Tests/GivenAProjectToolsCommandResolver.cs +++ b/test/Microsoft.DotNet.Cli.Utils.Tests/GivenAProjectToolsCommandResolver.cs @@ -7,6 +7,7 @@ using System.Linq; using FluentAssertions; using Microsoft.DotNet.ProjectModel; using Microsoft.DotNet.ProjectModel.Graph; +using Microsoft.DotNet.TestFramework; using Microsoft.DotNet.Tools.Test.Utilities; using NuGet.Frameworks; using NuGet.Versioning; @@ -14,12 +15,11 @@ using Xunit; namespace Microsoft.DotNet.Cli.Utils.Tests { - public class GivenAProjectToolsCommandResolver + public class GivenAProjectToolsCommandResolver : TestBase { private static readonly NuGetFramework s_toolPackageFramework = FrameworkConstants.CommonFrameworks.NetCoreApp10; - private static readonly string s_liveProjectDirectory = - Path.Combine(AppContext.BaseDirectory, "TestAssets/TestProjects/AppWithToolDependency"); + private const string TestProjectName = "AppWithToolDependency"; [Fact] public void It_returns_null_when_CommandName_is_null() @@ -60,11 +60,14 @@ namespace Microsoft.DotNet.Cli.Utils.Tests { var projectToolsCommandResolver = SetupProjectToolsCommandResolver(); + var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName) + .WithLockFiles(); + var commandResolverArguments = new CommandResolverArguments() { CommandName = "nonexistent-command", CommandArguments = null, - ProjectDirectory = s_liveProjectDirectory + ProjectDirectory = testInstance.Path }; var result = projectToolsCommandResolver.Resolve(commandResolverArguments); @@ -77,11 +80,14 @@ namespace Microsoft.DotNet.Cli.Utils.Tests { var projectToolsCommandResolver = SetupProjectToolsCommandResolver(); + var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName) + .WithLockFiles(); + var commandResolverArguments = new CommandResolverArguments() { CommandName = "dotnet-portable", CommandArguments = null, - ProjectDirectory = s_liveProjectDirectory + ProjectDirectory = testInstance.Path }; var result = projectToolsCommandResolver.Resolve(commandResolverArguments); @@ -100,11 +106,14 @@ namespace Microsoft.DotNet.Cli.Utils.Tests { var projectToolsCommandResolver = SetupProjectToolsCommandResolver(); + var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName) + .WithLockFiles(); + var commandResolverArguments = new CommandResolverArguments() { CommandName = "dotnet-portable", CommandArguments = new[] { "arg with space" }, - ProjectDirectory = s_liveProjectDirectory + ProjectDirectory = testInstance.Path }; var result = projectToolsCommandResolver.Resolve(commandResolverArguments); @@ -118,11 +127,14 @@ namespace Microsoft.DotNet.Cli.Utils.Tests { var projectToolsCommandResolver = SetupProjectToolsCommandResolver(); + var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName) + .WithLockFiles(); + var commandResolverArguments = new CommandResolverArguments() { CommandName = "dotnet-portable", CommandArguments = null, - ProjectDirectory = s_liveProjectDirectory + ProjectDirectory = testInstance.Path }; var result = projectToolsCommandResolver.Resolve(commandResolverArguments); @@ -138,14 +150,17 @@ namespace Microsoft.DotNet.Cli.Utils.Tests { var projectToolsCommandResolver = SetupProjectToolsCommandResolver(); + var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName) + .WithLockFiles(); + var commandResolverArguments = new CommandResolverArguments() { CommandName = "dotnet-portable", CommandArguments = null, - ProjectDirectory = s_liveProjectDirectory + ProjectDirectory = testInstance.Path }; - var context = ProjectContext.Create(Path.Combine(s_liveProjectDirectory, "project.json"), s_toolPackageFramework); + var context = ProjectContext.Create(Path.Combine(testInstance.Path, "project.json"), s_toolPackageFramework); var nugetPackagesRoot = context.PackagesDirectory; var toolPathCalculator = new ToolPathCalculator(nugetPackagesRoot); @@ -180,7 +195,10 @@ namespace Microsoft.DotNet.Cli.Utils.Tests [Fact] public void Generate_deps_json_method_doesnt_overwrite_when_deps_file_already_exists() { - var context = ProjectContext.Create(Path.Combine(s_liveProjectDirectory, "project.json"), s_toolPackageFramework); + var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName) + .WithLockFiles(); + + var context = ProjectContext.Create(Path.Combine(testInstance.Path, "project.json"), s_toolPackageFramework); var nugetPackagesRoot = context.PackagesDirectory; var toolPathCalculator = new ToolPathCalculator(nugetPackagesRoot); diff --git a/test/Microsoft.DotNet.Cli.Utils.Tests/StreamForwarderTests.cs b/test/Microsoft.DotNet.Cli.Utils.Tests/StreamForwarderTests.cs index f59b81ec1..b21bf321b 100644 --- a/test/Microsoft.DotNet.Cli.Utils.Tests/StreamForwarderTests.cs +++ b/test/Microsoft.DotNet.Cli.Utils.Tests/StreamForwarderTests.cs @@ -14,20 +14,12 @@ namespace StreamForwarderTests public class StreamForwarderTests : TestBase { private static readonly string s_rid = RuntimeEnvironmentRidExtensions.GetLegacyRestoreRuntimeIdentifier(); - private static readonly string s_testProjectRoot = Path.Combine(AppContext.BaseDirectory, "TestAssets", "TestProjects"); - - private TempDirectory _root; public static void Main() { Console.WriteLine("Dummy Entrypoint"); } - public StreamForwarderTests() - { - _root = Temp.CreateDirectory(); - } - public static IEnumerable ForwardingTheoryVariations { get @@ -127,15 +119,15 @@ namespace StreamForwarderTests private string SetupTestProject() { - var sourceTestProjectPath = Path.Combine(s_testProjectRoot, "OutputStandardOutputAndError"); - var binTestProjectPath = _root.CopyDirectory(sourceTestProjectPath).Path; + var testInstance = TestAssetsManager.CreateTestInstance("OutputStandardOutputAndError") + .WithLockFiles(); - var buildCommand = new BuildCommand(Path.Combine(binTestProjectPath, "project.json")); + var buildCommand = new BuildCommand(Path.Combine(testInstance.Path, "project.json")); buildCommand.Execute(); var buildOutputExe = "OutputStandardOutputAndError" + Constants.ExeSuffix; - var buildOutputPath = Path.Combine(binTestProjectPath, "bin/Debug/netcoreapp1.0", buildOutputExe); + var buildOutputPath = Path.Combine(testInstance.Path, "bin/Debug/netcoreapp1.0", buildOutputExe); return buildOutputPath; }