diff --git a/src/Microsoft.DotNet.Cli.Utils/CoreHost.cs b/src/Microsoft.DotNet.Cli.Utils/CoreHost.cs deleted file mode 100644 index 2424bf65f..000000000 --- a/src/Microsoft.DotNet.Cli.Utils/CoreHost.cs +++ /dev/null @@ -1,52 +0,0 @@ -using System; -using System.IO; - -namespace Microsoft.DotNet.Cli.Utils -{ - public static class CoreHost - { - internal static string _hostDir; - internal static string _hostExePath; - - public static string HostExePath - { - get - { - if (_hostExePath == null) - { - _hostExePath = Path.Combine(HostDir, Constants.HostExecutableName); - } - return _hostExePath; - } - } - - private static string HostDir - { - get - { - if (_hostDir == null) - { - var fxDepsFile = Muxer.GetDataFromAppDomain("FX_DEPS_FILE"); - _hostDir = Path.GetDirectoryName(fxDepsFile); - } - - return _hostDir; - } - } - - public static void CopyTo(string destinationPath, string hostExeName) - { - foreach (var binaryName in Constants.HostBinaryNames) - { - var outputBinaryName = binaryName.Equals(Constants.HostExecutableName) - ? hostExeName : binaryName; - var outputBinaryPath = Path.Combine(destinationPath, outputBinaryName); - var hostBinaryPath = Path.Combine(HostDir, binaryName); - File.Copy(hostBinaryPath, outputBinaryPath, overwrite: true); - - // Update the last write time so this file can be treated as an output of a build - File.SetLastWriteTimeUtc(outputBinaryPath, DateTime.UtcNow); - } - } - } -} diff --git a/src/Microsoft.DotNet.Cli.Utils/Extensions/LockFileFormatExtensions.cs b/src/Microsoft.DotNet.Cli.Utils/Extensions/LockFileFormatExtensions.cs index 0c4f9c702..559d6bebe 100644 --- a/src/Microsoft.DotNet.Cli.Utils/Extensions/LockFileFormatExtensions.cs +++ b/src/Microsoft.DotNet.Cli.Utils/Extensions/LockFileFormatExtensions.cs @@ -5,7 +5,6 @@ using System; using System.IO; using System.Threading; using System.Threading.Tasks; - using NuGet.Common; using NuGet.ProjectModel; @@ -13,11 +12,6 @@ namespace Microsoft.DotNet.Cli.Utils { public static class LockFileFormatExtensions { - - private const int NumberOfRetries = 3000; - - private static readonly TimeSpan SleepDuration = TimeSpan.FromMilliseconds(10); - public static async Task ReadWithLock(this LockFileFormat subject, string path) { return await ConcurrencyUtilities.ExecuteWithFileLockedAsync( diff --git a/src/Microsoft.DotNet.Cli.Utils/InvalidProjectException.cs b/src/Microsoft.DotNet.Cli.Utils/InvalidProjectException.cs deleted file mode 100644 index ac3946b96..000000000 --- a/src/Microsoft.DotNet.Cli.Utils/InvalidProjectException.cs +++ /dev/null @@ -1,11 +0,0 @@ -using System; - -namespace Microsoft.DotNet.Cli.Utils -{ - public class InvalidProjectException : Exception - { - public InvalidProjectException() { } - public InvalidProjectException(string message) : base(message) { } - public InvalidProjectException(string message, Exception innerException) : base(message, innerException) { } - } -} diff --git a/test/dotnet-msbuild.Tests/GivenDotnetAddInvocation.cs b/test/dotnet-msbuild.Tests/GivenDotnetAddInvocation.cs new file mode 100644 index 000000000..381277b96 --- /dev/null +++ b/test/dotnet-msbuild.Tests/GivenDotnetAddInvocation.cs @@ -0,0 +1,35 @@ +using Microsoft.DotNet.Tools.Build; +using FluentAssertions; +using Xunit; +using System; + +namespace Microsoft.DotNet.Cli.MSBuild.Tests +{ + public class GivenDotnetAddInvocation + { + [Theory] + [InlineData(new string[] { }, @"exec /m /v:m /t:Build /clp:Summary")] + [InlineData(new string[] { "-o", "foo" }, @"exec /m /v:m /t:Build /p:OutputPath=foo /clp:Summary")] + [InlineData(new string[] { "--output", "foo" }, @"exec /m /v:m /t:Build /p:OutputPath=foo /clp:Summary")] + [InlineData(new string[] { "-o", "foo1 foo2" }, @"exec /m /v:m /t:Build ""/p:OutputPath=foo1 foo2"" /clp:Summary")] + [InlineData(new string[] { "--no-incremental" }, @"exec /m /v:m /t:Rebuild /clp:Summary")] + [InlineData(new string[] { "-f", "framework" }, @"exec /m /v:m /t:Build /p:TargetFramework=framework /clp:Summary")] + [InlineData(new string[] { "--framework", "framework" }, @"exec /m /v:m /t:Build /p:TargetFramework=framework /clp:Summary")] + [InlineData(new string[] { "-r", "runtime" }, @"exec /m /v:m /t:Build /p:RuntimeIdentifier=runtime /clp:Summary")] + [InlineData(new string[] { "--runtime", "runtime" }, @"exec /m /v:m /t:Build /p:RuntimeIdentifier=runtime /clp:Summary")] + [InlineData(new string[] { "-c", "configuration" }, @"exec /m /v:m /t:Build /p:Configuration=configuration /clp:Summary")] + [InlineData(new string[] { "--configuration", "configuration" }, @"exec /m /v:m /t:Build /p:Configuration=configuration /clp:Summary")] + [InlineData(new string[] { "--version-suffix", "mysuffix" }, @"exec /m /v:m /t:Build /p:VersionSuffix=mysuffix /clp:Summary")] + [InlineData(new string[] { "--no-dependencies" }, @"exec /m /v:m /t:Build /p:BuildProjectReferences=false /clp:Summary")] + [InlineData(new string[] { "-v", "verbosity" }, @"exec /m /v:m /t:Build /verbosity:verbosity /clp:Summary")] + [InlineData(new string[] { "--verbosity", "verbosity" }, @"exec /m /v:m /t:Build /verbosity:verbosity /clp:Summary")] + [InlineData(new string[] { "--no-incremental", "-o", "myoutput", "-r", "myruntime", "-v", "diag" }, @"exec /m /v:m /t:Rebuild /p:OutputPath=myoutput /p:RuntimeIdentifier=myruntime /verbosity:diag /clp:Summary")] + public void MsbuildInvocationIsCorrect(string[] args, string expectedCommand) + { + var msbuildPath = ""; + BuildCommand.FromArgs(args, msbuildPath) + .GetProcessStartInfo().Arguments.Should().Be(expectedCommand); + throw new NotImplementedException(); + } + } +} diff --git a/test/dotnet-msbuild.Tests/GivenDotnetCacheInvocation.cs b/test/dotnet-msbuild.Tests/GivenDotnetCacheInvocation.cs new file mode 100644 index 000000000..5d87eb449 --- /dev/null +++ b/test/dotnet-msbuild.Tests/GivenDotnetCacheInvocation.cs @@ -0,0 +1,35 @@ +using Microsoft.DotNet.Tools.Build; +using FluentAssertions; +using Xunit; +using System; + +namespace Microsoft.DotNet.Cli.MSBuild.Tests +{ + public class GivenDotnetCacheInvocation + { + [Theory] + [InlineData(new string[] { }, @"exec /m /v:m /t:Build /clp:Summary")] + [InlineData(new string[] { "-o", "foo" }, @"exec /m /v:m /t:Build /p:OutputPath=foo /clp:Summary")] + [InlineData(new string[] { "--output", "foo" }, @"exec /m /v:m /t:Build /p:OutputPath=foo /clp:Summary")] + [InlineData(new string[] { "-o", "foo1 foo2" }, @"exec /m /v:m /t:Build ""/p:OutputPath=foo1 foo2"" /clp:Summary")] + [InlineData(new string[] { "--no-incremental" }, @"exec /m /v:m /t:Rebuild /clp:Summary")] + [InlineData(new string[] { "-f", "framework" }, @"exec /m /v:m /t:Build /p:TargetFramework=framework /clp:Summary")] + [InlineData(new string[] { "--framework", "framework" }, @"exec /m /v:m /t:Build /p:TargetFramework=framework /clp:Summary")] + [InlineData(new string[] { "-r", "runtime" }, @"exec /m /v:m /t:Build /p:RuntimeIdentifier=runtime /clp:Summary")] + [InlineData(new string[] { "--runtime", "runtime" }, @"exec /m /v:m /t:Build /p:RuntimeIdentifier=runtime /clp:Summary")] + [InlineData(new string[] { "-c", "configuration" }, @"exec /m /v:m /t:Build /p:Configuration=configuration /clp:Summary")] + [InlineData(new string[] { "--configuration", "configuration" }, @"exec /m /v:m /t:Build /p:Configuration=configuration /clp:Summary")] + [InlineData(new string[] { "--version-suffix", "mysuffix" }, @"exec /m /v:m /t:Build /p:VersionSuffix=mysuffix /clp:Summary")] + [InlineData(new string[] { "--no-dependencies" }, @"exec /m /v:m /t:Build /p:BuildProjectReferences=false /clp:Summary")] + [InlineData(new string[] { "-v", "verbosity" }, @"exec /m /v:m /t:Build /verbosity:verbosity /clp:Summary")] + [InlineData(new string[] { "--verbosity", "verbosity" }, @"exec /m /v:m /t:Build /verbosity:verbosity /clp:Summary")] + [InlineData(new string[] { "--no-incremental", "-o", "myoutput", "-r", "myruntime", "-v", "diag" }, @"exec /m /v:m /t:Rebuild /p:OutputPath=myoutput /p:RuntimeIdentifier=myruntime /verbosity:diag /clp:Summary")] + public void MsbuildInvocationIsCorrect(string[] args, string expectedCommand) + { + var msbuildPath = ""; + BuildCommand.FromArgs(args, msbuildPath) + .GetProcessStartInfo().Arguments.Should().Be(expectedCommand); + throw new NotImplementedException(); + } + } +} diff --git a/test/dotnet-msbuild.Tests/GivenDotnetCleanInvocation.cs b/test/dotnet-msbuild.Tests/GivenDotnetCleanInvocation.cs new file mode 100644 index 000000000..29269b902 --- /dev/null +++ b/test/dotnet-msbuild.Tests/GivenDotnetCleanInvocation.cs @@ -0,0 +1,35 @@ +using Microsoft.DotNet.Tools.Build; +using FluentAssertions; +using Xunit; +using System; + +namespace Microsoft.DotNet.Cli.MSBuild.Tests +{ + public class GivenDotnetCleanInvocation + { + [Theory] + [InlineData(new string[] { }, @"exec /m /v:m /t:Build /clp:Summary")] + [InlineData(new string[] { "-o", "foo" }, @"exec /m /v:m /t:Build /p:OutputPath=foo /clp:Summary")] + [InlineData(new string[] { "--output", "foo" }, @"exec /m /v:m /t:Build /p:OutputPath=foo /clp:Summary")] + [InlineData(new string[] { "-o", "foo1 foo2" }, @"exec /m /v:m /t:Build ""/p:OutputPath=foo1 foo2"" /clp:Summary")] + [InlineData(new string[] { "--no-incremental" }, @"exec /m /v:m /t:Rebuild /clp:Summary")] + [InlineData(new string[] { "-f", "framework" }, @"exec /m /v:m /t:Build /p:TargetFramework=framework /clp:Summary")] + [InlineData(new string[] { "--framework", "framework" }, @"exec /m /v:m /t:Build /p:TargetFramework=framework /clp:Summary")] + [InlineData(new string[] { "-r", "runtime" }, @"exec /m /v:m /t:Build /p:RuntimeIdentifier=runtime /clp:Summary")] + [InlineData(new string[] { "--runtime", "runtime" }, @"exec /m /v:m /t:Build /p:RuntimeIdentifier=runtime /clp:Summary")] + [InlineData(new string[] { "-c", "configuration" }, @"exec /m /v:m /t:Build /p:Configuration=configuration /clp:Summary")] + [InlineData(new string[] { "--configuration", "configuration" }, @"exec /m /v:m /t:Build /p:Configuration=configuration /clp:Summary")] + [InlineData(new string[] { "--version-suffix", "mysuffix" }, @"exec /m /v:m /t:Build /p:VersionSuffix=mysuffix /clp:Summary")] + [InlineData(new string[] { "--no-dependencies" }, @"exec /m /v:m /t:Build /p:BuildProjectReferences=false /clp:Summary")] + [InlineData(new string[] { "-v", "verbosity" }, @"exec /m /v:m /t:Build /verbosity:verbosity /clp:Summary")] + [InlineData(new string[] { "--verbosity", "verbosity" }, @"exec /m /v:m /t:Build /verbosity:verbosity /clp:Summary")] + [InlineData(new string[] { "--no-incremental", "-o", "myoutput", "-r", "myruntime", "-v", "diag" }, @"exec /m /v:m /t:Rebuild /p:OutputPath=myoutput /p:RuntimeIdentifier=myruntime /verbosity:diag /clp:Summary")] + public void MsbuildInvocationIsCorrect(string[] args, string expectedCommand) + { + var msbuildPath = ""; + BuildCommand.FromArgs(args, msbuildPath) + .GetProcessStartInfo().Arguments.Should().Be(expectedCommand); + throw new NotImplementedException(); + } + } +} diff --git a/test/dotnet-msbuild.Tests/GivenDotnetListInvocation.cs b/test/dotnet-msbuild.Tests/GivenDotnetListInvocation.cs new file mode 100644 index 000000000..08b297f1f --- /dev/null +++ b/test/dotnet-msbuild.Tests/GivenDotnetListInvocation.cs @@ -0,0 +1,35 @@ +using Microsoft.DotNet.Tools.Build; +using FluentAssertions; +using Xunit; +using System; + +namespace Microsoft.DotNet.Cli.MSBuild.Tests +{ + public class GivenDotnetListInvocation + { + [Theory] + [InlineData(new string[] { }, @"exec /m /v:m /t:Build /clp:Summary")] + [InlineData(new string[] { "-o", "foo" }, @"exec /m /v:m /t:Build /p:OutputPath=foo /clp:Summary")] + [InlineData(new string[] { "--output", "foo" }, @"exec /m /v:m /t:Build /p:OutputPath=foo /clp:Summary")] + [InlineData(new string[] { "-o", "foo1 foo2" }, @"exec /m /v:m /t:Build ""/p:OutputPath=foo1 foo2"" /clp:Summary")] + [InlineData(new string[] { "--no-incremental" }, @"exec /m /v:m /t:Rebuild /clp:Summary")] + [InlineData(new string[] { "-f", "framework" }, @"exec /m /v:m /t:Build /p:TargetFramework=framework /clp:Summary")] + [InlineData(new string[] { "--framework", "framework" }, @"exec /m /v:m /t:Build /p:TargetFramework=framework /clp:Summary")] + [InlineData(new string[] { "-r", "runtime" }, @"exec /m /v:m /t:Build /p:RuntimeIdentifier=runtime /clp:Summary")] + [InlineData(new string[] { "--runtime", "runtime" }, @"exec /m /v:m /t:Build /p:RuntimeIdentifier=runtime /clp:Summary")] + [InlineData(new string[] { "-c", "configuration" }, @"exec /m /v:m /t:Build /p:Configuration=configuration /clp:Summary")] + [InlineData(new string[] { "--configuration", "configuration" }, @"exec /m /v:m /t:Build /p:Configuration=configuration /clp:Summary")] + [InlineData(new string[] { "--version-suffix", "mysuffix" }, @"exec /m /v:m /t:Build /p:VersionSuffix=mysuffix /clp:Summary")] + [InlineData(new string[] { "--no-dependencies" }, @"exec /m /v:m /t:Build /p:BuildProjectReferences=false /clp:Summary")] + [InlineData(new string[] { "-v", "verbosity" }, @"exec /m /v:m /t:Build /verbosity:verbosity /clp:Summary")] + [InlineData(new string[] { "--verbosity", "verbosity" }, @"exec /m /v:m /t:Build /verbosity:verbosity /clp:Summary")] + [InlineData(new string[] { "--no-incremental", "-o", "myoutput", "-r", "myruntime", "-v", "diag" }, @"exec /m /v:m /t:Rebuild /p:OutputPath=myoutput /p:RuntimeIdentifier=myruntime /verbosity:diag /clp:Summary")] + public void MsbuildInvocationIsCorrect(string[] args, string expectedCommand) + { + var msbuildPath = ""; + BuildCommand.FromArgs(args, msbuildPath) + .GetProcessStartInfo().Arguments.Should().Be(expectedCommand); + throw new NotImplementedException(); + } + } +} diff --git a/test/dotnet-msbuild.Tests/GivenDotnetMsbuildInvocation.cs b/test/dotnet-msbuild.Tests/GivenDotnetMsbuildInvocation.cs new file mode 100644 index 000000000..476f88fba --- /dev/null +++ b/test/dotnet-msbuild.Tests/GivenDotnetMsbuildInvocation.cs @@ -0,0 +1,35 @@ +using Microsoft.DotNet.Tools.Build; +using FluentAssertions; +using Xunit; +using System; + +namespace Microsoft.DotNet.Cli.MSBuild.Tests +{ + public class GivenDotnetMsbuildInvocation + { + [Theory] + [InlineData(new string[] { }, @"exec /m /v:m /t:Build /clp:Summary")] + [InlineData(new string[] { "-o", "foo" }, @"exec /m /v:m /t:Build /p:OutputPath=foo /clp:Summary")] + [InlineData(new string[] { "--output", "foo" }, @"exec /m /v:m /t:Build /p:OutputPath=foo /clp:Summary")] + [InlineData(new string[] { "-o", "foo1 foo2" }, @"exec /m /v:m /t:Build ""/p:OutputPath=foo1 foo2"" /clp:Summary")] + [InlineData(new string[] { "--no-incremental" }, @"exec /m /v:m /t:Rebuild /clp:Summary")] + [InlineData(new string[] { "-f", "framework" }, @"exec /m /v:m /t:Build /p:TargetFramework=framework /clp:Summary")] + [InlineData(new string[] { "--framework", "framework" }, @"exec /m /v:m /t:Build /p:TargetFramework=framework /clp:Summary")] + [InlineData(new string[] { "-r", "runtime" }, @"exec /m /v:m /t:Build /p:RuntimeIdentifier=runtime /clp:Summary")] + [InlineData(new string[] { "--runtime", "runtime" }, @"exec /m /v:m /t:Build /p:RuntimeIdentifier=runtime /clp:Summary")] + [InlineData(new string[] { "-c", "configuration" }, @"exec /m /v:m /t:Build /p:Configuration=configuration /clp:Summary")] + [InlineData(new string[] { "--configuration", "configuration" }, @"exec /m /v:m /t:Build /p:Configuration=configuration /clp:Summary")] + [InlineData(new string[] { "--version-suffix", "mysuffix" }, @"exec /m /v:m /t:Build /p:VersionSuffix=mysuffix /clp:Summary")] + [InlineData(new string[] { "--no-dependencies" }, @"exec /m /v:m /t:Build /p:BuildProjectReferences=false /clp:Summary")] + [InlineData(new string[] { "-v", "verbosity" }, @"exec /m /v:m /t:Build /verbosity:verbosity /clp:Summary")] + [InlineData(new string[] { "--verbosity", "verbosity" }, @"exec /m /v:m /t:Build /verbosity:verbosity /clp:Summary")] + [InlineData(new string[] { "--no-incremental", "-o", "myoutput", "-r", "myruntime", "-v", "diag" }, @"exec /m /v:m /t:Rebuild /p:OutputPath=myoutput /p:RuntimeIdentifier=myruntime /verbosity:diag /clp:Summary")] + public void MsbuildInvocationIsCorrect(string[] args, string expectedCommand) + { + var msbuildPath = ""; + BuildCommand.FromArgs(args, msbuildPath) + .GetProcessStartInfo().Arguments.Should().Be(expectedCommand); + throw new NotImplementedException(); + } + } +} diff --git a/test/dotnet-msbuild.Tests/GivenDotnetPackInvocation.cs b/test/dotnet-msbuild.Tests/GivenDotnetPackInvocation.cs new file mode 100644 index 000000000..7fbdc0443 --- /dev/null +++ b/test/dotnet-msbuild.Tests/GivenDotnetPackInvocation.cs @@ -0,0 +1,35 @@ +using Microsoft.DotNet.Tools.Build; +using FluentAssertions; +using Xunit; +using System; + +namespace Microsoft.DotNet.Cli.MSBuild.Tests +{ + public class GivenDotnetPackInvocation + { + [Theory] + [InlineData(new string[] { }, @"exec /m /v:m /t:Build /clp:Summary")] + [InlineData(new string[] { "-o", "foo" }, @"exec /m /v:m /t:Build /p:OutputPath=foo /clp:Summary")] + [InlineData(new string[] { "--output", "foo" }, @"exec /m /v:m /t:Build /p:OutputPath=foo /clp:Summary")] + [InlineData(new string[] { "-o", "foo1 foo2" }, @"exec /m /v:m /t:Build ""/p:OutputPath=foo1 foo2"" /clp:Summary")] + [InlineData(new string[] { "--no-incremental" }, @"exec /m /v:m /t:Rebuild /clp:Summary")] + [InlineData(new string[] { "-f", "framework" }, @"exec /m /v:m /t:Build /p:TargetFramework=framework /clp:Summary")] + [InlineData(new string[] { "--framework", "framework" }, @"exec /m /v:m /t:Build /p:TargetFramework=framework /clp:Summary")] + [InlineData(new string[] { "-r", "runtime" }, @"exec /m /v:m /t:Build /p:RuntimeIdentifier=runtime /clp:Summary")] + [InlineData(new string[] { "--runtime", "runtime" }, @"exec /m /v:m /t:Build /p:RuntimeIdentifier=runtime /clp:Summary")] + [InlineData(new string[] { "-c", "configuration" }, @"exec /m /v:m /t:Build /p:Configuration=configuration /clp:Summary")] + [InlineData(new string[] { "--configuration", "configuration" }, @"exec /m /v:m /t:Build /p:Configuration=configuration /clp:Summary")] + [InlineData(new string[] { "--version-suffix", "mysuffix" }, @"exec /m /v:m /t:Build /p:VersionSuffix=mysuffix /clp:Summary")] + [InlineData(new string[] { "--no-dependencies" }, @"exec /m /v:m /t:Build /p:BuildProjectReferences=false /clp:Summary")] + [InlineData(new string[] { "-v", "verbosity" }, @"exec /m /v:m /t:Build /verbosity:verbosity /clp:Summary")] + [InlineData(new string[] { "--verbosity", "verbosity" }, @"exec /m /v:m /t:Build /verbosity:verbosity /clp:Summary")] + [InlineData(new string[] { "--no-incremental", "-o", "myoutput", "-r", "myruntime", "-v", "diag" }, @"exec /m /v:m /t:Rebuild /p:OutputPath=myoutput /p:RuntimeIdentifier=myruntime /verbosity:diag /clp:Summary")] + public void MsbuildInvocationIsCorrect(string[] args, string expectedCommand) + { + var msbuildPath = ""; + BuildCommand.FromArgs(args, msbuildPath) + .GetProcessStartInfo().Arguments.Should().Be(expectedCommand); + throw new NotImplementedException(); + } + } +} diff --git a/test/dotnet-msbuild.Tests/GivenDotnetPublishInvocation.cs b/test/dotnet-msbuild.Tests/GivenDotnetPublishInvocation.cs new file mode 100644 index 000000000..8081c19df --- /dev/null +++ b/test/dotnet-msbuild.Tests/GivenDotnetPublishInvocation.cs @@ -0,0 +1,35 @@ +using Microsoft.DotNet.Tools.Build; +using FluentAssertions; +using Xunit; +using System; + +namespace Microsoft.DotNet.Cli.MSBuild.Tests +{ + public class GivenDotnetPublishInvocation + { + [Theory] + [InlineData(new string[] { }, @"exec /m /v:m /t:Build /clp:Summary")] + [InlineData(new string[] { "-o", "foo" }, @"exec /m /v:m /t:Build /p:OutputPath=foo /clp:Summary")] + [InlineData(new string[] { "--output", "foo" }, @"exec /m /v:m /t:Build /p:OutputPath=foo /clp:Summary")] + [InlineData(new string[] { "-o", "foo1 foo2" }, @"exec /m /v:m /t:Build ""/p:OutputPath=foo1 foo2"" /clp:Summary")] + [InlineData(new string[] { "--no-incremental" }, @"exec /m /v:m /t:Rebuild /clp:Summary")] + [InlineData(new string[] { "-f", "framework" }, @"exec /m /v:m /t:Build /p:TargetFramework=framework /clp:Summary")] + [InlineData(new string[] { "--framework", "framework" }, @"exec /m /v:m /t:Build /p:TargetFramework=framework /clp:Summary")] + [InlineData(new string[] { "-r", "runtime" }, @"exec /m /v:m /t:Build /p:RuntimeIdentifier=runtime /clp:Summary")] + [InlineData(new string[] { "--runtime", "runtime" }, @"exec /m /v:m /t:Build /p:RuntimeIdentifier=runtime /clp:Summary")] + [InlineData(new string[] { "-c", "configuration" }, @"exec /m /v:m /t:Build /p:Configuration=configuration /clp:Summary")] + [InlineData(new string[] { "--configuration", "configuration" }, @"exec /m /v:m /t:Build /p:Configuration=configuration /clp:Summary")] + [InlineData(new string[] { "--version-suffix", "mysuffix" }, @"exec /m /v:m /t:Build /p:VersionSuffix=mysuffix /clp:Summary")] + [InlineData(new string[] { "--no-dependencies" }, @"exec /m /v:m /t:Build /p:BuildProjectReferences=false /clp:Summary")] + [InlineData(new string[] { "-v", "verbosity" }, @"exec /m /v:m /t:Build /verbosity:verbosity /clp:Summary")] + [InlineData(new string[] { "--verbosity", "verbosity" }, @"exec /m /v:m /t:Build /verbosity:verbosity /clp:Summary")] + [InlineData(new string[] { "--no-incremental", "-o", "myoutput", "-r", "myruntime", "-v", "diag" }, @"exec /m /v:m /t:Rebuild /p:OutputPath=myoutput /p:RuntimeIdentifier=myruntime /verbosity:diag /clp:Summary")] + public void MsbuildInvocationIsCorrect(string[] args, string expectedCommand) + { + var msbuildPath = ""; + BuildCommand.FromArgs(args, msbuildPath) + .GetProcessStartInfo().Arguments.Should().Be(expectedCommand); + throw new NotImplementedException(); + } + } +} diff --git a/test/dotnet-msbuild.Tests/GivenDotnetRemoveInvocation.cs b/test/dotnet-msbuild.Tests/GivenDotnetRemoveInvocation.cs new file mode 100644 index 000000000..e4353a610 --- /dev/null +++ b/test/dotnet-msbuild.Tests/GivenDotnetRemoveInvocation.cs @@ -0,0 +1,35 @@ +using Microsoft.DotNet.Tools.Build; +using FluentAssertions; +using Xunit; +using System; + +namespace Microsoft.DotNet.Cli.MSBuild.Tests +{ + public class GivenDotnetRemoveInvocation + { + [Theory] + [InlineData(new string[] { }, @"exec /m /v:m /t:Build /clp:Summary")] + [InlineData(new string[] { "-o", "foo" }, @"exec /m /v:m /t:Build /p:OutputPath=foo /clp:Summary")] + [InlineData(new string[] { "--output", "foo" }, @"exec /m /v:m /t:Build /p:OutputPath=foo /clp:Summary")] + [InlineData(new string[] { "-o", "foo1 foo2" }, @"exec /m /v:m /t:Build ""/p:OutputPath=foo1 foo2"" /clp:Summary")] + [InlineData(new string[] { "--no-incremental" }, @"exec /m /v:m /t:Rebuild /clp:Summary")] + [InlineData(new string[] { "-f", "framework" }, @"exec /m /v:m /t:Build /p:TargetFramework=framework /clp:Summary")] + [InlineData(new string[] { "--framework", "framework" }, @"exec /m /v:m /t:Build /p:TargetFramework=framework /clp:Summary")] + [InlineData(new string[] { "-r", "runtime" }, @"exec /m /v:m /t:Build /p:RuntimeIdentifier=runtime /clp:Summary")] + [InlineData(new string[] { "--runtime", "runtime" }, @"exec /m /v:m /t:Build /p:RuntimeIdentifier=runtime /clp:Summary")] + [InlineData(new string[] { "-c", "configuration" }, @"exec /m /v:m /t:Build /p:Configuration=configuration /clp:Summary")] + [InlineData(new string[] { "--configuration", "configuration" }, @"exec /m /v:m /t:Build /p:Configuration=configuration /clp:Summary")] + [InlineData(new string[] { "--version-suffix", "mysuffix" }, @"exec /m /v:m /t:Build /p:VersionSuffix=mysuffix /clp:Summary")] + [InlineData(new string[] { "--no-dependencies" }, @"exec /m /v:m /t:Build /p:BuildProjectReferences=false /clp:Summary")] + [InlineData(new string[] { "-v", "verbosity" }, @"exec /m /v:m /t:Build /verbosity:verbosity /clp:Summary")] + [InlineData(new string[] { "--verbosity", "verbosity" }, @"exec /m /v:m /t:Build /verbosity:verbosity /clp:Summary")] + [InlineData(new string[] { "--no-incremental", "-o", "myoutput", "-r", "myruntime", "-v", "diag" }, @"exec /m /v:m /t:Rebuild /p:OutputPath=myoutput /p:RuntimeIdentifier=myruntime /verbosity:diag /clp:Summary")] + public void MsbuildInvocationIsCorrect(string[] args, string expectedCommand) + { + var msbuildPath = ""; + BuildCommand.FromArgs(args, msbuildPath) + .GetProcessStartInfo().Arguments.Should().Be(expectedCommand); + throw new NotImplementedException(); + } + } +} diff --git a/test/dotnet-msbuild.Tests/GivenDotnetRestoreInvocation.cs b/test/dotnet-msbuild.Tests/GivenDotnetRestoreInvocation.cs new file mode 100644 index 000000000..c178869f8 --- /dev/null +++ b/test/dotnet-msbuild.Tests/GivenDotnetRestoreInvocation.cs @@ -0,0 +1,35 @@ +using Microsoft.DotNet.Tools.Build; +using FluentAssertions; +using Xunit; +using System; + +namespace Microsoft.DotNet.Cli.MSBuild.Tests +{ + public class GivenDotnetRestoreInvocation + { + [Theory] + [InlineData(new string[] { }, @"exec /m /v:m /t:Build /clp:Summary")] + [InlineData(new string[] { "-o", "foo" }, @"exec /m /v:m /t:Build /p:OutputPath=foo /clp:Summary")] + [InlineData(new string[] { "--output", "foo" }, @"exec /m /v:m /t:Build /p:OutputPath=foo /clp:Summary")] + [InlineData(new string[] { "-o", "foo1 foo2" }, @"exec /m /v:m /t:Build ""/p:OutputPath=foo1 foo2"" /clp:Summary")] + [InlineData(new string[] { "--no-incremental" }, @"exec /m /v:m /t:Rebuild /clp:Summary")] + [InlineData(new string[] { "-f", "framework" }, @"exec /m /v:m /t:Build /p:TargetFramework=framework /clp:Summary")] + [InlineData(new string[] { "--framework", "framework" }, @"exec /m /v:m /t:Build /p:TargetFramework=framework /clp:Summary")] + [InlineData(new string[] { "-r", "runtime" }, @"exec /m /v:m /t:Build /p:RuntimeIdentifier=runtime /clp:Summary")] + [InlineData(new string[] { "--runtime", "runtime" }, @"exec /m /v:m /t:Build /p:RuntimeIdentifier=runtime /clp:Summary")] + [InlineData(new string[] { "-c", "configuration" }, @"exec /m /v:m /t:Build /p:Configuration=configuration /clp:Summary")] + [InlineData(new string[] { "--configuration", "configuration" }, @"exec /m /v:m /t:Build /p:Configuration=configuration /clp:Summary")] + [InlineData(new string[] { "--version-suffix", "mysuffix" }, @"exec /m /v:m /t:Build /p:VersionSuffix=mysuffix /clp:Summary")] + [InlineData(new string[] { "--no-dependencies" }, @"exec /m /v:m /t:Build /p:BuildProjectReferences=false /clp:Summary")] + [InlineData(new string[] { "-v", "verbosity" }, @"exec /m /v:m /t:Build /verbosity:verbosity /clp:Summary")] + [InlineData(new string[] { "--verbosity", "verbosity" }, @"exec /m /v:m /t:Build /verbosity:verbosity /clp:Summary")] + [InlineData(new string[] { "--no-incremental", "-o", "myoutput", "-r", "myruntime", "-v", "diag" }, @"exec /m /v:m /t:Rebuild /p:OutputPath=myoutput /p:RuntimeIdentifier=myruntime /verbosity:diag /clp:Summary")] + public void MsbuildInvocationIsCorrect(string[] args, string expectedCommand) + { + var msbuildPath = ""; + BuildCommand.FromArgs(args, msbuildPath) + .GetProcessStartInfo().Arguments.Should().Be(expectedCommand); + throw new NotImplementedException(); + } + } +} diff --git a/test/dotnet-msbuild.Tests/GivenDotnetRunInvocation.cs b/test/dotnet-msbuild.Tests/GivenDotnetRunInvocation.cs new file mode 100644 index 000000000..0bb0486db --- /dev/null +++ b/test/dotnet-msbuild.Tests/GivenDotnetRunInvocation.cs @@ -0,0 +1,35 @@ +using Microsoft.DotNet.Tools.Build; +using FluentAssertions; +using Xunit; +using System; + +namespace Microsoft.DotNet.Cli.MSBuild.Tests +{ + public class GivenDotnetRunInvocation + { + [Theory] + [InlineData(new string[] { }, @"exec /m /v:m /t:Build /clp:Summary")] + [InlineData(new string[] { "-o", "foo" }, @"exec /m /v:m /t:Build /p:OutputPath=foo /clp:Summary")] + [InlineData(new string[] { "--output", "foo" }, @"exec /m /v:m /t:Build /p:OutputPath=foo /clp:Summary")] + [InlineData(new string[] { "-o", "foo1 foo2" }, @"exec /m /v:m /t:Build ""/p:OutputPath=foo1 foo2"" /clp:Summary")] + [InlineData(new string[] { "--no-incremental" }, @"exec /m /v:m /t:Rebuild /clp:Summary")] + [InlineData(new string[] { "-f", "framework" }, @"exec /m /v:m /t:Build /p:TargetFramework=framework /clp:Summary")] + [InlineData(new string[] { "--framework", "framework" }, @"exec /m /v:m /t:Build /p:TargetFramework=framework /clp:Summary")] + [InlineData(new string[] { "-r", "runtime" }, @"exec /m /v:m /t:Build /p:RuntimeIdentifier=runtime /clp:Summary")] + [InlineData(new string[] { "--runtime", "runtime" }, @"exec /m /v:m /t:Build /p:RuntimeIdentifier=runtime /clp:Summary")] + [InlineData(new string[] { "-c", "configuration" }, @"exec /m /v:m /t:Build /p:Configuration=configuration /clp:Summary")] + [InlineData(new string[] { "--configuration", "configuration" }, @"exec /m /v:m /t:Build /p:Configuration=configuration /clp:Summary")] + [InlineData(new string[] { "--version-suffix", "mysuffix" }, @"exec /m /v:m /t:Build /p:VersionSuffix=mysuffix /clp:Summary")] + [InlineData(new string[] { "--no-dependencies" }, @"exec /m /v:m /t:Build /p:BuildProjectReferences=false /clp:Summary")] + [InlineData(new string[] { "-v", "verbosity" }, @"exec /m /v:m /t:Build /verbosity:verbosity /clp:Summary")] + [InlineData(new string[] { "--verbosity", "verbosity" }, @"exec /m /v:m /t:Build /verbosity:verbosity /clp:Summary")] + [InlineData(new string[] { "--no-incremental", "-o", "myoutput", "-r", "myruntime", "-v", "diag" }, @"exec /m /v:m /t:Rebuild /p:OutputPath=myoutput /p:RuntimeIdentifier=myruntime /verbosity:diag /clp:Summary")] + public void MsbuildInvocationIsCorrect(string[] args, string expectedCommand) + { + var msbuildPath = ""; + BuildCommand.FromArgs(args, msbuildPath) + .GetProcessStartInfo().Arguments.Should().Be(expectedCommand); + throw new NotImplementedException(); + } + } +} diff --git a/test/dotnet-msbuild.Tests/GivenDotnetSlnInvocation.cs b/test/dotnet-msbuild.Tests/GivenDotnetSlnInvocation.cs new file mode 100644 index 000000000..50eef976d --- /dev/null +++ b/test/dotnet-msbuild.Tests/GivenDotnetSlnInvocation.cs @@ -0,0 +1,35 @@ +using Microsoft.DotNet.Tools.Build; +using FluentAssertions; +using Xunit; +using System; + +namespace Microsoft.DotNet.Cli.MSBuild.Tests +{ + public class GivenDotnetSlnInvocation + { + [Theory] + [InlineData(new string[] { }, @"exec /m /v:m /t:Build /clp:Summary")] + [InlineData(new string[] { "-o", "foo" }, @"exec /m /v:m /t:Build /p:OutputPath=foo /clp:Summary")] + [InlineData(new string[] { "--output", "foo" }, @"exec /m /v:m /t:Build /p:OutputPath=foo /clp:Summary")] + [InlineData(new string[] { "-o", "foo1 foo2" }, @"exec /m /v:m /t:Build ""/p:OutputPath=foo1 foo2"" /clp:Summary")] + [InlineData(new string[] { "--no-incremental" }, @"exec /m /v:m /t:Rebuild /clp:Summary")] + [InlineData(new string[] { "-f", "framework" }, @"exec /m /v:m /t:Build /p:TargetFramework=framework /clp:Summary")] + [InlineData(new string[] { "--framework", "framework" }, @"exec /m /v:m /t:Build /p:TargetFramework=framework /clp:Summary")] + [InlineData(new string[] { "-r", "runtime" }, @"exec /m /v:m /t:Build /p:RuntimeIdentifier=runtime /clp:Summary")] + [InlineData(new string[] { "--runtime", "runtime" }, @"exec /m /v:m /t:Build /p:RuntimeIdentifier=runtime /clp:Summary")] + [InlineData(new string[] { "-c", "configuration" }, @"exec /m /v:m /t:Build /p:Configuration=configuration /clp:Summary")] + [InlineData(new string[] { "--configuration", "configuration" }, @"exec /m /v:m /t:Build /p:Configuration=configuration /clp:Summary")] + [InlineData(new string[] { "--version-suffix", "mysuffix" }, @"exec /m /v:m /t:Build /p:VersionSuffix=mysuffix /clp:Summary")] + [InlineData(new string[] { "--no-dependencies" }, @"exec /m /v:m /t:Build /p:BuildProjectReferences=false /clp:Summary")] + [InlineData(new string[] { "-v", "verbosity" }, @"exec /m /v:m /t:Build /verbosity:verbosity /clp:Summary")] + [InlineData(new string[] { "--verbosity", "verbosity" }, @"exec /m /v:m /t:Build /verbosity:verbosity /clp:Summary")] + [InlineData(new string[] { "--no-incremental", "-o", "myoutput", "-r", "myruntime", "-v", "diag" }, @"exec /m /v:m /t:Rebuild /p:OutputPath=myoutput /p:RuntimeIdentifier=myruntime /verbosity:diag /clp:Summary")] + public void MsbuildInvocationIsCorrect(string[] args, string expectedCommand) + { + var msbuildPath = ""; + BuildCommand.FromArgs(args, msbuildPath) + .GetProcessStartInfo().Arguments.Should().Be(expectedCommand); + throw new NotImplementedException(); + } + } +} diff --git a/test/dotnet-msbuild.Tests/GivenDotnetTestInvocation.cs b/test/dotnet-msbuild.Tests/GivenDotnetTestInvocation.cs new file mode 100644 index 000000000..701aee7a1 --- /dev/null +++ b/test/dotnet-msbuild.Tests/GivenDotnetTestInvocation.cs @@ -0,0 +1,35 @@ +using Microsoft.DotNet.Tools.Build; +using FluentAssertions; +using Xunit; +using System; + +namespace Microsoft.DotNet.Cli.MSBuild.Tests +{ + public class GivenDotnetTestInvocation + { + [Theory] + [InlineData(new string[] { }, @"exec /m /v:m /t:Build /clp:Summary")] + [InlineData(new string[] { "-o", "foo" }, @"exec /m /v:m /t:Build /p:OutputPath=foo /clp:Summary")] + [InlineData(new string[] { "--output", "foo" }, @"exec /m /v:m /t:Build /p:OutputPath=foo /clp:Summary")] + [InlineData(new string[] { "-o", "foo1 foo2" }, @"exec /m /v:m /t:Build ""/p:OutputPath=foo1 foo2"" /clp:Summary")] + [InlineData(new string[] { "--no-incremental" }, @"exec /m /v:m /t:Rebuild /clp:Summary")] + [InlineData(new string[] { "-f", "framework" }, @"exec /m /v:m /t:Build /p:TargetFramework=framework /clp:Summary")] + [InlineData(new string[] { "--framework", "framework" }, @"exec /m /v:m /t:Build /p:TargetFramework=framework /clp:Summary")] + [InlineData(new string[] { "-r", "runtime" }, @"exec /m /v:m /t:Build /p:RuntimeIdentifier=runtime /clp:Summary")] + [InlineData(new string[] { "--runtime", "runtime" }, @"exec /m /v:m /t:Build /p:RuntimeIdentifier=runtime /clp:Summary")] + [InlineData(new string[] { "-c", "configuration" }, @"exec /m /v:m /t:Build /p:Configuration=configuration /clp:Summary")] + [InlineData(new string[] { "--configuration", "configuration" }, @"exec /m /v:m /t:Build /p:Configuration=configuration /clp:Summary")] + [InlineData(new string[] { "--version-suffix", "mysuffix" }, @"exec /m /v:m /t:Build /p:VersionSuffix=mysuffix /clp:Summary")] + [InlineData(new string[] { "--no-dependencies" }, @"exec /m /v:m /t:Build /p:BuildProjectReferences=false /clp:Summary")] + [InlineData(new string[] { "-v", "verbosity" }, @"exec /m /v:m /t:Build /verbosity:verbosity /clp:Summary")] + [InlineData(new string[] { "--verbosity", "verbosity" }, @"exec /m /v:m /t:Build /verbosity:verbosity /clp:Summary")] + [InlineData(new string[] { "--no-incremental", "-o", "myoutput", "-r", "myruntime", "-v", "diag" }, @"exec /m /v:m /t:Rebuild /p:OutputPath=myoutput /p:RuntimeIdentifier=myruntime /verbosity:diag /clp:Summary")] + public void MsbuildInvocationIsCorrect(string[] args, string expectedCommand) + { + var msbuildPath = ""; + BuildCommand.FromArgs(args, msbuildPath) + .GetProcessStartInfo().Arguments.Should().Be(expectedCommand); + throw new NotImplementedException(); + } + } +} diff --git a/test/dotnet-msbuild.Tests/GivenDotnetVsTestInvocation.cs b/test/dotnet-msbuild.Tests/GivenDotnetVsTestInvocation.cs new file mode 100644 index 000000000..a41c40e18 --- /dev/null +++ b/test/dotnet-msbuild.Tests/GivenDotnetVsTestInvocation.cs @@ -0,0 +1,35 @@ +using Microsoft.DotNet.Tools.Build; +using FluentAssertions; +using Xunit; +using System; + +namespace Microsoft.DotNet.Cli.MSBuild.Tests +{ + public class GivenDotnetVsTestInvocation + { + [Theory] + [InlineData(new string[] { }, @"exec /m /v:m /t:Build /clp:Summary")] + [InlineData(new string[] { "-o", "foo" }, @"exec /m /v:m /t:Build /p:OutputPath=foo /clp:Summary")] + [InlineData(new string[] { "--output", "foo" }, @"exec /m /v:m /t:Build /p:OutputPath=foo /clp:Summary")] + [InlineData(new string[] { "-o", "foo1 foo2" }, @"exec /m /v:m /t:Build ""/p:OutputPath=foo1 foo2"" /clp:Summary")] + [InlineData(new string[] { "--no-incremental" }, @"exec /m /v:m /t:Rebuild /clp:Summary")] + [InlineData(new string[] { "-f", "framework" }, @"exec /m /v:m /t:Build /p:TargetFramework=framework /clp:Summary")] + [InlineData(new string[] { "--framework", "framework" }, @"exec /m /v:m /t:Build /p:TargetFramework=framework /clp:Summary")] + [InlineData(new string[] { "-r", "runtime" }, @"exec /m /v:m /t:Build /p:RuntimeIdentifier=runtime /clp:Summary")] + [InlineData(new string[] { "--runtime", "runtime" }, @"exec /m /v:m /t:Build /p:RuntimeIdentifier=runtime /clp:Summary")] + [InlineData(new string[] { "-c", "configuration" }, @"exec /m /v:m /t:Build /p:Configuration=configuration /clp:Summary")] + [InlineData(new string[] { "--configuration", "configuration" }, @"exec /m /v:m /t:Build /p:Configuration=configuration /clp:Summary")] + [InlineData(new string[] { "--version-suffix", "mysuffix" }, @"exec /m /v:m /t:Build /p:VersionSuffix=mysuffix /clp:Summary")] + [InlineData(new string[] { "--no-dependencies" }, @"exec /m /v:m /t:Build /p:BuildProjectReferences=false /clp:Summary")] + [InlineData(new string[] { "-v", "verbosity" }, @"exec /m /v:m /t:Build /verbosity:verbosity /clp:Summary")] + [InlineData(new string[] { "--verbosity", "verbosity" }, @"exec /m /v:m /t:Build /verbosity:verbosity /clp:Summary")] + [InlineData(new string[] { "--no-incremental", "-o", "myoutput", "-r", "myruntime", "-v", "diag" }, @"exec /m /v:m /t:Rebuild /p:OutputPath=myoutput /p:RuntimeIdentifier=myruntime /verbosity:diag /clp:Summary")] + public void MsbuildInvocationIsCorrect(string[] args, string expectedCommand) + { + var msbuildPath = ""; + BuildCommand.FromArgs(args, msbuildPath) + .GetProcessStartInfo().Arguments.Should().Be(expectedCommand); + throw new NotImplementedException(); + } + } +}