Skip to content

Commit

Permalink
Merge pull request dotnet#715 from JoeRobich/validate-folder
Browse files Browse the repository at this point in the history
Add validation when specifying --folder and analyzers
  • Loading branch information
jmarolf committed Jul 2, 2020
2 parents 58b16fc + 4114411 commit 8c996b3
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 0 deletions.
20 changes: 20 additions & 0 deletions src/FormatCommand.cs
Expand Up @@ -54,10 +54,30 @@ internal static RootCommand CreateCommandLineOptions()
};

rootCommand.Description = "dotnet-format";
rootCommand.AddValidator(EnsureFolderNotSpecifiedWhenFixingStyle);
rootCommand.AddValidator(EnsureFolderNotSpecifiedWhenFixingAnalyzers);

return rootCommand;
}

internal static string? EnsureFolderNotSpecifiedWhenFixingAnalyzers(CommandResult symbolResult)
{
var folder = symbolResult.ValueForOption<bool>("--folder");
var fixAnalyzers = symbolResult.OptionResult("--fix-analyzers");
return folder && fixAnalyzers != null
? "Cannot specify the '--folder' option when running analyzers."
: null;
}

internal static string? EnsureFolderNotSpecifiedWhenFixingStyle(CommandResult symbolResult)
{
var folder = symbolResult.ValueForOption<bool>("--folder");
var fixStyle = symbolResult.OptionResult("--fix-style");
return folder && fixStyle != null
? "Cannot specify the '--folder' option when fixing style."
: null;
}

internal static bool WasOptionUsed(this ParseResult result, params string[] aliases)
{
return result.Tokens
Expand Down
26 changes: 26 additions & 0 deletions tests/ProgramTests.cs
Expand Up @@ -167,5 +167,31 @@ public void CommandLine_ProjectArgument_FailsIfSpecifiedTwice()
// Assert
Assert.Equal(1, result.Errors.Count);
}

[Fact]
public void CommandLine_FolderValidation_FailsIfFixAnalyzersSpecified()
{
// Arrange
var sut = FormatCommand.CreateCommandLineOptions();

// Act
var result = sut.Parse(new[] { "--folder", "--fix-analyzers" });

// Assert
Assert.Equal(1, result.Errors.Count);
}

[Fact]
public void CommandLine_FolderValidation_FailsIfFixStyleSpecified()
{
// Arrange
var sut = FormatCommand.CreateCommandLineOptions();

// Act
var result = sut.Parse(new[] { "--folder", "--fix-style" });

// Assert
Assert.Equal(1, result.Errors.Count);
}
}
}

0 comments on commit 8c996b3

Please sign in to comment.