mirror of
https://github.com/Tyrrrz/CliFx.git
synced 2025-10-25 15:19:17 +00:00
Rename things to make them slightly more consistent
This commit is contained in:
@@ -9,7 +9,7 @@ namespace CliFx.Tests
|
||||
[TestFixture]
|
||||
public class CommandInputParserTests
|
||||
{
|
||||
private static IEnumerable<TestCaseData> GetTestCases_ParseInput()
|
||||
private static IEnumerable<TestCaseData> GetTestCases_ParseCommandInput()
|
||||
{
|
||||
yield return new TestCaseData(new string[0], CommandInput.Empty);
|
||||
|
||||
@@ -160,14 +160,14 @@ namespace CliFx.Tests
|
||||
}
|
||||
|
||||
[Test]
|
||||
[TestCaseSource(nameof(GetTestCases_ParseInput))]
|
||||
public void ParseInput_Test(IReadOnlyList<string> commandLineArguments, CommandInput expectedCommandInput)
|
||||
[TestCaseSource(nameof(GetTestCases_ParseCommandInput))]
|
||||
public void ParseCommandInput_Test(IReadOnlyList<string> commandLineArguments, CommandInput expectedCommandInput)
|
||||
{
|
||||
// Arrange
|
||||
var parser = new CommandInputParser();
|
||||
|
||||
// Act
|
||||
var commandInput = parser.ParseInput(commandLineArguments);
|
||||
var commandInput = parser.ParseCommandInput(commandLineArguments);
|
||||
|
||||
// Assert
|
||||
commandInput.Should().BeEquivalentTo(expectedCommandInput);
|
||||
|
||||
@@ -57,7 +57,7 @@ namespace CliFx.Tests
|
||||
[TestFixture]
|
||||
public partial class CommandOptionInputConverterTests
|
||||
{
|
||||
private static IEnumerable<TestCaseData> GetTestCases_ConvertOption()
|
||||
private static IEnumerable<TestCaseData> GetTestCases_ConvertOptionInput()
|
||||
{
|
||||
yield return new TestCaseData(
|
||||
new CommandOptionInput("option", "value"),
|
||||
@@ -307,14 +307,14 @@ namespace CliFx.Tests
|
||||
}
|
||||
|
||||
[Test]
|
||||
[TestCaseSource(nameof(GetTestCases_ConvertOption))]
|
||||
public void ConvertOption_Test(CommandOptionInput optionInput, Type targetType, object expectedConvertedValue)
|
||||
[TestCaseSource(nameof(GetTestCases_ConvertOptionInput))]
|
||||
public void ConvertOptionInput_Test(CommandOptionInput optionInput, Type targetType, object expectedConvertedValue)
|
||||
{
|
||||
// Arrange
|
||||
var converter = new CommandOptionInputConverter();
|
||||
|
||||
// Act
|
||||
var convertedValue = converter.ConvertOption(optionInput, targetType);
|
||||
var convertedValue = converter.ConvertOptionInput(optionInput, targetType);
|
||||
|
||||
// Assert
|
||||
convertedValue.Should().BeEquivalentTo(expectedConvertedValue);
|
||||
|
||||
@@ -129,7 +129,7 @@ namespace CliFx
|
||||
|
||||
try
|
||||
{
|
||||
var commandInput = _commandInputParser.ParseInput(commandLineArguments);
|
||||
var commandInput = _commandInputParser.ParseCommandInput(commandLineArguments);
|
||||
|
||||
var availableCommandSchemas = _commandSchemaResolver.GetCommandSchemas(_configuration.CommandTypes);
|
||||
var matchingCommandSchema = availableCommandSchemas.FindByName(commandInput.CommandName);
|
||||
|
||||
@@ -29,25 +29,25 @@ namespace CliFx.Services
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public void InitializeCommand(ICommand command, CommandSchema schema, CommandInput input)
|
||||
public void InitializeCommand(ICommand command, CommandSchema commandSchema, CommandInput commandInput)
|
||||
{
|
||||
command.GuardNotNull(nameof(command));
|
||||
schema.GuardNotNull(nameof(schema));
|
||||
input.GuardNotNull(nameof(input));
|
||||
commandSchema.GuardNotNull(nameof(commandSchema));
|
||||
commandInput.GuardNotNull(nameof(commandInput));
|
||||
|
||||
// Keep track of unset required options to report an error at a later stage
|
||||
var unsetRequiredOptions = schema.Options.Where(o => o.IsRequired).ToList();
|
||||
var unsetRequiredOptions = commandSchema.Options.Where(o => o.IsRequired).ToList();
|
||||
|
||||
// Set command options
|
||||
foreach (var optionInput in input.Options)
|
||||
foreach (var optionInput in commandInput.Options)
|
||||
{
|
||||
// Find matching option schema for this option input
|
||||
var optionSchema = schema.Options.FindByAlias(optionInput.Alias);
|
||||
var optionSchema = commandSchema.Options.FindByAlias(optionInput.Alias);
|
||||
if (optionSchema == null)
|
||||
continue;
|
||||
|
||||
// Convert option to the type of the underlying property
|
||||
var convertedValue = _commandOptionInputConverter.ConvertOption(optionInput, optionSchema.Property.PropertyType);
|
||||
var convertedValue = _commandOptionInputConverter.ConvertOptionInput(optionInput, optionSchema.Property.PropertyType);
|
||||
|
||||
// Set value of the underlying property
|
||||
optionSchema.Property.SetValue(command, convertedValue);
|
||||
|
||||
@@ -11,9 +11,8 @@ namespace CliFx.Services
|
||||
/// </summary>
|
||||
public class CommandInputParser : ICommandInputParser
|
||||
{
|
||||
// TODO: refactor
|
||||
/// <inheritdoc />
|
||||
public CommandInput ParseInput(IReadOnlyList<string> commandLineArguments)
|
||||
public CommandInput ParseCommandInput(IReadOnlyList<string> commandLineArguments)
|
||||
{
|
||||
commandLineArguments.GuardNotNull(nameof(commandLineArguments));
|
||||
|
||||
|
||||
@@ -136,15 +136,15 @@ namespace CliFx.Services
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public object ConvertOption(CommandOptionInput option, Type targetType)
|
||||
public object ConvertOptionInput(CommandOptionInput optionInput, Type targetType)
|
||||
{
|
||||
option.GuardNotNull(nameof(option));
|
||||
optionInput.GuardNotNull(nameof(optionInput));
|
||||
targetType.GuardNotNull(nameof(targetType));
|
||||
|
||||
// Single value
|
||||
if (option.Values.Count <= 1)
|
||||
if (optionInput.Values.Count <= 1)
|
||||
{
|
||||
var value = option.Values.SingleOrDefault();
|
||||
var value = optionInput.Values.SingleOrDefault();
|
||||
return ConvertValue(value, targetType);
|
||||
}
|
||||
// Multiple values
|
||||
@@ -154,7 +154,7 @@ namespace CliFx.Services
|
||||
var underlyingType = targetType.GetEnumerableUnderlyingType() ?? typeof(object);
|
||||
|
||||
// Convert values to that type
|
||||
var convertedValues = option.Values.Select(v => ConvertValue(v, underlyingType)).ToNonGenericArray(underlyingType);
|
||||
var convertedValues = optionInput.Values.Select(v => ConvertValue(v, underlyingType)).ToNonGenericArray(underlyingType);
|
||||
var convertedValuesType = convertedValues.GetType();
|
||||
|
||||
// Assignable from array of values (e.g. T[], IReadOnlyList<T>, IEnumerable<T>)
|
||||
@@ -167,7 +167,7 @@ namespace CliFx.Services
|
||||
return arrayConstructor.Invoke(new object[] {convertedValues});
|
||||
|
||||
throw new InvalidCommandOptionInputException(
|
||||
$"Can't convert sequence of values [{option.Values.JoinToString(", ")}] to type [{targetType}].");
|
||||
$"Can't convert sequence of values [{optionInput.Values.JoinToString(", ")}] to type [{targetType}].");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,6 +10,6 @@ namespace CliFx.Services
|
||||
/// <summary>
|
||||
/// Populates an instance of <see cref="ICommand"/> with specified input according to specified schema.
|
||||
/// </summary>
|
||||
void InitializeCommand(ICommand command, CommandSchema schema, CommandInput input);
|
||||
void InitializeCommand(ICommand command, CommandSchema commandSchema, CommandInput commandInput);
|
||||
}
|
||||
}
|
||||
@@ -11,6 +11,6 @@ namespace CliFx.Services
|
||||
/// <summary>
|
||||
/// Parses specified command line arguments.
|
||||
/// </summary>
|
||||
CommandInput ParseInput(IReadOnlyList<string> commandLineArguments);
|
||||
CommandInput ParseCommandInput(IReadOnlyList<string> commandLineArguments);
|
||||
}
|
||||
}
|
||||
@@ -11,6 +11,6 @@ namespace CliFx.Services
|
||||
/// <summary>
|
||||
/// Converts an option to specified target type.
|
||||
/// </summary>
|
||||
object ConvertOption(CommandOptionInput option, Type targetType);
|
||||
object ConvertOptionInput(CommandOptionInput optionInput, Type targetType);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user