2017-03-02 21:04:03 -08:00
// 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 Microsoft.DotNet.Tools.Build ;
2017-02-14 10:41:58 -08:00
using FluentAssertions ;
using Xunit ;
namespace Microsoft.DotNet.Cli.MSBuild.Tests
{
public class GivenDotnetBuildInvocation
{
2017-02-22 17:40:02 -08:00
const string ExpectedPrefix = "exec <msbuildpath> /m /v:m" ;
const string ExpectedSuffix = "/clp:Summary" ;
2017-02-14 11:38:01 -08:00
[Theory]
2017-02-22 17:40:02 -08:00
[InlineData(new string[] { } , "/t:Build" ) ]
[InlineData(new string[] { "-o" , "foo" } , "/t:Build /p:OutputPath=foo" ) ]
2017-03-23 16:40:43 -07:00
[InlineData(new string[] { "-p:Verbosity=diag" } , "/t:Build -p:Verbosity=diag" ) ]
2017-02-22 17:40:02 -08:00
[InlineData(new string[] { "--output" , "foo" } , "/t:Build /p:OutputPath=foo" ) ]
[InlineData(new string[] { "-o" , "foo1 foo2" } , "/t:Build \"/p:OutputPath=foo1 foo2\"" ) ]
[InlineData(new string[] { "--no-incremental" } , "/t:Rebuild" ) ]
2017-03-09 16:39:49 -08:00
[InlineData(new string[] { "-f" , "tfm" } , "/t:Build /p:TargetFramework=tfm" ) ]
[InlineData(new string[] { "--framework" , "tfm" } , "/t:Build /p:TargetFramework=tfm" ) ]
[InlineData(new string[] { "-r" , "rid" } , "/t:Build /p:RuntimeIdentifier=rid" ) ]
[InlineData(new string[] { "--runtime" , "rid" } , "/t:Build /p:RuntimeIdentifier=rid" ) ]
[InlineData(new string[] { "-c" , "config" } , "/t:Build /p:Configuration=config" ) ]
[InlineData(new string[] { "--configuration" , "config" } , "/t:Build /p:Configuration=config" ) ]
2017-02-22 17:40:02 -08:00
[InlineData(new string[] { "--version-suffix" , "mysuffix" } , "/t:Build /p:VersionSuffix=mysuffix" ) ]
[InlineData(new string[] { "--no-dependencies" } , "/t:Build /p:BuildProjectReferences=false" ) ]
2017-03-09 16:39:49 -08:00
[InlineData(new string[] { "-v" , "diag" } , "/t:Build /verbosity:diag" ) ]
[InlineData(new string[] { "--verbosity" , "diag" } , "/t:Build /verbosity:diag" ) ]
2017-02-22 17:40:02 -08:00
[InlineData(new string[] { "--no-incremental" , "-o" , "myoutput" , "-r" , "myruntime" , "-v" , "diag" } , "/t:Rebuild /p:OutputPath=myoutput /p:RuntimeIdentifier=myruntime /verbosity:diag" ) ]
public void MsbuildInvocationIsCorrect ( string [ ] args , string expectedAdditionalArgs )
2017-02-14 10:41:58 -08:00
{
2017-02-22 17:40:02 -08:00
expectedAdditionalArgs = ( string . IsNullOrEmpty ( expectedAdditionalArgs ) ? "" : $" {expectedAdditionalArgs}" ) ;
2017-02-14 11:38:01 -08:00
var msbuildPath = "<msbuildpath>" ;
BuildCommand . FromArgs ( args , msbuildPath )
2017-02-22 17:40:02 -08:00
. GetProcessStartInfo ( ) . Arguments . Should ( ) . Be ( $"{ExpectedPrefix}{expectedAdditionalArgs} {ExpectedSuffix}" ) ;
2017-02-14 10:41:58 -08:00
}
}
}