mirror of
https://github.com/Tyrrrz/CliFx.git
synced 2025-10-25 15:19:17 +00:00
155 lines
4.5 KiB
C#
155 lines
4.5 KiB
C#
using System.Collections.Generic;
|
|
using System.Threading.Tasks;
|
|
using CliFx.Attributes;
|
|
|
|
namespace CliFx.Tests
|
|
{
|
|
public partial class ApplicationSpecs
|
|
{
|
|
[Command]
|
|
private class NonImplementedCommand
|
|
{
|
|
}
|
|
|
|
private class NonAnnotatedCommand : ICommand
|
|
{
|
|
public ValueTask ExecuteAsync(IConsole console) => default;
|
|
}
|
|
|
|
[Command("dup")]
|
|
private class DuplicateNameCommandA : ICommand
|
|
{
|
|
public ValueTask ExecuteAsync(IConsole console) => default;
|
|
}
|
|
|
|
[Command("dup")]
|
|
private class DuplicateNameCommandB : ICommand
|
|
{
|
|
public ValueTask ExecuteAsync(IConsole console) => default;
|
|
}
|
|
|
|
[Command]
|
|
private class DuplicateParameterOrderCommand : ICommand
|
|
{
|
|
[CommandParameter(13)]
|
|
public string? ParameterA { get; set; }
|
|
|
|
[CommandParameter(13)]
|
|
public string? ParameterB { get; set; }
|
|
|
|
public ValueTask ExecuteAsync(IConsole console) => default;
|
|
}
|
|
|
|
[Command]
|
|
private class DuplicateParameterNameCommand : ICommand
|
|
{
|
|
[CommandParameter(0, Name = "param")]
|
|
public string? ParameterA { get; set; }
|
|
|
|
[CommandParameter(1, Name = "param")]
|
|
public string? ParameterB { get; set; }
|
|
|
|
public ValueTask ExecuteAsync(IConsole console) => default;
|
|
}
|
|
|
|
[Command]
|
|
private class MultipleNonScalarParametersCommand : ICommand
|
|
{
|
|
[CommandParameter(0)]
|
|
public IReadOnlyList<string>? ParameterA { get; set; }
|
|
|
|
[CommandParameter(1)]
|
|
public IReadOnlyList<string>? ParameterB { get; set; }
|
|
|
|
public ValueTask ExecuteAsync(IConsole console) => default;
|
|
}
|
|
|
|
[Command]
|
|
private class NonLastNonScalarParameterCommand : ICommand
|
|
{
|
|
[CommandParameter(0)]
|
|
public IReadOnlyList<string>? ParameterA { get; set; }
|
|
|
|
[CommandParameter(1)]
|
|
public string? ParameterB { get; set; }
|
|
|
|
public ValueTask ExecuteAsync(IConsole console) => default;
|
|
}
|
|
|
|
[Command]
|
|
private class EmptyOptionNameCommand : ICommand
|
|
{
|
|
[CommandOption("")]
|
|
public string? Apples { get; set; }
|
|
|
|
public ValueTask ExecuteAsync(IConsole console) => default;
|
|
}
|
|
|
|
[Command]
|
|
private class SingleCharacterOptionNameCommand : ICommand
|
|
{
|
|
[CommandOption("a")]
|
|
public string? Apples { get; set; }
|
|
|
|
public ValueTask ExecuteAsync(IConsole console) => default;
|
|
}
|
|
|
|
[Command]
|
|
private class DuplicateOptionNamesCommand : ICommand
|
|
{
|
|
[CommandOption("fruits")]
|
|
public string? Apples { get; set; }
|
|
|
|
[CommandOption("fruits")]
|
|
public string? Oranges { get; set; }
|
|
|
|
public ValueTask ExecuteAsync(IConsole console) => default;
|
|
}
|
|
|
|
[Command]
|
|
private class DuplicateOptionShortNamesCommand : ICommand
|
|
{
|
|
[CommandOption('x')]
|
|
public string? OptionA { get; set; }
|
|
|
|
[CommandOption('x')]
|
|
public string? OptionB { get; set; }
|
|
|
|
public ValueTask ExecuteAsync(IConsole console) => default;
|
|
}
|
|
|
|
[Command]
|
|
private class DuplicateOptionEnvironmentVariableNamesCommand : ICommand
|
|
{
|
|
[CommandOption("option-a", EnvironmentVariableName = "ENV_VAR")]
|
|
public string? OptionA { get; set; }
|
|
|
|
[CommandOption("option-b", EnvironmentVariableName = "ENV_VAR")]
|
|
public string? OptionB { get; set; }
|
|
|
|
public ValueTask ExecuteAsync(IConsole console) => default;
|
|
}
|
|
|
|
[Command]
|
|
private class ValidCommand : ICommand
|
|
{
|
|
public ValueTask ExecuteAsync(IConsole console) => default;
|
|
}
|
|
|
|
[Command("hidden", Description = "Description")]
|
|
private class HiddenPropertiesCommand : ICommand
|
|
{
|
|
[CommandParameter(13, Name = "param", Description = "Param description")]
|
|
public string? Parameter { get; set; }
|
|
|
|
[CommandOption("option", 'o', Description = "Option description", EnvironmentVariableName = "ENV")]
|
|
public string? Option { get; set; }
|
|
|
|
public string? HiddenA { get; set; }
|
|
|
|
public bool? HiddenB { get; set; }
|
|
|
|
public ValueTask ExecuteAsync(IConsole console) => default;
|
|
}
|
|
}
|
|
} |