Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add validation when specifying --folder and analyzers #715

Merged
merged 1 commit into from Jul 2, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
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);
}
}
}