Skip to content

Commit c0f829a

Browse files
author
Mirroring
committed
Merge commit '4931390fea92a79afec2c894097348a1186feafb'
2 parents 825dbfa + 4931390 commit c0f829a

File tree

3 files changed

+18
-9
lines changed

3 files changed

+18
-9
lines changed

src/Cli/dotnet/commands/dotnet-sln/SlnArgumentValidator.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
using Microsoft.DotNet.Cli;
55
using Microsoft.DotNet.Cli.Utils;
6+
using Microsoft.DotNet.Tools.Common;
67

78
namespace Microsoft.DotNet.Tools.Sln
89
{
@@ -29,7 +30,7 @@ public static void ParseAndValidateArguments(string _fileOrDirectory, IReadOnlyC
2930
throw new GracefulException(LocalizableStrings.SolutionFolderAndInRootMutuallyExclusive);
3031
}
3132

32-
var slnFile = _arguments.FirstOrDefault(path => path.EndsWith(".sln"));
33+
var slnFile = _arguments.FirstOrDefault(path => path.HasExtension(".sln") || path.HasExtension(".slnx"));
3334
if (slnFile != null)
3435
{
3536
string args;
@@ -46,7 +47,7 @@ public static void ParseAndValidateArguments(string _fileOrDirectory, IReadOnlyC
4647
args = "";
4748
}
4849

49-
var projectArgs = string.Join(" ", _arguments.Where(path => !path.EndsWith(".sln")));
50+
var projectArgs = string.Join(" ", _arguments.Where(path => !path.HasExtension(".sln") && !path.HasExtension(".slnx")));
5051
string command = commandType == CommandType.Add ? "add" : "remove";
5152
throw new GracefulException(new string[]
5253
{

test/dotnet-sln.Tests/GivenDotnetSlnAdd.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1153,6 +1153,8 @@ private string GetExpectedSlnContents(
11531153
[Theory]
11541154
[InlineData("sln", ".sln")]
11551155
[InlineData("solution", ".sln")]
1156+
[InlineData("sln", ".slnx")]
1157+
[InlineData("solution", ".slnx")]
11561158
public void WhenSolutionIsPassedAsProjectItPrintsSuggestionAndUsage(string solutionCommand, string solutionExtension)
11571159
{
11581160
VerifySuggestionAndUsage(solutionCommand, "", solutionExtension);
@@ -1161,6 +1163,8 @@ public void WhenSolutionIsPassedAsProjectItPrintsSuggestionAndUsage(string solut
11611163
[Theory]
11621164
[InlineData("sln", ".sln")]
11631165
[InlineData("solution", ".sln")]
1166+
[InlineData("sln", ".slnx")]
1167+
[InlineData("solution", ".slnx")]
11641168
public void WhenSolutionIsPassedAsProjectWithInRootItPrintsSuggestionAndUsage(string solutionCommand, string solutionExtension)
11651169
{
11661170
VerifySuggestionAndUsage(solutionCommand, "--in-root", solutionExtension);
@@ -1169,6 +1173,8 @@ public void WhenSolutionIsPassedAsProjectWithInRootItPrintsSuggestionAndUsage(st
11691173
[Theory]
11701174
[InlineData("sln", ".sln")]
11711175
[InlineData("solution", ".sln")]
1176+
[InlineData("sln", ".slnx")]
1177+
[InlineData("solution", ".slnx")]
11721178
public void WhenSolutionIsPassedAsProjectWithSolutionFolderItPrintsSuggestionAndUsage(string solutionCommand, string solutionExtension)
11731179
{
11741180
VerifySuggestionAndUsage(solutionCommand, "--solution-folder", solutionExtension);

test/dotnet-sln.Tests/GivenDotnetSlnRemove.cs

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -627,24 +627,26 @@ public void WhenProjectIsRemovedThenDependenciesOnProjectAreAlsoRemoved(string s
627627
}
628628

629629
[Theory]
630-
[InlineData("sln")]
631-
[InlineData("solution")]
632-
public void WhenSolutionIsPassedAsProjectItPrintsSuggestionAndUsage(string solutionCommand)
630+
[InlineData("sln", ".sln")]
631+
[InlineData("solution", ".sln")]
632+
[InlineData("sln", ".slnx")]
633+
[InlineData("solution", ".slnx")]
634+
public void WhenSolutionIsPassedAsProjectItPrintsSuggestionAndUsage(string solutionCommand, string solutionExtension)
633635
{
634636
var projectDirectory = _testAssetsManager
635-
.CopyTestAsset("TestAppWithSlnAndCsprojFiles", identifier: $"{solutionCommand}")
637+
.CopyTestAsset("TestAppWithSlnAndCsprojFiles", identifier: $"{solutionCommand}{solutionExtension}")
636638
.WithSource()
637639
.Path;
638640

639641
var projectArg = Path.Combine("Lib", "Lib.csproj");
640642
var cmd = new DotnetCommand(Log)
641643
.WithWorkingDirectory(projectDirectory)
642-
.Execute(solutionCommand, "remove", "App.sln", projectArg);
644+
.Execute(solutionCommand, "remove", $"App{solutionExtension}", projectArg);
643645
cmd.Should().Fail();
644646
cmd.StdErr.Should().BeVisuallyEquivalentTo(
645-
string.Format(CommonLocalizableStrings.SolutionArgumentMisplaced, "App.sln") + Environment.NewLine
647+
string.Format(CommonLocalizableStrings.SolutionArgumentMisplaced, $"App{solutionExtension}") + Environment.NewLine
646648
+ CommonLocalizableStrings.DidYouMean + Environment.NewLine
647-
+ $" dotnet solution App.sln remove {projectArg}"
649+
+ $" dotnet solution App{solutionExtension} remove {projectArg}"
648650
);
649651
cmd.StdOut.Should().BeVisuallyEquivalentToIfNotLocalized("");
650652
}

0 commit comments

Comments
 (0)