mirror of
https://github.com/Tyrrrz/CliFx.git
synced 2025-10-25 15:19:17 +00:00
81 lines
2.3 KiB
C#
81 lines
2.3 KiB
C#
using System;
|
|
using System.Threading.Tasks;
|
|
using CliFx.Attributes;
|
|
using CliFx.Services;
|
|
|
|
namespace CliFx.Tests
|
|
{
|
|
public partial class CommandSchemaResolverTests
|
|
{
|
|
[Command("cmd", Description = "NormalCommand1 description.")]
|
|
private class NormalCommand1 : ICommand
|
|
{
|
|
[CommandOption("option-a", 'a')]
|
|
public int OptionA { get; set; }
|
|
|
|
[CommandOption("option-b", IsRequired = true)]
|
|
public string OptionB { get; set; }
|
|
|
|
public Task ExecuteAsync(IConsole console) => Task.CompletedTask;
|
|
}
|
|
|
|
[Command(Description = "NormalCommand2 description.")]
|
|
private class NormalCommand2 : ICommand
|
|
{
|
|
[CommandOption("option-c", Description = "OptionC description.")]
|
|
public bool OptionC { get; set; }
|
|
|
|
[CommandOption("option-d", 'd')]
|
|
public DateTimeOffset OptionD { get; set; }
|
|
|
|
public string NotAnOption { get; set; }
|
|
|
|
public Task ExecuteAsync(IConsole console) => Task.CompletedTask;
|
|
}
|
|
}
|
|
|
|
// Negative
|
|
public partial class CommandSchemaResolverTests
|
|
{
|
|
[Command("conflict")]
|
|
private class ConflictingCommand1 : ICommand
|
|
{
|
|
public Task ExecuteAsync(IConsole console) => Task.CompletedTask;
|
|
}
|
|
|
|
[Command("conflict")]
|
|
private class ConflictingCommand2 : ICommand
|
|
{
|
|
public Task ExecuteAsync(IConsole console) => Task.CompletedTask;
|
|
}
|
|
|
|
[Command]
|
|
private class InvalidCommand1
|
|
{
|
|
}
|
|
|
|
[Command]
|
|
private class InvalidCommand2 : ICommand
|
|
{
|
|
[CommandOption("conflict")]
|
|
public string ConflictingOption1 { get; set; }
|
|
|
|
[CommandOption("conflict")]
|
|
public string ConflictingOption2 { get; set; }
|
|
|
|
public Task ExecuteAsync(IConsole console) => Task.CompletedTask;
|
|
}
|
|
|
|
[Command]
|
|
private class InvalidCommand3 : ICommand
|
|
{
|
|
[CommandOption('c')]
|
|
public string ConflictingOption1 { get; set; }
|
|
|
|
[CommandOption('c')]
|
|
public string ConflictingOption2 { get; set; }
|
|
|
|
public Task ExecuteAsync(IConsole console) => Task.CompletedTask;
|
|
}
|
|
}
|
|
} |