Move Microsoft.Dotnet.Cli.Utils.Tests to TAM

This commit is contained in:
Piotr Puszkiewicz 2016-08-09 23:54:37 -07:00
parent 9f08302bbf
commit fa9c795823
3 changed files with 83 additions and 41 deletions

View file

@ -12,11 +12,10 @@ using Xunit;
namespace Microsoft.DotNet.Cli.Utils.Tests namespace Microsoft.DotNet.Cli.Utils.Tests
{ {
public class GivenAProjectDependenciesCommandResolver public class GivenAProjectDependenciesCommandResolver : TestBase
{ {
private static readonly string s_liveProjectDirectory = private const string TestProjectName = "AppWithDirectDependency";
Path.Combine(AppContext.BaseDirectory, "TestAssets/TestProjects/AppWithDirectDependency");
[Fact] [Fact]
public void It_returns_null_when_CommandName_is_null() public void It_returns_null_when_CommandName_is_null()
@ -61,11 +60,14 @@ namespace Microsoft.DotNet.Cli.Utils.Tests
{ {
var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver(); var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver();
var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName)
.WithLockFiles();
var commandResolverArguments = new CommandResolverArguments() var commandResolverArguments = new CommandResolverArguments()
{ {
CommandName = "command", CommandName = "command",
CommandArguments = new string[] { "" }, CommandArguments = new string[] { "" },
ProjectDirectory = s_liveProjectDirectory, ProjectDirectory = testInstance.Path,
Configuration = "Debug", Configuration = "Debug",
Framework = null Framework = null
}; };
@ -80,11 +82,14 @@ namespace Microsoft.DotNet.Cli.Utils.Tests
{ {
var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver(); var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver();
var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName)
.WithLockFiles();
var commandResolverArguments = new CommandResolverArguments() var commandResolverArguments = new CommandResolverArguments()
{ {
CommandName = "command", CommandName = "command",
CommandArguments = new string[] { "" }, CommandArguments = new string[] { "" },
ProjectDirectory = s_liveProjectDirectory, ProjectDirectory = testInstance.Path,
Configuration = null, Configuration = null,
Framework = FrameworkConstants.CommonFrameworks.NetCoreApp10 Framework = FrameworkConstants.CommonFrameworks.NetCoreApp10
}; };
@ -99,11 +104,14 @@ namespace Microsoft.DotNet.Cli.Utils.Tests
{ {
var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver(); var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver();
var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName)
.WithLockFiles();
var commandResolverArguments = new CommandResolverArguments() var commandResolverArguments = new CommandResolverArguments()
{ {
CommandName = "nonexistent-command", CommandName = "nonexistent-command",
CommandArguments = null, CommandArguments = null,
ProjectDirectory = s_liveProjectDirectory, ProjectDirectory = testInstance.Path,
Configuration = "Debug", Configuration = "Debug",
Framework = FrameworkConstants.CommonFrameworks.NetCoreApp10 Framework = FrameworkConstants.CommonFrameworks.NetCoreApp10
}; };
@ -118,11 +126,15 @@ namespace Microsoft.DotNet.Cli.Utils.Tests
{ {
var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver(); var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver();
var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName)
.WithBuildArtifacts()
.WithLockFiles();
var commandResolverArguments = new CommandResolverArguments() var commandResolverArguments = new CommandResolverArguments()
{ {
CommandName = "dotnet-hello", CommandName = "dotnet-hello",
CommandArguments = null, CommandArguments = null,
ProjectDirectory = s_liveProjectDirectory, ProjectDirectory = testInstance.Path,
Configuration = "Debug", Configuration = "Debug",
Framework = FrameworkConstants.CommonFrameworks.NetCoreApp10 Framework = FrameworkConstants.CommonFrameworks.NetCoreApp10
}; };
@ -143,11 +155,15 @@ namespace Microsoft.DotNet.Cli.Utils.Tests
{ {
var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver(); var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver();
var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName)
.WithBuildArtifacts()
.WithLockFiles();
var commandResolverArguments = new CommandResolverArguments() var commandResolverArguments = new CommandResolverArguments()
{ {
CommandName = "dotnet-hello", CommandName = "dotnet-hello",
CommandArguments = new[] { "arg with space" }, CommandArguments = new[] { "arg with space" },
ProjectDirectory = s_liveProjectDirectory, ProjectDirectory = testInstance.Path,
Configuration = "Debug", Configuration = "Debug",
Framework = FrameworkConstants.CommonFrameworks.NetCoreApp10 Framework = FrameworkConstants.CommonFrameworks.NetCoreApp10
}; };
@ -159,15 +175,19 @@ namespace Microsoft.DotNet.Cli.Utils.Tests
} }
[Fact] [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 projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver();
var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName)
.WithBuildArtifacts()
.WithLockFiles();
var commandResolverArguments = new CommandResolverArguments() var commandResolverArguments = new CommandResolverArguments()
{ {
CommandName = "dotnet-hello", CommandName = "dotnet-hello",
CommandArguments = null, CommandArguments = null,
ProjectDirectory = s_liveProjectDirectory, ProjectDirectory = testInstance.Path,
Configuration = "Debug", Configuration = "Debug",
Framework = FrameworkConstants.CommonFrameworks.NetCoreApp10 Framework = FrameworkConstants.CommonFrameworks.NetCoreApp10
}; };
@ -182,26 +202,30 @@ namespace Microsoft.DotNet.Cli.Utils.Tests
public void It_sets_depsfile_in_output_path_in_commandspec() public void It_sets_depsfile_in_output_path_in_commandspec()
{ {
var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver(); 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 var commandResolverArguments = new CommandResolverArguments
{ {
CommandName = "dotnet-hello", CommandName = "dotnet-hello",
CommandArguments = null, CommandArguments = null,
ProjectDirectory = s_liveProjectDirectory, ProjectDirectory = testInstance.Path,
Configuration = "Debug", Configuration = "Debug",
Framework = FrameworkConstants.CommonFrameworks.NetCoreApp10, Framework = FrameworkConstants.CommonFrameworks.NetCoreApp10,
OutputPath = outputDir OutputPath = outputDir
}; };
var buildCommand = new BuildCommand( var buildCommand = new BuildCommand(
Path.Combine(s_liveProjectDirectory, "project.json"), Path.Combine(testInstance.Path, "project.json"),
output: outputDir, output: outputDir,
framework: FrameworkConstants.CommonFrameworks.NetCoreApp10.ToString()) framework: FrameworkConstants.CommonFrameworks.NetCoreApp10.ToString())
.Execute().Should().Pass(); .Execute().Should().Pass();
var projectContext = ProjectContext.Create( var projectContext = ProjectContext.Create(
s_liveProjectDirectory, testInstance.Path,
FrameworkConstants.CommonFrameworks.NetCoreApp10, FrameworkConstants.CommonFrameworks.NetCoreApp10,
RuntimeEnvironmentRidExtensions.GetAllCandidateRuntimeIdentifiers()); RuntimeEnvironmentRidExtensions.GetAllCandidateRuntimeIdentifiers());
@ -218,26 +242,30 @@ namespace Microsoft.DotNet.Cli.Utils.Tests
public void It_sets_depsfile_in_build_base_path_in_commandspec() public void It_sets_depsfile_in_build_base_path_in_commandspec()
{ {
var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver(); 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 var commandResolverArguments = new CommandResolverArguments
{ {
CommandName = "dotnet-hello", CommandName = "dotnet-hello",
CommandArguments = null, CommandArguments = null,
ProjectDirectory = s_liveProjectDirectory, ProjectDirectory = testInstance.Path,
Configuration = "Debug", Configuration = "Debug",
Framework = FrameworkConstants.CommonFrameworks.NetCoreApp10, Framework = FrameworkConstants.CommonFrameworks.NetCoreApp10,
BuildBasePath = buildBasePath BuildBasePath = buildBasePath
}; };
var buildCommand = new BuildCommand( var buildCommand = new BuildCommand(
Path.Combine(s_liveProjectDirectory, "project.json"), Path.Combine(testInstance.Path, "project.json"),
buildBasePath: buildBasePath, buildBasePath: buildBasePath,
framework: FrameworkConstants.CommonFrameworks.NetCoreApp10.ToString()) framework: FrameworkConstants.CommonFrameworks.NetCoreApp10.ToString())
.Execute().Should().Pass(); .Execute().Should().Pass();
var projectContext = ProjectContext.Create( var projectContext = ProjectContext.Create(
s_liveProjectDirectory, testInstance.Path,
FrameworkConstants.CommonFrameworks.NetCoreApp10, FrameworkConstants.CommonFrameworks.NetCoreApp10,
RuntimeEnvironmentRidExtensions.GetAllCandidateRuntimeIdentifiers()); RuntimeEnvironmentRidExtensions.GetAllCandidateRuntimeIdentifiers());
@ -255,11 +283,15 @@ namespace Microsoft.DotNet.Cli.Utils.Tests
{ {
var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver(); var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver();
var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName)
.WithBuildArtifacts()
.WithLockFiles();
var commandResolverArguments = new CommandResolverArguments() var commandResolverArguments = new CommandResolverArguments()
{ {
CommandName = "dotnet-hello", CommandName = "dotnet-hello",
CommandArguments = null, CommandArguments = null,
ProjectDirectory = s_liveProjectDirectory, ProjectDirectory = testInstance.Path,
Configuration = "Debug", Configuration = "Debug",
Framework = FrameworkConstants.CommonFrameworks.NetCoreApp10 Framework = FrameworkConstants.CommonFrameworks.NetCoreApp10
}; };

View file

@ -7,6 +7,7 @@ using System.Linq;
using FluentAssertions; using FluentAssertions;
using Microsoft.DotNet.ProjectModel; using Microsoft.DotNet.ProjectModel;
using Microsoft.DotNet.ProjectModel.Graph; using Microsoft.DotNet.ProjectModel.Graph;
using Microsoft.DotNet.TestFramework;
using Microsoft.DotNet.Tools.Test.Utilities; using Microsoft.DotNet.Tools.Test.Utilities;
using NuGet.Frameworks; using NuGet.Frameworks;
using NuGet.Versioning; using NuGet.Versioning;
@ -14,12 +15,11 @@ using Xunit;
namespace Microsoft.DotNet.Cli.Utils.Tests 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 NuGetFramework s_toolPackageFramework = FrameworkConstants.CommonFrameworks.NetCoreApp10;
private static readonly string s_liveProjectDirectory = private const string TestProjectName = "AppWithToolDependency";
Path.Combine(AppContext.BaseDirectory, "TestAssets/TestProjects/AppWithToolDependency");
[Fact] [Fact]
public void It_returns_null_when_CommandName_is_null() public void It_returns_null_when_CommandName_is_null()
@ -60,11 +60,14 @@ namespace Microsoft.DotNet.Cli.Utils.Tests
{ {
var projectToolsCommandResolver = SetupProjectToolsCommandResolver(); var projectToolsCommandResolver = SetupProjectToolsCommandResolver();
var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName)
.WithLockFiles();
var commandResolverArguments = new CommandResolverArguments() var commandResolverArguments = new CommandResolverArguments()
{ {
CommandName = "nonexistent-command", CommandName = "nonexistent-command",
CommandArguments = null, CommandArguments = null,
ProjectDirectory = s_liveProjectDirectory ProjectDirectory = testInstance.Path
}; };
var result = projectToolsCommandResolver.Resolve(commandResolverArguments); var result = projectToolsCommandResolver.Resolve(commandResolverArguments);
@ -77,11 +80,14 @@ namespace Microsoft.DotNet.Cli.Utils.Tests
{ {
var projectToolsCommandResolver = SetupProjectToolsCommandResolver(); var projectToolsCommandResolver = SetupProjectToolsCommandResolver();
var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName)
.WithLockFiles();
var commandResolverArguments = new CommandResolverArguments() var commandResolverArguments = new CommandResolverArguments()
{ {
CommandName = "dotnet-portable", CommandName = "dotnet-portable",
CommandArguments = null, CommandArguments = null,
ProjectDirectory = s_liveProjectDirectory ProjectDirectory = testInstance.Path
}; };
var result = projectToolsCommandResolver.Resolve(commandResolverArguments); var result = projectToolsCommandResolver.Resolve(commandResolverArguments);
@ -100,11 +106,14 @@ namespace Microsoft.DotNet.Cli.Utils.Tests
{ {
var projectToolsCommandResolver = SetupProjectToolsCommandResolver(); var projectToolsCommandResolver = SetupProjectToolsCommandResolver();
var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName)
.WithLockFiles();
var commandResolverArguments = new CommandResolverArguments() var commandResolverArguments = new CommandResolverArguments()
{ {
CommandName = "dotnet-portable", CommandName = "dotnet-portable",
CommandArguments = new[] { "arg with space" }, CommandArguments = new[] { "arg with space" },
ProjectDirectory = s_liveProjectDirectory ProjectDirectory = testInstance.Path
}; };
var result = projectToolsCommandResolver.Resolve(commandResolverArguments); var result = projectToolsCommandResolver.Resolve(commandResolverArguments);
@ -118,11 +127,14 @@ namespace Microsoft.DotNet.Cli.Utils.Tests
{ {
var projectToolsCommandResolver = SetupProjectToolsCommandResolver(); var projectToolsCommandResolver = SetupProjectToolsCommandResolver();
var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName)
.WithLockFiles();
var commandResolverArguments = new CommandResolverArguments() var commandResolverArguments = new CommandResolverArguments()
{ {
CommandName = "dotnet-portable", CommandName = "dotnet-portable",
CommandArguments = null, CommandArguments = null,
ProjectDirectory = s_liveProjectDirectory ProjectDirectory = testInstance.Path
}; };
var result = projectToolsCommandResolver.Resolve(commandResolverArguments); var result = projectToolsCommandResolver.Resolve(commandResolverArguments);
@ -138,14 +150,17 @@ namespace Microsoft.DotNet.Cli.Utils.Tests
{ {
var projectToolsCommandResolver = SetupProjectToolsCommandResolver(); var projectToolsCommandResolver = SetupProjectToolsCommandResolver();
var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName)
.WithLockFiles();
var commandResolverArguments = new CommandResolverArguments() var commandResolverArguments = new CommandResolverArguments()
{ {
CommandName = "dotnet-portable", CommandName = "dotnet-portable",
CommandArguments = null, 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 nugetPackagesRoot = context.PackagesDirectory;
var toolPathCalculator = new ToolPathCalculator(nugetPackagesRoot); var toolPathCalculator = new ToolPathCalculator(nugetPackagesRoot);
@ -180,7 +195,10 @@ namespace Microsoft.DotNet.Cli.Utils.Tests
[Fact] [Fact]
public void Generate_deps_json_method_doesnt_overwrite_when_deps_file_already_exists() 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 nugetPackagesRoot = context.PackagesDirectory;
var toolPathCalculator = new ToolPathCalculator(nugetPackagesRoot); var toolPathCalculator = new ToolPathCalculator(nugetPackagesRoot);

View file

@ -14,20 +14,12 @@ namespace StreamForwarderTests
public class StreamForwarderTests : TestBase public class StreamForwarderTests : TestBase
{ {
private static readonly string s_rid = RuntimeEnvironmentRidExtensions.GetLegacyRestoreRuntimeIdentifier(); 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() public static void Main()
{ {
Console.WriteLine("Dummy Entrypoint"); Console.WriteLine("Dummy Entrypoint");
} }
public StreamForwarderTests()
{
_root = Temp.CreateDirectory();
}
public static IEnumerable<object[]> ForwardingTheoryVariations public static IEnumerable<object[]> ForwardingTheoryVariations
{ {
get get
@ -127,15 +119,15 @@ namespace StreamForwarderTests
private string SetupTestProject() 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(); buildCommand.Execute();
var buildOutputExe = "OutputStandardOutputAndError" + Constants.ExeSuffix; 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; return buildOutputPath;
} }