Making ProjectDependenciesCommandResolver handle msbuild projects as well by using the ProjectFactory and IProject.
Moving the CommandResolution classes that depend on msbuild back into Cli.Utils. Updating the src projects to a netstandard compatible with Cli.Utils moving to netstandard1.5
This commit is contained in:
parent
a97d44eded
commit
318c9f3e44
49 changed files with 859 additions and 331 deletions
|
@ -83,5 +83,36 @@ namespace Microsoft.DotNet.Tests.EndToEnd
|
|||
.And
|
||||
.HaveStdOutContaining("Hello Portable World!");;
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ItCanRunAToolThatInvokesADependencyToolInACSProj()
|
||||
{
|
||||
var repoDirectoriesProvider = new RepoDirectoriesProvider();
|
||||
var testAppName = "MSBuildTestAppWithToolInDependencies";
|
||||
var testInstance = TestAssetsManager
|
||||
.CreateTestInstance(testAppName);
|
||||
|
||||
var testProjectDirectory = testInstance.TestRoot;
|
||||
|
||||
new Restore3Command()
|
||||
.WithWorkingDirectory(testProjectDirectory)
|
||||
.Execute($"-s {repoDirectoriesProvider.TestPackages}")
|
||||
.Should()
|
||||
.Pass();
|
||||
|
||||
new Build3Command()
|
||||
.WithWorkingDirectory(testProjectDirectory)
|
||||
.Execute()
|
||||
.Should()
|
||||
.Pass();
|
||||
|
||||
new DotnetCommand()
|
||||
.WithWorkingDirectory(testProjectDirectory)
|
||||
.ExecuteWithCapturedOutput("invoke-portable")
|
||||
.Should()
|
||||
.Pass()
|
||||
.And
|
||||
.HaveStdOutContaining("Hello Portable World!");;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,15 @@
|
|||
{
|
||||
"version": "1.0.0-*",
|
||||
"buildOptions": {
|
||||
"emitEntryPoint": true
|
||||
"emitEntryPoint": true,
|
||||
"copyToOutput": {
|
||||
"include": [
|
||||
"../../artifacts/*/stage2/sdk/*/.version"
|
||||
],
|
||||
"mappings": {
|
||||
".version": "../../artifacts/*/stage2/sdk/*/.version"
|
||||
}
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"Microsoft.NETCore.App": {
|
||||
|
|
|
@ -17,7 +17,7 @@ namespace Microsoft.DotNet.Cli.Utils.Tests
|
|||
|
||||
var resolvers = defaultCommandResolver.OrderedCommandResolvers;
|
||||
|
||||
resolvers.Should().HaveCount(6);
|
||||
resolvers.Should().HaveCount(7);
|
||||
|
||||
resolvers.Select(r => r.GetType())
|
||||
.Should()
|
||||
|
@ -25,6 +25,7 @@ namespace Microsoft.DotNet.Cli.Utils.Tests
|
|||
new []{
|
||||
typeof(MuxerCommandResolver),
|
||||
typeof(RootedCommandResolver),
|
||||
typeof(ProjectToolsCommandResolver),
|
||||
typeof(AppBaseDllCommandResolver),
|
||||
typeof(AppBaseCommandResolver),
|
||||
typeof(PathCommandResolver),
|
||||
|
|
|
@ -8,6 +8,7 @@ using Microsoft.DotNet.Cli;
|
|||
using Microsoft.DotNet.Cli.Utils;
|
||||
using Microsoft.DotNet.InternalAbstractions;
|
||||
using Microsoft.DotNet.ProjectModel;
|
||||
using Microsoft.DotNet.TestFramework;
|
||||
using Microsoft.DotNet.Tools.Test.Utilities;
|
||||
using NuGet.Frameworks;
|
||||
using Xunit;
|
||||
|
@ -17,7 +18,7 @@ namespace Microsoft.DotNet.Cli.Utils.Tests
|
|||
public class GivenAProjectDependenciesCommandResolver : TestBase
|
||||
{
|
||||
|
||||
private const string TestProjectName = "AppWithDirectDep";
|
||||
private const string ProjectJsonTestProjectName = "AppWithDirectDep";
|
||||
|
||||
[Fact]
|
||||
public void It_returns_null_when_CommandName_is_null()
|
||||
|
@ -62,7 +63,7 @@ namespace Microsoft.DotNet.Cli.Utils.Tests
|
|||
{
|
||||
var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver();
|
||||
|
||||
var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName)
|
||||
var testInstance = TestAssetsManager.CreateTestInstance(ProjectJsonTestProjectName)
|
||||
.WithLockFiles();
|
||||
|
||||
var commandResolverArguments = new CommandResolverArguments()
|
||||
|
@ -84,7 +85,7 @@ namespace Microsoft.DotNet.Cli.Utils.Tests
|
|||
{
|
||||
var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver();
|
||||
|
||||
var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName)
|
||||
var testInstance = TestAssetsManager.CreateTestInstance(ProjectJsonTestProjectName)
|
||||
.WithLockFiles();
|
||||
|
||||
var commandResolverArguments = new CommandResolverArguments()
|
||||
|
@ -106,7 +107,7 @@ namespace Microsoft.DotNet.Cli.Utils.Tests
|
|||
{
|
||||
var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver();
|
||||
|
||||
var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName)
|
||||
var testInstance = TestAssetsManager.CreateTestInstance(ProjectJsonTestProjectName)
|
||||
.WithLockFiles();
|
||||
|
||||
var commandResolverArguments = new CommandResolverArguments()
|
||||
|
@ -128,7 +129,7 @@ namespace Microsoft.DotNet.Cli.Utils.Tests
|
|||
{
|
||||
var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver();
|
||||
|
||||
var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName)
|
||||
var testInstance = TestAssetsManager.CreateTestInstance(ProjectJsonTestProjectName)
|
||||
.WithBuildArtifacts()
|
||||
.WithLockFiles();
|
||||
|
||||
|
@ -157,7 +158,7 @@ namespace Microsoft.DotNet.Cli.Utils.Tests
|
|||
{
|
||||
var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver();
|
||||
|
||||
var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName)
|
||||
var testInstance = TestAssetsManager.CreateTestInstance(ProjectJsonTestProjectName)
|
||||
.WithBuildArtifacts()
|
||||
.WithLockFiles();
|
||||
|
||||
|
@ -181,7 +182,7 @@ namespace Microsoft.DotNet.Cli.Utils.Tests
|
|||
{
|
||||
var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver();
|
||||
|
||||
var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName)
|
||||
var testInstance = TestAssetsManager.CreateTestInstance(ProjectJsonTestProjectName)
|
||||
.WithBuildArtifacts()
|
||||
.WithLockFiles();
|
||||
|
||||
|
@ -205,7 +206,7 @@ namespace Microsoft.DotNet.Cli.Utils.Tests
|
|||
{
|
||||
var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver();
|
||||
|
||||
var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName)
|
||||
var testInstance = TestAssetsManager.CreateTestInstance(ProjectJsonTestProjectName)
|
||||
.WithLockFiles();
|
||||
|
||||
var outputDir = Path.Combine(testInstance.Path, "outdir");
|
||||
|
@ -245,7 +246,7 @@ namespace Microsoft.DotNet.Cli.Utils.Tests
|
|||
{
|
||||
var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver();
|
||||
|
||||
var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName)
|
||||
var testInstance = TestAssetsManager.CreateTestInstance(ProjectJsonTestProjectName)
|
||||
.WithLockFiles();
|
||||
|
||||
var buildBasePath = Path.Combine(testInstance.Path, "basedir");
|
||||
|
@ -285,7 +286,7 @@ namespace Microsoft.DotNet.Cli.Utils.Tests
|
|||
{
|
||||
var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver();
|
||||
|
||||
var testInstance = TestAssetsManager.CreateTestInstance(TestProjectName)
|
||||
var testInstance = TestAssetsManager.CreateTestInstance(ProjectJsonTestProjectName)
|
||||
.WithBuildArtifacts()
|
||||
.WithLockFiles();
|
||||
|
||||
|
|
|
@ -0,0 +1,161 @@
|
|||
// Copyright (c) .NET Foundation and contributors. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
|
||||
using System;
|
||||
using System.IO;
|
||||
using FluentAssertions;
|
||||
using Microsoft.DotNet.Cli;
|
||||
using Microsoft.DotNet.Cli.Utils;
|
||||
using Microsoft.DotNet.InternalAbstractions;
|
||||
using Microsoft.DotNet.ProjectModel;
|
||||
using Microsoft.DotNet.TestFramework;
|
||||
using Microsoft.DotNet.Tools.Test.Utilities;
|
||||
using NuGet.Frameworks;
|
||||
using Xunit;
|
||||
|
||||
namespace Microsoft.DotNet.Cli.Utils.Tests
|
||||
{
|
||||
public class GivenAProjectDependencyCommandResolverBeingUsedWithMSBuild : TestBase
|
||||
{
|
||||
private TestInstance MSBuildTestProjectInstance;
|
||||
private RepoDirectoriesProvider _repoDirectoriesProvider;
|
||||
|
||||
public GivenAProjectDependencyCommandResolverBeingUsedWithMSBuild()
|
||||
{
|
||||
MSBuildTestProjectInstance =
|
||||
TestAssetsManager.CreateTestInstance("MSBuildTestAppWithToolInDependencies");
|
||||
_repoDirectoriesProvider = new RepoDirectoriesProvider();
|
||||
|
||||
new Restore3Command()
|
||||
.WithWorkingDirectory(MSBuildTestProjectInstance.Path)
|
||||
.Execute($"-s {_repoDirectoriesProvider.TestPackages}")
|
||||
.Should()
|
||||
.Pass();
|
||||
|
||||
new Build3Command()
|
||||
.WithWorkingDirectory(MSBuildTestProjectInstance.Path)
|
||||
.Execute()
|
||||
.Should()
|
||||
.Pass();
|
||||
|
||||
Environment.SetEnvironmentVariable(
|
||||
Constants.MSBUILD_EXE_PATH,
|
||||
Path.Combine(_repoDirectoriesProvider.Stage2Sdk, "msbuild.exe"));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void It_returns_a_CommandSpec_with_Dotnet_as_FileName_and_CommandName_in_Args_when_CommandName_exists_in_MSBuild_ProjectDependencies()
|
||||
{
|
||||
var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver();
|
||||
|
||||
var commandResolverArguments = new CommandResolverArguments()
|
||||
{
|
||||
CommandName = "dotnet-portable",
|
||||
CommandArguments = null,
|
||||
ProjectDirectory = MSBuildTestProjectInstance.Path,
|
||||
Configuration = "Debug",
|
||||
Framework = FrameworkConstants.CommonFrameworks.NetCoreApp10
|
||||
};
|
||||
|
||||
var result = projectDependenciesCommandResolver.Resolve(commandResolverArguments);
|
||||
|
||||
result.Should().NotBeNull();
|
||||
|
||||
var commandFile = Path.GetFileNameWithoutExtension(result.Path);
|
||||
|
||||
commandFile.Should().Be("dotnet");
|
||||
|
||||
result.Args.Should().Contain(commandResolverArguments.CommandName);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void It_passes_depsfile_arg_to_host_when_returning_a_CommandSpec_for_MSBuild_project()
|
||||
{
|
||||
var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver();
|
||||
|
||||
var commandResolverArguments = new CommandResolverArguments()
|
||||
{
|
||||
CommandName = "dotnet-portable",
|
||||
CommandArguments = null,
|
||||
ProjectDirectory = MSBuildTestProjectInstance.Path,
|
||||
Configuration = "Debug",
|
||||
Framework = FrameworkConstants.CommonFrameworks.NetCoreApp10
|
||||
};
|
||||
|
||||
var result = projectDependenciesCommandResolver.Resolve(commandResolverArguments);
|
||||
|
||||
result.Should().NotBeNull();
|
||||
result.Args.Should().Contain("--depsfile");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void It_returns_null_when_CommandName_does_not_exist_in_ProjectDependencies_for_MSBuild_project()
|
||||
{
|
||||
var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver();
|
||||
|
||||
var commandResolverArguments = new CommandResolverArguments()
|
||||
{
|
||||
CommandName = "nonexistent-command",
|
||||
CommandArguments = null,
|
||||
ProjectDirectory = MSBuildTestProjectInstance.Path,
|
||||
Configuration = "Debug",
|
||||
Framework = FrameworkConstants.CommonFrameworks.NetCoreApp10
|
||||
};
|
||||
|
||||
var result = projectDependenciesCommandResolver.Resolve(commandResolverArguments);
|
||||
|
||||
result.Should().BeNull();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void It_sets_depsfile_in_output_path_in_commandspec_for_MSBuild_project()
|
||||
{
|
||||
var projectDependenciesCommandResolver = SetupProjectDependenciesCommandResolver();
|
||||
|
||||
var testInstance = TestAssetsManager.CreateTestInstance("MSBuildTestAppWithToolInDependencies");
|
||||
|
||||
var outputDir = Path.Combine(testInstance.Path, "outdir");
|
||||
|
||||
var commandResolverArguments = new CommandResolverArguments()
|
||||
{
|
||||
CommandName = "dotnet-portable",
|
||||
CommandArguments = null,
|
||||
ProjectDirectory = testInstance.Path,
|
||||
Configuration = "Debug",
|
||||
Framework = FrameworkConstants.CommonFrameworks.NetCoreApp10,
|
||||
OutputPath = outputDir
|
||||
};
|
||||
|
||||
new Restore3Command()
|
||||
.WithWorkingDirectory(testInstance.Path)
|
||||
.Execute($"-s {_repoDirectoriesProvider.TestPackages}")
|
||||
.Should()
|
||||
.Pass();
|
||||
|
||||
new Build3Command()
|
||||
.WithWorkingDirectory(testInstance.Path)
|
||||
.Execute($"-o {outputDir}")
|
||||
.Should()
|
||||
.Pass();
|
||||
|
||||
var result = projectDependenciesCommandResolver.Resolve(commandResolverArguments);
|
||||
|
||||
var depsFilePath = Path.Combine(outputDir, "MSBuildTestAppWithToolInDependencies.deps.json");
|
||||
|
||||
result.Should().NotBeNull();
|
||||
result.Args.Should().Contain($"--depsfile {depsFilePath}");
|
||||
}
|
||||
|
||||
private ProjectDependenciesCommandResolver SetupProjectDependenciesCommandResolver(
|
||||
IEnvironmentProvider environment = null,
|
||||
IPackagedCommandSpecFactory packagedCommandSpecFactory = null)
|
||||
{
|
||||
environment = environment ?? new EnvironmentProvider();
|
||||
packagedCommandSpecFactory = packagedCommandSpecFactory ?? new PackagedCommandSpecFactory();
|
||||
|
||||
var projectDependenciesCommandResolver = new ProjectDependenciesCommandResolver(environment, packagedCommandSpecFactory);
|
||||
|
||||
return projectDependenciesCommandResolver;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -4,7 +4,6 @@
|
|||
using System.IO;
|
||||
using System.Linq;
|
||||
using FluentAssertions;
|
||||
using Microsoft.DotNet.Cli.CommandResolution;
|
||||
using Microsoft.DotNet.Cli.Utils;
|
||||
using Microsoft.DotNet.ProjectModel;
|
||||
using Microsoft.DotNet.TestFramework;
|
||||
|
@ -236,7 +235,7 @@ namespace Microsoft.DotNet.Tests
|
|||
{
|
||||
packagedCommandSpecFactory = packagedCommandSpecFactory ?? new PackagedCommandSpecFactory();
|
||||
|
||||
var projectToolsCommandResolver = new ProjectToolsCommandResolver(packagedCommandSpecFactory);
|
||||
var projectToolsCommandResolver = new ProjectToolsCommandResolver(packagedCommandSpecFactory, new EnvironmentProvider());
|
||||
|
||||
return projectToolsCommandResolver;
|
||||
}
|
|
@ -46,7 +46,8 @@
|
|||
"moq.netcore": "4.4.0-beta8",
|
||||
"xunit": "2.2.0-beta3-build3330",
|
||||
"dotnet-test-xunit": "1.0.0-rc2-350904-49",
|
||||
"Microsoft.DotNet.PlatformAbstractions": "1.0.1-beta-000933"
|
||||
"Microsoft.DotNet.PlatformAbstractions": "1.0.1-beta-000933",
|
||||
"Microsoft.Build.Runtime": "15.1.316-preview5"
|
||||
},
|
||||
"frameworks": {
|
||||
"netcoreapp1.0": {
|
||||
|
|
|
@ -0,0 +1,75 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
|
||||
namespace Microsoft.DotNet.Tools.Test.Utilities
|
||||
{
|
||||
public class RepoDirectoriesProvider
|
||||
{
|
||||
private static string s_repoRoot;
|
||||
|
||||
private string _artifacts;
|
||||
private string _builtDotnet;
|
||||
private string _nugetPackages;
|
||||
private string _corehostPackages;
|
||||
private string _corehostDummyPackages;
|
||||
private string _stage2Sdk;
|
||||
private string _testPackages;
|
||||
|
||||
public static string RepoRoot
|
||||
{
|
||||
get
|
||||
{
|
||||
if (!string.IsNullOrEmpty(s_repoRoot))
|
||||
{
|
||||
return s_repoRoot;
|
||||
}
|
||||
|
||||
#if NET451
|
||||
string directory = AppDomain.CurrentDomain.BaseDirectory;
|
||||
#else
|
||||
string directory = AppContext.BaseDirectory;
|
||||
#endif
|
||||
|
||||
while (!Directory.Exists(Path.Combine(directory, ".git")) && directory != null)
|
||||
{
|
||||
directory = Directory.GetParent(directory).FullName;
|
||||
}
|
||||
|
||||
if (directory == null)
|
||||
{
|
||||
throw new Exception("Cannot find the git repository root");
|
||||
}
|
||||
|
||||
s_repoRoot = directory;
|
||||
return s_repoRoot;
|
||||
}
|
||||
}
|
||||
|
||||
public string Artifacts => _artifacts;
|
||||
public string BuiltDotnet => _builtDotnet;
|
||||
public string NugetPackages => _nugetPackages;
|
||||
public string CorehostPackages => _corehostPackages;
|
||||
public string CorehostDummyPackages => _corehostDummyPackages;
|
||||
public string Stage2Sdk => _stage2Sdk;
|
||||
public string TestPackages => _testPackages;
|
||||
|
||||
public RepoDirectoriesProvider(
|
||||
string artifacts = null,
|
||||
string builtDotnet = null,
|
||||
string nugetPackages = null,
|
||||
string corehostPackages = null,
|
||||
string corehostDummyPackages = null)
|
||||
{
|
||||
var currentRid = DotnetLegacyRuntimeIdentifiers.InferLegacyRestoreRuntimeIdentifier();
|
||||
|
||||
_artifacts = artifacts ?? Path.Combine(RepoRoot, "artifacts", currentRid);
|
||||
_nugetPackages = nugetPackages ?? Path.Combine(RepoRoot, ".nuget", "packages");
|
||||
_corehostPackages = corehostPackages ?? Path.Combine(_artifacts, "corehost");
|
||||
_corehostDummyPackages = corehostDummyPackages ?? Path.Combine(_artifacts, "corehostdummypackages");
|
||||
_builtDotnet = builtDotnet ?? Path.Combine(_artifacts, "intermediate", "sharedFrameworkPublish");
|
||||
_stage2Sdk = Directory.EnumerateDirectories(Path.Combine(_artifacts, "stage2", "sdk")).First();
|
||||
_testPackages = Path.Combine(_artifacts, "tests", "packages");
|
||||
}
|
||||
}
|
||||
}
|
|
@ -22,35 +22,13 @@ namespace Microsoft.DotNet.Tools.Test.Utilities
|
|||
protected const string DefaultLibraryFramework = "netstandard1.5";
|
||||
private TempRoot _temp;
|
||||
private static TestAssetsManager s_testsAssetsMgr;
|
||||
private static string s_repoRoot;
|
||||
|
||||
|
||||
protected static string RepoRoot
|
||||
{
|
||||
get
|
||||
{
|
||||
if (!string.IsNullOrEmpty(s_repoRoot))
|
||||
{
|
||||
return s_repoRoot;
|
||||
}
|
||||
|
||||
#if NET451
|
||||
string directory = AppDomain.CurrentDomain.BaseDirectory;
|
||||
#else
|
||||
string directory = AppContext.BaseDirectory;
|
||||
#endif
|
||||
|
||||
while (!Directory.Exists(Path.Combine(directory, ".git")) && directory != null)
|
||||
{
|
||||
directory = Directory.GetParent(directory).FullName;
|
||||
}
|
||||
|
||||
if (directory == null)
|
||||
{
|
||||
throw new Exception("Cannot find the git repository root");
|
||||
}
|
||||
|
||||
s_repoRoot = directory;
|
||||
return s_repoRoot;
|
||||
return RepoDirectoriesProvider.RepoRoot;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -36,13 +36,6 @@
|
|||
"System.Runtime.Serialization.Primitives": "4.1.1-rc2-24022",
|
||||
"System.Collections.Immutable": "1.2.0-rc2-24022",
|
||||
"System.Net.NetworkInformation": "4.1.0-rc2-24022"
|
||||
},
|
||||
"net46": {
|
||||
"frameworkAssemblies": {
|
||||
"System.Runtime": {
|
||||
"type": "build"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,7 +8,6 @@ using System.IO;
|
|||
using System.Linq;
|
||||
using System.Xml.Linq;
|
||||
using FluentAssertions;
|
||||
using Microsoft.DotNet.Tools.Test.Utilities;
|
||||
using Xunit;
|
||||
|
||||
namespace Microsoft.DotNet.Tests
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
using System.IO;
|
||||
using Microsoft.DotNet.InternalAbstractions;
|
||||
using Microsoft.DotNet.TestFramework;
|
||||
using Microsoft.DotNet.Tools.Test.Utilities;
|
||||
|
||||
namespace Microsoft.DotNet.Tests
|
||||
{
|
||||
|
|
|
@ -3,10 +3,7 @@
|
|||
"dependencies": {
|
||||
"xunit": "2.2.0-beta3-build3330",
|
||||
"dotnet-test-xunit": "1.0.0-rc2-350904-49",
|
||||
"Microsoft.NETCore.Platforms": "1.0.1",
|
||||
"Microsoft.DotNet.Tools.Tests.Utilities": {
|
||||
"target": "project"
|
||||
}
|
||||
"Microsoft.NETCore.Platforms": "1.0.1"
|
||||
},
|
||||
"frameworks": {
|
||||
"net46": {
|
||||
|
|
|
@ -1,39 +0,0 @@
|
|||
// Copyright (c) .NET Foundation and contributors. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
|
||||
using System.Linq;
|
||||
using FluentAssertions;
|
||||
using Microsoft.DotNet.Cli.CommandResolution;
|
||||
using Microsoft.DotNet.Cli.Utils;
|
||||
using Microsoft.DotNet.Tools.Test.Utilities;
|
||||
using Xunit;
|
||||
|
||||
namespace Microsoft.DotNet.Tests
|
||||
{
|
||||
public class GivenAProjectToolsCommandResolverPolicy
|
||||
{
|
||||
[Fact]
|
||||
public void It_contains_resolvers_in_the_right_order()
|
||||
{
|
||||
var projectToolsCommandResolverPolicy = new ProjectToolsCommandResolverPolicy();
|
||||
var defaultCommandResolver = projectToolsCommandResolverPolicy.CreateCommandResolver();
|
||||
|
||||
var resolvers = defaultCommandResolver.OrderedCommandResolvers;
|
||||
|
||||
resolvers.Should().HaveCount(7);
|
||||
|
||||
resolvers.Select(r => r.GetType())
|
||||
.Should()
|
||||
.ContainInOrder(
|
||||
new []{
|
||||
typeof(MuxerCommandResolver),
|
||||
typeof(RootedCommandResolver),
|
||||
typeof(AppBaseDllCommandResolver),
|
||||
typeof(AppBaseCommandResolver),
|
||||
typeof(PathCommandResolver),
|
||||
typeof(PublishedPathCommandResolver),
|
||||
typeof(ProjectToolsCommandResolver)
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue